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过程中一直点下一步,直到出现登录界面时,需要特别记录。
其实这个就是ctrl+alt+del的组合。
密码,我也不知道密码啊,安装的时候也没让我输入啊。尝试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删不掉:
最后,重启也没删掉。。。。。。