Cuidado con el SparroWock: La puerta trasera que muerde, los comandos que atrapan
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
El grupo de APT alineado con China, FamousSparrow, ha desplegado un nuevo backdoor modular en C++ llamado SparroWocky, reemplazando su anterior implante SparrowDoor. El malware incluye capacidades avanzadas de anti-análisis como suplantación de pila y carga reflexiva de memoria. La actividad actual se centra fuertemente en organizaciones gubernamentales en toda América Latina.
Investigación
Investigadores de ESET identificaron SparroWocky al examinar su arquitectura modular y características de código distintivas, incluyendo referencias al poema Jabberwocky. La investigación descubrió un esquema de cargador tridente que depende de la carga lateral de DLLs y un formato de payload personalizado descifrado con RC4. Los analistas también observaron que se utilizan bibliotecas de código abierto como Mbed TLS y MinHook para mejorar la sigilo y la funcionalidad.
Mitigación
Las organizaciones deben imponer controles estrictos alrededor de la carga lateral de DLLs y monitorear la creación de servicios sospechosos o modificaciones a las claves de ejecución del registro. También es importante la detección avanzada en el endpoint capaz de identificar la ejecución de PE solo en memoria y la manipulación de la pila. Las aplicaciones expuestas al público, incluidos los servidores de Exchange, deben parchearse rápidamente para reducir las oportunidades de acceso inicial.
Respuesta
Si se detecta actividad de SparroWocky, los sistemas afectados deben aislarse inmediatamente para prevenir el movimiento lateral y la comunicación de mando y control. Los respondedores deben realizar análisis forense de memoria para identificar módulos cargados de manera reflexiva e investigar flujos de ejecución secuestrados. También deben revisarse los registros de auditoría para detectar instalaciones de servicios no autorizadas o cambios en mecanismos de persistencia como el SnapCart valor del registro.
Flujo de Ataque
Todavía estamos actualizando esta parte.
Detecciones
Posibles Puntos de Persistencia [ASEPs – Hive de Software/NTUSER] (vía evento de registro)
Comportamiento de Ejecución Retrasada Posible (vía línea de comando)
IOCs (HashSha1) para detectar: Cuidado con el SparroWock: El backdoor que muerde, los comandos que atrapan
IOCs (SourceIP) para detectar: Cuidado con el SparroWock: El backdoor que muerde, los comandos que atrapan
IOCs (DestinationIP) para detectar: Cuidado con el SparroWock: El backdoor que muerde, los comandos que atrapan
Detección de Carga de Código Reflexivo del Backdoor SparroWocky [Windows Sysmon]
Comunicación y Detección de Proxy del Backdoor SparroWocky C&C [Conexión de Red de Windows]
Detección de Ejecución del SparroWocky en Memoria [Creación de Procesos de Windows]
Ejecución de la Simulación
-
Narrativa de Ataque y Comandos: El adversario busca establecer un canal de comunicación encubierto a un servidor de control y mando (C2). Para evitar defensas perimetrales simples, el atacante utiliza un proxy SOCKS5 para tunelizar el tráfico, haciendo que el tráfico parezca provenir de un servidor proxy legítimo en lugar del punto final infectado. Esta acción está destinada a activar la
seleccion_http_proxylógica en la regla de detección generando logs que identifican el protocolo como SOCKS5 y la acción como ‘permitir’. -
Script de Prueba de Regresión:
# Simulación de C2 de SparroWocky vía Proxy SOCKS5 # Nota: Esto requiere un proxy alcanzable o un receptor simulado para activar el registro 'permitir'. $ProxyServer = "127.0.0.1:1080" # Asume un oyente/proxy local para propósitos de simulación $TargetUrl = "http://example.com" Write-Host "[+] Intentando establecer conexión de proxy SOCKS5 para simular C2..." # Usando PowerShell para forzar una conexión a través de un proxy $proxy = New-Object System.Net.WebProxy("http://$ProxyServer") $wc = New-Object System.Net.WebClient $wc.Proxy = $proxy try { $wc.DownloadString($TargetUrl) Write-Host "[+] Se intentó la conexión. Verificar los logs del firewall para actividad de proxy SOCKS5/HTTP." } catch { Write-Host "[-] Conexión fallida (esperado si no hay receptor presente), pero la telemetría aún debería ser generada por la pila de red." } -
Comandos de Limpieza:
# Detener cualquier oyente de proxy local si fueron iniciados como parte de la configuración del laboratorio Stop-Process -Name "nc" -ErrorAction SilentlyContinue Stop-Process -Name "python" -ErrorAction SilentlyContinue Write-Host "[+] Limpieza completa."