Investigación de OpenWire-CVE-2023-46604
Laboratorio OpenWire
Durante mi turno como Analista de Centro de Operaciones de Seguridad (SOC) de Nivel 2, recibí una escalación de un analista de Nivel 1 sobre un servidor de acceso público que había sido observado comunicándose con múltiples direcciones IP externas sospechosas.
En respuesta, inicié el procedimiento estándar de Respuesta a Incidentes (IR), que incluía aislar el servidor afectado de la red para evitar movimiento lateral y posible exfiltración de datos. Luego se obtuvo un archivo de captura de paquetes (PCAP) de la plataforma NSM para una investigación más detallada.
Mi objetivo era analizar el tráfico de red e identificar cualquier indicador de actividad maliciosa.
- Identificando la primera dirección IP externa sospechosa
Después de analizar el tráfico de red y revisar las conexiones establecidas con el servidor, identifiqué paquetes relacionados con el protocolo OpenWire. Una inspección adicional de estas comunicaciones reveló una dirección IP externa sospechosa involucrada en el ataque:
146.190.21.92
- Identificando el puerto utilizado durante el ataque
Al examinar el tráfico de OpenWire, descubrí que el servicio objetivo era Apache ActiveMQ, un broker de mensajes de código abierto que permite la comunicación entre aplicaciones distribuidas.
Un análisis adicional reveló que el atacante se comunicaba a través del siguiente puerto:
61616
- Identificando el segundo servidor de Comando y Control
Al analizar el tráfico HTTP y revisar los archivos a través de:
Export Objects → HTTP Object List
Identifiqué una segunda dirección IP externa asociada con la infraestructura del atacante:
128.199.52.72
- Identificando el servicio comprometido
El análisis de las comunicaciones OpenWire confirmó que el servicio comprometido era:
Apache ActiveMQ
Este servicio fue el objetivo principal del ataque y posteriormente se determinó que era vulnerable a la ejecución remota de código.
- Identificando el payload de la reverse shell
Los atacantes suelen dejar rastros de su actividad en los sistemas comprometidos. Al analizar tanto el tráfico HTTP como los comandos ejecutados durante la intrusión, identifiqué el archivo de reverse shell desplegado en el servidor:
docker
- Analizando la cadena de explotación
Durante la investigación, observé tráfico saliente sospechoso originado desde el servidor comprometido utilizando el siguiente User-Agent:
java/11.0.21
El servidor inició una conexión a la dirección IP sospechosa 146.190.21.92 para recuperar un archivo de configuración XML remoto llamado:
/invoice.xml
Usando Wireshark y filtrando el tráfico con:
Texto plano
ip.addr == 146.190.21.92
Identifiqué el flujo de comunicación relevante y extraje el archivo payload malicioso:
./invoice
Una inspección adicional del payload reveló que el atacante explotó una vulnerabilidad de Ejecución Remota de Código (RCE) en Apache ActiveMQ.
El archivo XML contenía instrucciones maliciosas que forzaban al Entorno de Ejecución de Java a instanciar una clase Java específica capaz de ejecutar comandos del sistema operativo.
La clase Java identificada fue:
java.lang.ProcessBuilder
- Identificando el CVE asociado
Basándome en el comportamiento del ataque observado, que incluye la explotación de Apache ActiveMQ a través de comunicaciones OpenWire, recuperación remota de XML, instanciación de objetos y el uso de java.lang.ProcessBuilder para la ejecución de comandos, la actividad se atribuyó a la siguiente vulnerabilidad:
CVE-2023-46604
Esta vulnerabilidad permite a los atacantes lograr Ejecución Remota de Código (RCE) explotando mecanismos inseguros de instanciación de objetos dentro de Apache ActiveMQ.
Indicadores de Compromiso (IOCs)
Direcciones IP
146.190.21.92
128.199.52.72
Puerto de red
61616
Archivos
docker
invoice.xml
Payload
invoice
Vulnerabilidad
CVE-2023-46604