Paradise - DockerLabs
| OS | Dificultad | Creator |
|---|---|---|
| Linux | Fácil | kaikoperez |
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
Iniciamos explorando el puerto 80. Al acceder, encontramos una página web con dos botones que llevan a diferentes secciones:
En la sección “galery” de la página, al final encontramos texto en formato base64:
Desciframos el mensaje en base64:
echo 'ZXN0b2VzdW5zZWNyZXRvCg==' | base64 -d
La cadena decodificada, estoesunsecreto, podría ser una contraseña o un directorio oculto, así que probamos si existe como directorio:
Encontramos un directorio oculto con un archivo mensaje_para_lucas.txt:
El mensaje sugiere que lucas debería cambiar su contraseña, ya que podría extraerse mediante fuerza bruta. Con esto, avanzamos a realizar un ataque de fuerza bruta.
Fuerza Bruta
Usamos hydra para intentar obtener la contraseña de lucas a través del servicio SSH:
hydra -l lucas -P /usr/share/wordlists/rockyou.txt -t 64 -VIf ssh://172.17.0.2
Logramos obtener la contraseña de lucas, que es chocolate.
Intrusión
Con la contraseña obtenida, accedemos al sistema a través de SSH:
ssh lucas@172.17.0.2
Creamos una shell interactiva:
script /dev/null -c bash
Escalada de privilegios
Acceso Andy
Al ejecutar sudo -l, descubrimos que podemos ejecutar sed como el usuario andy.Utilizando GTFOBins sabemos cómo explotar estos binarios.
sudo -u andy sed -n '1e exec sh 1>&0' /etc/hosts
Ahora somos el usuario andy. Creamos nuevamente una shell interactiva y exploramos permisos adicionales.
Como no tenemos la contraseña de andy, no podemos usar sudo -l directamente. Sin embargo, buscamos binarios con permisos especiales:
find / -perm -4000 2>/dev/null
Ejecutamos el primer binario:
/usr/local/bin/privileged_exec
Esto nos otorga permisos de root: