Linux机器,只开放了80和22端口.

点右上角那个会到一个子域,写一下host即可

nuclei一扫就出了CVE

直接看后一个严重等级的能rce

CVE-2025-47812

CVE-2025-47812/exploit.py at main · blindma1den/CVE-2025-47812
Contribute to blindma1den/CVE-2025-47812 development by creating an account on GitHub.

进去之后发现是类似www-data这种权限,然后user.txt根本拿不到,说明不是提权,还需要找一个正常用户的凭证,先看看/etc/passwd

并且home目录有这个wacky,应该就是这个用户了

凭证搜集-wacky

找到wing FTP的安装路径,在里面各种找凭证,反正一通找,在/opt/wftpserver/Data/1/users 下面找到wacky.xml,当时用hashcat爆破这个sha256的哈希爆破不出来

后面找到上一级目录的settings.xml 发现有盐,先跑了下这个1410模式的一下就出了

hashcat -m 1410 '32940defd3c3ef70a2dd44a5301ff984c4742f0baae76ff5b8783994f8a503ca:WingFTP' /usr/share/wordlists/rockyou.txt

!#7Blushing^*Bride5

user.txt

su wacky

提权

sudo -l

找到这个python脚本,可以发现这个脚本是做一个备份tar包的解压,先开始是以为可以通过../ 或者软链接的形式将/root/root.txt 解压出来,不过不行啊.不像是逻辑漏洞的,那就是直接考的CVE,直接拿去问AI

可以测试一下,其实就是第一个CVE,主要是作用就是可以覆盖任意文件,这里想到的是直接写公钥进root

CVE-2025-4517

GitHub - DesertDemons/CVE-2025-4138-4517-POC: CVE-2025-4138 / CVE-2025-4517 — Python tarfile PATH_MAX Symlink Filter Bypass
CVE-2025-4138 / CVE-2025-4517 — Python tarfile PATH_MAX Symlink Filter Bypass - GitHub - DesertDemons/CVE-2025-4138-4517-POC: CVE-2025-4138 / CVE-2025-4517 — Python tarfile PATH_MAX Symlink Filter…
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -N ""   //生成ssh公私钥
cat ~/.ssh/id_ed25519.pub   //确认是否生成成功

python CVE-2025-4517.py --preset ssh-key --payload ~/.ssh/id_ed25519.pub --tar-out ./backup_100.tar
靶机的python脚本需要规范解压的文件名称和解压目录的名称,这里是当时忘了改了直接生成evil.tar,后面把tar包名字改过来了,payload直接给的完整的

上传这个backup_100.tar到/opt/backup_clients/backups 之后在靶机执行

sudo /usr/local/bin/python3 /opt/backup_clients/restore_backup_clients.py -b backup_100.tar -r restore_tes1t

root.txt

最后ssh连上去即可

ssh -i ~/.ssh/id_ed25519 root@wingdata.htb