Técnicas de Ataque Avanzadas de Kimsuky: JSONPing, Suplantación de Webex y una Nueva Variante de HttpSpy
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
Kimsuky utilizó páginas de ingeniería social que simulan ser software de seguridad y reuniones de Webex para entregar un RAT HttpSpy de múltiples etapas. La campaña introdujo una verificación de infección basada en JSONP llamada JSONPing y dividió la carga útil en instalador, cargador y módulo principal. Indicadores incluyen claves RC4 compartidas, certificados XAMPP y superposición de infraestructura con campañas anteriores.
Investigación
El equipo analizó páginas de instalación falsas, capturó binarios del dropper, extrajo claves RC4 y reconstruyó la cadena de ejecución en tres etapas desde nos-setup.exe/astx-setup.exe a través de MemLoader.dll, engine.dat y cacheMon.dat hasta el módulo final HttpSpy. El tráfico de red mostró solicitudes GET a puertos locales y a URLs de C2.
Mitigación
Las organizaciones deben bloquear dominios e IPs sospechosos, deshabilitar la ejecución de archivos de script de fuentes desconocidas, monitorear la creación de regsvr32 y tareas programadas, y aplicar la verificación de firma de código. Validar los enlaces de reuniones Webex antes de hacer clic y usar inspección TLS para detectar tráfico JSONPing.
Respuesta
Detectar la presencia de binarios identificados, claves de ejecución del registro Run, tareas programadas e indicadores de red. Cuarentenar los hosts afectados, revocar certificados de firma de código comprometidos y realizar análisis forense de cargas útiles y mecanismos de persistencia.
Flujo de Ataque
Todavía estamos actualizando esta parte. Regístrese para ser notificado
Notify MeDetecciones
Puntos de Persistencia Posibles [ASEPs – Software/Colmena NTUSER] (vía evento_registro)
Ver
Ejecución de Procesos del Sistema desde Rutas Atípicas (vía creación_de_proceso)
Ver
Regsvr32 Ejecutando Carga Útil en Ubicaciones Sospechosas (vía línea_comando)
Ver
Uso de Certutil para Codificación de Datos y Operaciones de Certificados (vía línea_comando)
Ver
Ejecución Sospechosa desde Perfil de Usuario Público (vía creación_de_proceso)
Ver
IOCs (HashSha256) para detectar: Técnicas de Ataque Avanzadas de Kimsuky: JSONPing, Suplantación de Webex y una Nueva Variante de HttpSpy
Ver
IOCs (HashMd5) para detectar: Técnicas de Ataque Avanzadas de Kimsuky: JSONPing, Suplantación de Webex y una Nueva Variante de HttpSpy Parte 2
Ver
IOCs (HashMd5) para detectar: Técnicas de Ataque Avanzadas de Kimsuky: JSONPing, Suplantación de Webex y una Nueva Variante de HttpSpy Parte 1
Ver
IOCs (SourceIP) para detectar: Técnicas de Ataque Avanzadas de Kimsuky: JSONPing, Suplantación de Webex y una Nueva Variante de HttpSpy
Ver
IOCs (DestinationIP) para detectar: Técnicas de Ataque Avanzadas de Kimsuky: JSONPing, Suplantación de Webex y una Nueva Variante de HttpSpy
Ver
Detección de Comunicación C&C de la Variante HttpSpy [Conexión de Red de Windows]
Ver
Ejecución Sospechosa de Regsvr32 y PowerShell para Ejecución Maliciosa de DLL [Creación de Procesos de Windows]
Ver
Resumen Ejecutivo
- ID del Caso de Prueba: TC-20260529-A7Z3Q
- TTPs:
- T1005 (Datos del Sistema Local)
- T1010 (Descubrimiento de Ventana de Aplicación)
- T1012 (Consulta de Registro)
- T1027.009 (Archivos u Información Ofuscados: Cargas Incrustadas)
- T1027.010 (Archivos u Información Ofuscados: Relleno Binario)
- T1027.013 (Archivos u Información Ofuscados: Eliminación de Indicadores de Herramientas)
- T1036.004 (Disfraz: Tarea o Servicio Disfrazado)
- T1041 (Exfiltración a través de Canal de Comando y Control)
- T1053.005 (Tarea/Trabajo Programado: Tarea Programada)
- T1055.001 (Inyección de Procesos: Inyección de Biblioteca de Enlace Dinámico)
- T1057 (Descubrimiento de Procesos)
- T1059.003 (Intérprete de Comandos y Scripts: Consola de Comandos Windows)
- T1059.007 (Intérprete de Comandos y Scripts: JavaScript)
- T1070.004 (Eliminación de Indicadores en el Host: Eliminación de Archivos)
- T1070.006 (Eliminación de Indicadores en el Host: Eliminar Claves del Registro)
- T1070.009 (Eliminación de Indicadores en el Host: Limpiar Registros de Eventos de Windows)
- T1071.001 (Protocolo de Capa de Aplicación: Protocolos Web)
- T1082 (Descubrimiento de Información del Sistema)
- T1083 (Descubrimiento de Archivos y Directorios)
- T1090 (Proxy)
- T1113 (Captura de Pantalla)
- T1132.001 (Codificación de Datos: Codificación Estándar)
- T1134.002 (Manipulación de Tokens de Acceso: Crear e Imitar Token)
- T1140 (Desofuscación/Decodificación de Archivos o Información)
- T1204.002 (Ejecución de Usuario: Archivo Malicioso)
- T1497.001 (Evasión de Virtualización/Sandbox: Verificaciones del Sistema)
- T1547.001 (Ejecución de Autoinicio de Arranque o Inicio de Sesión: Claves de Registro Run / Carpeta de Inicio)
- T1566 (Phishing)
- T1573.001 (Canal Encriptado: Encriptación Simétrica)
- T1620 (Carga de Código Reflectante)
- Resumen de la Lógica de Reglas de Detección: Detecta un comando PowerShell que lanza
regsvr32.execon una ventana oculta para cargar un DLL desde eldirectorio C:ProgramData. - Lenguaje/Formato de la Regla de Detección: Sigma (YAML)
- Entorno de Seguridad Objetivo:
- OS: Windows 10 / Windows Server 2019 (eventos de creación de procesos)
- Registro: Sysmon de Windows (ID de Evento 1) y Registro de Eventos de Seguridad de Windows (ID de Evento 4688)
- Pila de Seguridad: SIEM que ingiera reglas Sigma (p. ej., Azure Sentinel, Splunk, Elastic) con cobertura EDR (Microsoft Defender para Endpoint)
- Puntuación de Resiliencia (1-5): 3
- Justificación: La regla se acopla estrechamente
regsvr32.exela ejecución con un patrón específico de lanzamiento de PowerShell, que es efectivo contra la técnica exacta descrita. Sin embargo, los adversarios pueden evadirla (1) usando mecanismos alternativos de carga (p. ej.,rundll32,PowerShell -EncodedCommand), (2) cambiando el nombreregsvr32.exe, o (3) ejecutando el DLL vía carga reflectante sin invocarregsvr32. Por lo tanto, resistencia moderada. - Hallazgos Clave: La regla se activa de manera confiable cuando se ejecuta el comando exacto de PowerShell-regsvr32; el uso benigno de
regsvr32.exesin el envolvimiento de PowerShell no activa la alerta. - Recomendación: Aumente la regla con patrones adicionales (p. ej., detección de
regsvr32.exeinvocado directamente, monitoreo de cargas de DLL desde rutas atípicas y detección de comandos PowerShell codificados) para aumentar la resiliencia a 4-5.
Entorno de Simulación y Contexto
-
TTPs Bajo Prueba:
- T1055.001: Inyección de Procesos – Inyección de Biblioteca de Enlace Dinámico (DLL malicioso cargado a través de
regsvr32.exe) - T1059.003: Intérprete de Comandos y Scripts – Consola de Comandos Windows (PowerShell utilizado para ocultar la ejecución)
- T1027.009 / T1027.010 / T1027.013: Archivos u Información Ofuscados (ofuscación del nombre del DLL, ventana oculta)
- T1055.001: Inyección de Procesos – Inyección de Biblioteca de Enlace Dinámico (DLL malicioso cargado a través de
-
Contexto y Relevancia de TTPs:
- T1055.001: El atacante emplea
regsvr32.exepara cargar un DLL malicioso (mTSTCv8.mdxm) en un proceso de confianza, burlando el listado blanco de aplicaciones. - T1059.003: PowerShell lanza el
regsvr32comando con-windowstyle hiddenpara evadir la conciencia del usuario y monitoreo de la interfaz de usuario del punto final. - TTPs de Ofuscación: El uso de una extensión DLL no estándar (
.mdxm) y una ventana oculta son técnicas clásicas de evasión que la regla intenta destacar.
- T1055.001: El atacante emplea
-
Entorno Objetivo:
- OS: Windows 10 Enterprise (build 1909)
- Registro: Sysmon configurado con conjunto de reglas predeterminado (captura ProcessCreate, ImageLoaded) más registro de eventos de seguridad de Windows 4688 habilitado.
- Pila de Seguridad: Azure Sentinel (espacio de trabajo Log Analytics) que ingesta registros de Sysmon/Windows; Microsoft Defender para Endpoint para alertas basadas en host.
Telemetría y Verificación Previa al Vuelo
Razonamiento: Antes de simular el ataque, debemos confirmar que el host objetivo esté configurado para generar los registros necesarios, que estos registros sean ingeridos por el SIEM y que la regla de detección no se active en actividades benignas.
-
1. Instrucciones de Configuración de Telemetría:
-
Instale Sysmon (v13 o posterior) con el siguiente fragmento de configuración (guardado como
sysmon-config.xml):<Sysmon schemaversion="4.70"> <EventFiltering> <ProcessCreate onmatch="include"> <Image condition="is">regsvr32.exe</Image> </ProcessCreate> </EventFiltering> </Sysmon>Ejecute:
sysmon -i -accepteula -c sysmon-config.xml -
Verifique que la auditoría de seguridad de Windows esté habilitada para “Auditar Creación de Procesos” (Política:
Configuración del Equipo → Configuración de Windows → Configuración de Seguridad → Configuración de Políticas de Auditoría Avanzadas → Políticas de Auditoría del Sistema → Seguimiento Detallado → Auditar Creación de Procesos– establecido en Éxito). -
Asegúrese de que el recolector de eventos reenvíe el ID de Evento 4688 (Creación de Proceso) y el ID de Evento 1 de Sysmon a Azure Sentinel a través del agente de Log Analytics.
-
-
2. Validación de Ingestión y Línea Base:
-
Acción (Telemetría Benigna): Ejecute un
regsvr32llamado legítimo que no not involucre PowerShell o ventanas ocultas (p. ej., registrar un DLL de Microsoft).# Registro benigno de un DLL de Windows (sin ventana oculta) regsvr32.exe /s C:WindowsSystem32shdocvw.dll -
Consulta de Validación (Ingestión): En Azure Sentinel (KQL), confirme que el evento benigno fue ingerido pero no not coincidió con la regla.
// Verifique la ingestión de la ejecución benigna de regsvr32 Event | where SourceSystem == "Security" and EventID == 4688 | where Process == "regsvr32.exe" | where CommandLine !contains "powershell.exe" | project TimeGenerated, Computer, Process, CommandLine, EventIDEl conjunto de resultados debe incluir el evento benigno, y la alerta de la regla Sigma debe permanecer silenciosa.
-
Ejecución de la Simulación
Requisito Previos: El Chequeo Previo al Vuelo de Telemetría y Línea 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 del Ataque y Comandos:
El adversario ha obtenido un DLL personalizado (mTSTCv8.mdxm) que contiene un cargador reflectante para una carga útil de segunda etapa. Para evitar la ejecución interactiva, el atacante diseña un script PowerShell de una línea que ejecutaregsvr32.execon la/sbandera silenciosa mientras oculta la consola de PowerShell (-WindowStyle Hidden). El DLL reside endirectorio C:ProgramDatapara mezclarse con los datos legítimos de la aplicación. Pasos de ejecución:- Copie el DLL malicioso a
C:ProgramDatamTSTCv8.mdxm. - Lance PowerShell (oculto) que ejecute
regsvr32.exe /s C:ProgramDatamTSTCv8.mdxm. - El proceso oculto de PowerShell genera
regsvr32.exe, que carga el DLL en su propio espacio de proceso, logrando así la ejecución de código con un binario de confianza.
- Copie el DLL malicioso a
-
Script de Prueba de Regresión:
# ============================== # Prueba de Regresión: Regsvr32 vía PowerShell (DLL Malicioso) # ============================== # 1. Despliegue el DLL malicioso (simulado con un DLL benigno conocido por seguridad) $dllPath = "C:ProgramDatamTSTCv8.mdxm" Copy-Item -Path "$env:SystemRootSystem32windows.storage.dll" -Destination $dllPath -Force # 2. Ejecute el lanzamiento oculto de PowerShell que la regla Sigma busca $psCommand = "powershell.exe -WindowStyle Hidden regsvr32.exe /s `"$dllPath`"" Start-Process -FilePath "powershell.exe" -ArgumentList "-WindowStyle Hidden", "regsvr32.exe", "/s", "`"$dllPath`"" -NoNewWindow # Opcional: Espere unos segundos para que el proceso aparezca en los registros Start-Sleep -Seconds 5 # 3. Emitir un marcador de evento a la consola para la validación de la prueba Write-Host "[*] Ejecución de regsvr32 lanzada a través de PowerShell oculto." -
Comandos de Limpieza:
# Elimine el DLL malicioso simulado Remove-Item -Path "C:ProgramDatamTSTCv8.mdxm" -Force -ErrorAction SilentlyContinue # Cierre cualquier proceso regsvr32.exe persistente (si los hay) Get-Process -Name regsvr32 -ErrorAction SilentlyContinue | Stop-Process -Force Write-Host "[*] Limpieza completada."