NodeClimb - 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:
22(SSH)21(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 -p21,22 -sCV 172.17.0.2 -oG targeted
FTP
Observamos que el usuario Anonymous está habilitado y encontramos un archivo llamado secretitopicaron.zip. Procedemos a acceder y descargarlo:
get secretitopicaron.zip
Intentamos descomprimir el archivo, pero nos pide una contraseña que no tenemos:
unzip secretitopicaron.zip
Fuerza bruta
Para extraer la contraseña, utilizamos zip2john para obtener el hash del archivo zip:
zip2john secretitopicaron.zip > hash.hash
Luego usamos john para realizar fuerza bruta sobre el hash:
john hash.hash
La contraseña obtenida es password1. Ahora podemos descomprimir el archivo zip:
Volvemos a descomprimir el zip.
unzip secretitopicaron.zip
Como podemos ver nos ha extraido un archivo llamado password.txt.
Este archivo contiene un usuario mario y una contraseña laKontraseñAmasmalotaHdelbarrioH. Con estos credenciales accedemos a través de SSH:
ssh mario@172.17.0.2
Escalada de privilegios.
Al ejecutar sudo -l, vemos que podemos ejecutar node como root en el archivo /home/mario/script.js.Utilizando GTFOBins sabemos cómo explotar estos binarios.
Vemos que tenemos permisos sobre el archivo, por lo que podemos modificar su contenido:
Modificamos el archivo para generar una shell:
Finalmente, ejecutamos el script con privilegios de root y ya somos root: