Para poder hacer uso de esta máquina primero debemos descargar los archivos y así desplegarlo con Docker.
Descargamos el archivo de la página dockerlabs.es/#
Al momento de descargar esta máquina y descomprimir el archivo, en este caso observamos 2 archivos.
Para desplegar el laboratorio ejecutamos de la siguiente manera, así también podemos ver que nos indica la dirección que tendremos, así también el que hacer cuando terminemos este.
Realizamos el escaneo de los puertos y podemos observar que solo podemos observar 2 puertos abiertos.
Si vamos a la dirección usando el navegador observamos que se trata de la página default de apache2
.
Realizamos un escaneo de directorios y podemos observar que hay un directorio llamado WordPress.
Al dirigirnos a esa dirección podemos ver que se trata de una página muy simple en la cual los enlaces no redireccionan a ninguna página.
Realizamos un escaneo para ver si encontramos algún archivo o carpeta, pero no obtenemos nada, solo sabemos que el index es index.php.
Ya viendo que no tenemos muchas opciones probaremos a realizar fuzzing para ver si es posible listar algún archivo. Como no sabemos que archivo encontrar nos apoyaremos del passwd
y si lo encuentra podemos también saber que existe un posible LFI
Enviamos el comando y podemos observar que el parámetro es love
wfuzz -c --hc=404,115 -t 200 -w /usr/share/seclists/Discovery/Web-Content/directory-list-lowercase-2.3-medium.txt http://172.22.0.2/wordpress/index.php?FUZZ=../../../../../etc/passwd | grep -v 1040
Si ingresamos la URL en el navegador y vamos al view-source podemos observar con mayor facilidad el passwd
.
view-source:http://172.22.0.2/wordpress/index.php?love=../../../../etc/passwd
Con esto no solo observamos que es posible un LFI, sino que también tenemos usuarios los cuales son:
pedro
rosa
Recordemos que en el escaneo pudimos observar que está habilitado el ssh. No vendría mal intentar ver si usan algún password genérico. Primero probamos con pedro, pero luego de esperar varios minutos no se pudo obtener alguna credencial Probando a rosa podemos observar que fue exitosa, ya que podemos observar que el password es lovebug
.
Con las credenciales obtenidas ingresamos y podemos ver que sí eran correctas.
Como primer paso primero listamos y podemos observar que a priori no hay algún archivo que nos sea de ayuda, pero si realizamos un sudo -l
observamos que tenemos dos binarios que nos pueden ser de utilidad.
Buscando en GTFObins estos no nos servirán para escalar archivos de manera directa nos pueden ayudar a leer archivos que sí nos pueden ser de utilidad En el caso de ls
nos permite listar archivos como root y usando cat
de esta manera podemos leerlos.
Con ello en mente listamos la carpeta de root y podemos comprobar que si podemos listar además de que encontramos un archivo secret.txt.
Haciendo uso de cat
procedemos a leer el archivo y observamos que es un archivo al parecer en formato hexadecimal.
Copiamos este texto cifrado en la página de CyberChef y podemos observar que primero el texto estaba en formato Hexadecimal y luego en base 32, pero transformando ambos podemos observar que el texto era noacertarasosi
.
Con el texto descifrado procederemos a probar como si fuera el password de root, pero podemos observar que el password no corresponde a este usuario.
Ya que no es posible ingresar como root, no olvidemos que aparte de rosa vimos el usuario pedro. Probamos con este usuario y podemos observar que el password le pertenecía a este usuario.
En la carpeta del usuario pedro realizamos un listado, pero no se observa nada, realizamos un sudo -l
y podemos ver que tenemos disponible un binario para poder escalar a root.
Buscando en la página de GFTOBins encontramos como ejecutar el binario para esta escalada.
Ejecutamos el comando y podemos observar que culminamos esta máquina de manera exitosa, ya que obtuvimos el acceso como root.