Whoiam, DockerLabs
En este reto de DockerLabs practicamos.
- Reconocimiento
- Explotacion de wordpress
- Movimiento lateral de ususarios con sudo
- Inyeccion bash scripting
Herramientas y recursos
- nmap
- wpscan
- feroxbuster
Reconocimiento y enumeracion
Lo primero como siempre le tiramos un nmap con los parámetros de costumbre.
1
sudo nmap -p- -sS -sC -sV --min-rate=5000 -n -Pn -oX whoiam 172.18.0.2
Como vemos en el reporte solo en esta ocasión solo tenemos el puerto 80 abierto abierto por tanto la intrusión y el error si o si están el web.
Con la extensión wappalizer ya sabemos que hay presumiblemente un wordpres así que primero buscamos vulns con wpscan.
Con fuerza bruta no conseguimos nada con ninguno de esos usuarios.
Parece que quien desarrollo el plugin trabajaba de espía para la competencia. Justo es lo que yo buscaba para practicar xss hay de todos los colores , pero en este caso vamos a probar para empezar el Authenticated Arbitrary File Upload leading to RCE.
En casi todas las vías de explotación necesitamos estar autenticados excepto en CVE-2021-24146 pero solo nos devuelve info con las publicaciones realizadas , tampoco tuve suerte con el blindsql.
En definitiva como si o si hay que estar autenticado en la web lanzamos feroxbuster buscando mas directorios por si se escondió alguna pista.
1
feroxbuster -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -t 400 -u http://172.18.0.2
Con feroxbuster encontramos un directorio llamado backups y un archivo prometedor dentro lo descargamos.
Resulto un zip con un asci en su interior que contenía el pass de developer.
Procedemos a logearnos.
Intrusion
Entramos sin problemas ahora busco un poco de info para saber como es la explotación con dicho plugin.
Se me olvido la versión del plugin y lanze de wpscan pero sin token, no fue capaz de encontrar las vulns.
Realizamos una búsqueda en searchploit
El que nos interesa es el 50082.py , lo lanzamos.
1
python 50082.py -T 172.18.0.2 -P 80 -U / -u developer -p 2wmy3KrGDRD%RsA7Ty5n71L^
Obteniendo una webshell para ejecutar comandos.
Ahora es momento de mandarnos una revshell para trabajar mas gusto y sin limitaciones. Nos ponemos a la escuche , la mandamos y realizamos el tratamiento a la tty.
Movimiento lateral usuarios
Nos encontramos con que somos www-data y disponemos de permisos para ejecutar find con sudo como el usuario rafa.
1
sudo -u rafa find . -exec /bin/sh \; -quit
Ahora a ver que nos han dejado siendo rafa. Encuentra debugfs buscamos como se hace.
1
2
sudo debugfs
!/bin/sh
Somos ruben ,seguimos para convertimos en root pues solo habían dos usuarios.
Escalada final
Esta ultima parte es mas interesante pues nos han dejado un script veamos que contiene , los permisos y si nos deja modificarlo o deberemos abusar del path.
1
2
3
4
5
6
7
8
9
10
<Right>#!/bin/bash
read -rp "Enter guess: " num
if [[ $num -eq 42 ]]
then
echo "Correct"
else
echo "Wrong"
fi
Como vemos el script es muy sencillo lo unico que hace es comprobar el numero ingresado y dependiendo de si aciertas te dice si es correcto o no.
Hasta aquí fui bien pero no conseguí no hallar la manera de meter un comando que me permita ser root , puede copiar bash con permisos de suid pero después fue imposible ejecutar esa bash manteniendo los permisos elevados. Sin mas acudí a un writeup para poder ver como inyectaban el comando en el script de bash.
La carga útil por así llamarla es
1
a[$(/bin/bash>&2)]
Para mi por esta ultima parte la hubiese metido en dificiltad media.
Como me gusta romperme los cuernos buena maquina.
Enlace al blog de pylon creador de la maquina.
Gracias por leer
Comments powered by Disqus.