Análisis de Intento Fallido de Reverse Shell
1. Descripción del Ataque
En esta etapa, el atacante intentó subir y ejecutar un archivo PHP de reverse shell en
el servidor Metasploitable, aprovechando una vulnerabilidad de carga de archivos en
la aplicación DVWA. Un reverse shell permite al atacante ejecutar comandos en el
servidor comprometido desde su propia máquina.
● Etapa 5: Subida y (Fallo en) Ejecución de Reverse Shell
○ Fecha y Hora (Subida): 2024-02-26 17:42:41 UTC
○ Fechas y Horas (Intentos de Ejecución): 2024-02-26 17:42:41 UTC, 2024-
02-26 17:45:04 UTC
○ Descripción Detallada:
■ El atacante subió un archivo PHP ([Link]) que contenía un script de
reverse shell.
■ El atacante intentó acceder a [Link] a través de solicitudes HTTP GET
para ejecutar el script.
■ La ejecución del script falló debido a problemas de configuración del
servidor y/o errores del atacante.
○ Alertas Wazuh: No se generaron alertas de Wazuh para esta actividad.
2. Indicadores de Compromiso (IOCs)
● IP del Atacante: [Link]
● Nombre del Archivo Subido: [Link]
● Ruta Completa (en el Servidor): /prod/hackable/uploads/[Link]
● Tipo de Archivo: Script PHP (application/octet-stream en la subida, pero con
contenido PHP)
● Tamaño del Archivo: 9873 bytes
● Contenido del Archivo (parcial): (Se proporcionó el código PHP)
● IP y Puerto de la Reverse Shell (en el código PHP): [Link], puerto 9001
● User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/[Link] Safari/537.36
● Códigos de Respuesta HTTP: 200 para la subida, 200 para los intentos de
ejecución (pero con errores en el cuerpo de la respuesta)
● Mensaje de Error:
○ DAEMONIZE: pcntl_fork() does not exists, moving on...
○ SOC_ERROR: 111: Connection refused
3. Técnicas MITRE ATT&CK
● Táctica: TA0003 - Persistencia
● Táctica: TA0011 - Comando y Control
● Técnica: T1505.003 - Componente de Software del Servidor: Web Shell
● Técnica: Subir Malware
4. Análisis Detallado
● Subida Exitosa, Ejecución Fallida:
○ El atacante logró subir el archivo [Link], lo que indica una vulnerabilidad de
carga de archivos en DVWA. Esto es un vector de ataque común, donde los
atacantes intentan subir archivos maliciosos (scripts, ejecutables, etc.) para
obtener la ejecución de código en el servidor.
○ La ejecución del archivo falló debido a:
■ pcntl_fork() no disponible: La función pcntl_fork() de PHP, necesaria para
que la reverse shell se ejecute en segundo plano, está deshabilitada en el
servidor Metasploitable. Esta función es a menudo deshabilitada por
razones de seguridad, ya que puede ser abusada por atacantes.
■ Connection refused: La conexión TCP al puerto 9001 en [Link]
fue rechazada. Esto podría ser por:
■ No hay un listener: El atacante no tenía un proceso escuchando en el
puerto 9001. Para que un reverse shell funcione, el atacante debe
tener una herramienta (como netcat, ncat) configurada para recibir la
conexión en su máquina.
■ Firewall: Un firewall bloqueó la conexión. Los firewalls, tanto en el lado
del atacante como en el lado del servidor, pueden bloquear el tráfico
de red necesario para establecer la reverse shell.
■ Dirección IP Incorrecta: El script [Link] está configurado para
conectarse a [Link], no a la IP del atacante ([Link]).
Esto sugiere un error de configuración del atacante. Es un error
común en ejercicios de pentesting o ataques reales que el atacante
no configure correctamente la IP o el puerto en el script de la reverse
shell.
● ¿Qué es un Reverse Shell?
○ Un reverse shell es un tipo de shell (interfaz de línea de comandos) en el que
la máquina de la víctima establece la conexión con la máquina del atacante.
Esto es lo opuesto a un "bind shell", donde el atacante se conecta a un
servicio que se ejecuta en la máquina de la víctima.
○ Los reverse shells son útiles para los atacantes cuando la máquina de la
víctima está detrás de un firewall o NAT, lo que dificulta que el atacante se
conecte directamente a ella.
● Implicaciones de la IP [Link]:
○ Error del atacante: Olvidó cambiar la IP en el script para que coincida con su
máquina.
○ Máquina intermedia: El atacante podría estar usando [Link] como un
punto de retransmisión, aunque esto es menos común en escenarios como
DVWA.
● Falta de Alertas de Wazuh:
○ Wazuh no detectó la subida del archivo [Link], lo que indica una posible
brecha en la configuración de Wazuh.
○ Posibles razones:
■ Faltan reglas para detectar web shells. Wazuh, y otros sistemas de
detección de intrusiones (IDS), deben estar configurados con reglas para
detectar la subida de archivos sospechosos, especialmente scripts en
directorios web.
■ Reglas existentes mal configuradas o deshabilitadas. Las reglas de
detección pueden existir pero no estar habilitadas, ser demasiado
permisivas o no coincidir con los patrones utilizados por el atacante.
5. Recomendaciones
● Investigar la IP [Link]: Determinar su propósito y propietario. Esto
puede proporcionar más información sobre el atacante o sus intenciones.
● Obtener y Analizar [Link]: Realizar análisis estático y dinámico en un entorno
seguro. Esto es crucial para entender la funcionalidad completa del script de
reverse shell y cómo el atacante intentaba obtener el control del sistema.
○ El análisis estático implica examinar el código del script para entender su
lógica, las funciones que utiliza y a qué direcciones de red intenta
conectarse.
○ El análisis dinámico implica ejecutar el script en un entorno controlado (como
una máquina virtual aislada) para observar su comportamiento en tiempo
real.
● Mejorar la Configuración de Wazuh:
○ Implementar reglas para detectar la subida de web shells (por ejemplo,
buscando funciones PHP sospechosas como system, exec, passthru,
shell_exec, popen, proc_open, eval, y patrones de código comunes en scripts
de reverse shell).
○ Configurar el Monitoreo de Integridad de Archivos (FIM) en directorios
críticos, incluyendo el directorio de carga de la aplicación web, para detectar
la creación o modificación de archivos sospechosos.
○ Verificar que las reglas estén activas y correctamente configuradas. Esto
incluye revisar la sintaxis de las reglas, asegurarse de que estén habilitadas y
ajustar los niveles de severidad según sea necesario.
● Parchear la Vulnerabilidad de Carga de Archivos:
○ Validación estricta del tipo de archivo (no solo la extensión). La validación del
tipo de archivo no debe basarse únicamente en la extensión del archivo
proporcionada por el usuario, ya que esta puede ser fácilmente manipulada.
Se deben utilizar técnicas como la "file magic number" para verificar el
contenido real del archivo.
○ Renombrar los archivos subidos con nombres aleatorios. Esto evita que los
atacantes puedan adivinar o predecir la ubicación de los archivos subidos.
○ Almacenar los archivos fuera del directorio raíz web. Esto evita que los
archivos subidos sean accesibles directamente a través de una URL.
○ Restringir los permisos de ejecución en el directorio de carga. El directorio
donde se guardan los archivos subidos nunca debe tener permisos de
ejecución.
● Análisis Forense del Servidor: Realizar un análisis forense del servidor para
buscar otros IOCs o archivos relacionados con el ataque. Esto puede incluir la
revisión de los logs del servidor web, los logs del sistema operativo y el historial
de comandos de los usuarios.
6. Referencia a MITRE ATT&CK
● El marco MITRE ATT&CK describe las tácticas y técnicas que utilizan los
atacantes durante diferentes fases de un ataque cibernético. En este caso, el
ataque de reverse shell se alinea con las siguientes tácticas y técnicas:
○ Táctica: TA0003 - Persistencia: Los atacantes a menudo usan web shells
para mantener el acceso a un sistema comprometido, incluso si la
vulnerabilidad inicial se parcha. Un reverse shell es un tipo de web shell.
○ Táctica: TA0011 - Comando y Control: Un reverse shell proporciona al
atacante un canal para ejecutar comandos en el sistema de la víctima, lo que
les permite controlar el sistema de forma remota.
○ Técnica: T1505.003 - Componente de Software del Servidor: Web Shell:
Esta técnica se refiere al uso de un web shell, que es un script malicioso que
permite a un atacante ejecutar comandos en un servidor web. Un reverse
shell es un tipo de web shell.
○ Técnica: T1505 - Componentes de Software del Servidor: Esta técnica
general, incluye la sub-técnica de Web Shell, pero abarca otros componentes
del servidor que pueden ser abusados.
○ Técnica: T1190 - Explotar Aplicación de Cara al Público: La vulnerabilidad
de carga de archivos explotada en este caso es un ejemplo de cómo un
atacante puede abusar de una aplicación web expuesta a Internet.
Al proporcionar esta información adicional y hacer referencia al marco MITRE
ATT&CK, el análisis se vuelve más completo y útil para comprender la naturaleza del
ataque y cómo se alinea con las tácticas y técnicas comunes de los atacantes.