1. Resumen

"Profetas" es un laboratorio de nivel medio que combina múltiples vulnerabilidades clásicas en un entorno Linux:

  • SQL Injection (Bypass de autenticación)
  • XXE (XML External Entity Injection)
  • Análisis de bytecode Python (.pyc)
  • Escalada de privilegios mediante mala configuración de sudo
  • Exfiltración de archivos usando croc

El laboratorio obliga a encadenar vulnerabilidades web con técnicas de explotación local y reversing ligero para conseguir acceso como root.

2. Reconocimiento

Comenzamos con un escaneo completo de puertos:

sudo nmap -p- --open -sCV -Pn -n --min-rate 5000 172.17.0.2

Resultado:

PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 9.6p1 Ubuntu 3ubuntu13.14 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   256 79:80:90:64:27:37:bc:e2:49:0c:27:c2:4a:09:f6:d0 (ECDSA)
|_  256 6b:05:29:59:af:75:4f:78:7b:f5:2b:2a:13:07:6d:e0 (ED25519)
80/tcp open  http    Apache httpd 2.4.58 ((Ubuntu))
| http-cookie-flags: 
|   /: 
|     PHPSESSID: 
|_      httponly flag not set
|_http-title: ProfetaNet Access
|_http-server-header: Apache/2.4.58 (Ubuntu)

Análisis

  • 22 (SSH) → Posible acceso remoto si obtenemos credenciales.
  • 80 (HTTP) → Superficie principal de ataque.
  • Cookie PHPSESSID sin flag httponly.

La enumeración nos indica que el vector inicial probablemente será web.

3. Enumeración Web

Al acceder al puerto 80 encontramos una aplicación llamada:

ProfetaNet

None

Probamos credenciales por defecto:

admin:admin

Logramos acceder a un panel de monitorización de servicios que muestra información sobre servidores y su estado.

None

En la parte inferior encontramos una cadena en Base64:

None

La decodificamos:

echo "cmVjdWVyZGEuLi4gdHUgY29udHJhc2XxYSBlcyB0dSB1c3Vhcmlv" | base64 -d

Resultado:

recuerda... tu contraseña es tu usuario

Este detalle será clave más adelante.

4. SQL Injection — Bypass de autenticación

Al cerrar sesión somos redirigidos a:

admin.php
None

Nuevo panel de autenticación (email y contraseña).

Procedemos a probar una inyección SQL básica:

  • Email: notadmin@localhost
  • Contraseña: ' OR 1=1-- -

¡El bypass funciona y accedemos al sistema!

None

5. XXE — XML External Entity Injection

Dentro del panel, encontramos un enlace que nos redirige a externalentitiinjection.php. Esta página nos permite procesar código XML y proporciona las siguientes pistas:

  • El sistema utiliza LIBXML_NOENT | LIBXML_DTDLOAD para procesar XML
  • Las entidades externas están habilitadas
  • Algunos archivos pueden contener caracteres que rompen el XML
  • Se sugiere probar diferentes wrappers: file://, php://filter
None

Aprovechamos esta vulnerabilidad XXE para leer el archivo /etc/passwd: