ConsoleLog
This content is not available in your language yet.
Introducción
Sección titulada «Introducción»Este artículo documenta la resolución de la máquina virtual ConsoleLog, diseñada por El Pingüino de Mario y clasificada con un nivel de dificultad fácil. Se presentan de forma ordenada las fases de reconocimiento, explotación y escalada de privilegios, utilizando herramientas ampliamente empleadas en desafíos de captura la bandera (CTF).
Información de la Máquina Virtual
Sección titulada «Información de la Máquina Virtual»- Nombre: ConsoleLog
- Autor: El Pingüino de Mario
- Dificultad: Fácil
- Fecha de creación: 29/07/2024
Paso 0: Instalación y Despliegue
Sección titulada «Paso 0: Instalación y Despliegue»-
Descargamos la máquina desde DockerLabs.
-
Descomprimimos el archivo:
Ventana de terminal unzip ConsoleLog.zip -
Ejecutamos el script de despliegue:
Ventana de terminal sudo bash auto_deplo.sh ConsoleLog.tar
Paso 1: Reconocimiento
Sección titulada «Paso 1: Reconocimiento»Identificación de la Dirección IP
Sección titulada «Identificación de la Dirección IP»Al iniciarse la máquina, se muestra directamente su dirección IP, por lo que no es necesario realizar un escaneo ARP.

Preparamos el entorno local de trabajo:
mkdir ConsoleLogcd ConsoleLogmkt # Crea: content, exploits, nmap, scriptsEscaneo de Puertos
Sección titulada «Escaneo de Puertos»Ejecutamos un escaneo de puertos completo utilizando nmap:
nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn 172.17.0.2 -oG allPortsExtraemos los puertos abiertos con:
extractPorts allPorts
Detección de Servicios
Sección titulada «Detección de Servicios»Analizamos los servicios que corren en los puertos abiertos (22 - SSH, 80 - HTTP, 3000 - Node.js):
nmap -sCV -p22,80,3000 172.17.0.2 -oN targeted
Enumeración Web
Sección titulada «Enumeración Web»Utilizamos gobuster para detectar archivos y directorios expuestos vía HTTP:
gobuster dir -u http://172.17.0.2/ \ -w /usr/share/seclists/Discovery/Web-Content/directory-list-lowercase-2.3-medium.txt \ -x php,html,txt,js -t 200
Entre los hallazgos relevantes se incluyen:
-
index.html: página principal sencilla con un botón. Al inspeccionar la consola del navegador, se muestra un mensaje revelador:

-
/backend: directorio que expone un backend desarrollado en Node.js, con acceso a los archivosAuthentication.jsyServer.js.
El archivo
Server.jscontiene una pista crucial para el siguiente paso de la explotación:
También se muestra el contenido de
Authentication.js:
Paso 2: Explotación
Sección titulada «Paso 2: Explotación»Como no se identificaron formularios explotables ni rutas vulnerables, optamos por probar autenticación por fuerza bruta a través del servicio SSH utilizando hydra:
hydra -L /usr/share/wordlists/rockyou.txt \ -p contraseña_conocida ssh://172.17.0.2 -t 4
Una vez identificado el usuario válido, accedemos vía SSH:

Paso 3: Escalada de Privilegios
Sección titulada «Paso 3: Escalada de Privilegios»Comprobamos qué acciones están permitidas con sudo:
sudo -lSe nos indica que podemos ejecutar nano como superusuario sin necesidad de contraseña:

Consultamos GTFOBins mediante searchbins para determinar un vector de escalada con nano:

Aprovechamos esta capacidad para invocar una shell como root:
-
Ejecutamos:
Ventana de terminal sudo nano -
Presionamos
Ctrl+R, luegoCtrl+X, y escribimos:reset; sh 1>&0 2>&0 -
Pulsamos
Entery obtenemos acceso como superusuario.

Conclusión
Sección titulada «Conclusión»La máquina ConsoleLog proporciona un excelente escenario para practicar reconocimiento web, análisis de archivos JavaScript en backends Node.js y escalada de privilegios mediante binarios permitidos por sudo. La clave estuvo en combinar la información expuesta en el frontend con la enumeración del backend y la posterior explotación del entorno local. Herramientas como nmap, gobuster, hydra y searchbins fueron fundamentales en el proceso.