复现Windows Server服务RPC请求缓冲区溢出漏洞(MS08067)

📅 2026/8/14 4:24:32
复现Windows Server服务RPC请求缓冲区溢出漏洞(MS08067)
0x00 前言事情的起因是客户挺较真的非得问这个漏洞有啥用。那能有啥用拿shell获得控制权呗。但是又不能真这么讲不然一准儿急眼。又不能在客户真实环境做复现万一环境崩了呢于是回来自己搭环境复现一下。简单学习一下原理MS08-067漏洞是通过MSRPC over SMB通道调用Server程序中的NetPathCanonicalize()函数时触发的。NetPathCanonicalize()函数在远程访问其它主机时会调用NetpwPathCanonicalize()函数对远程访问的路径进行规范化而在NetpwPathCanonicalize()函数中发生了栈缓冲区内存错误溢出造成可被利用实施远程代码执行Remote Code Execution。攻击者利用受害者主机默认开放的SMB服务端口445发送特殊RPC(Remote Procedure Call远程过程调用)请求造成栈缓冲区内存错误从而被利用实施远程代码执行。0x01 环境准备本次复现环境采用vmware16 安装 windows2003 sp2使用的cdkey为JK6JC-P7P7H-4HRFC-3XM7P-G33HM过程中一直点下一步直到出现登录界面时需要特别记录。其实这个就是ctrlaltdel的组合。密码我也不知道密码啊安装的时候也没让我输入啊。尝试admin,123456,root等等弱密码之后灵机一动直接点确定。果然……空口令。坑当时我就迫不及待的回到攻击机去复现了结果发现攻击失败后来问了大佬才知道得把防火墙关掉虽然这个机器是新安装的还没有配置也得先激活防火墙再关掉才行。哦对了配置完防火墙记得重启服务器。0x02 复现MS08067准备工作已就绪现在就开始吧。首先用nmap对靶机进行端口扫描通过学习原理可知该漏洞利用的端口为445。已知服务器的IP为192.168.217.206因此构造命令:nmap -A -T4 192.168.217.206 -p 445 --script smb-vuln-ms08-067 --open简单说明一下这条命令--script使用脚本进行扫描--open仅显示打开或可能打开的端口。回到metasploit查找ms08067的攻击脚本。使用use 0选择该脚本。show options 查看该脚本需要填写的内容。这里面需要构造 rhost IP使用set rhost 192.168.217.206进行填写。同时由于已知系统版本nmap扫描出来的使用 show targets 查看可用的Exploit target。这里根据系统选择SP2 简体中文。差不多了跑起来出现了meterpreter查看一下基本信息。输入shell进入cmd命令行。查看开启的端口之后发现靶机并没有开启3389。echo reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f C:\WINDOWS\system32\3389.bat call 3389.bat在连接远程桌面之前先创建一个管理员用户。windows哪里来的root嘛。连接远程桌面。终于来到登录界面。root:123456亲切的界面。0x03 总结可以说这个漏洞有了Metasploit之后上手没有门槛万万没想到花费最长时间的地方是尝试cdkey和猜密码。另外在远程登录服务器之前我在meterpreter建立了一个名为test的文档删不掉改权限也删不掉回到meterpreter还是删不掉。远程桌面删不掉创建的root用户删不掉administrator删不掉meterpreter删不掉最后重启也没删掉。。。。。。