SOC Prime Bias: Crítico

16 Dic 2025 19:22

Ciberespionaje de APT15: Análisis de Campañas y TTPs

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Follow
Ciberespionaje de APT15: Análisis de Campañas y TTPs
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumen

APT15 es un grupo chino de ciberespionaje patrocinado por el estado activo desde 2010, que se dirige principalmente a agencias gubernamentales, misiones diplomáticas y organizaciones militares. Los actores dependen de la suplantación de identidad dirigida, la explotación de aplicaciones expuestas al público y puertas traseras personalizadas para obtener acceso inicial y mantener posiciones a largo plazo. Su conjunto de herramientas incluye esteganografía, enmascaramiento, manipulación del registro y canales C2 encriptados incrustados en encabezados HTTP o tráfico DNS. La campaña sigue evolucionando con nuevas herramientas como Graphican y la red de retransmisión ORB3.

Investigación

La investigación mapeó múltiples familias de malware (BS2005, TidePool, MirageFox, Graphican, etc.) y un conjunto completo de técnicas ATT&CK que abarcan acceso inicial, ejecución, persistencia, escalamiento de privilegios, evasión de defensa, acceso a credenciales, descubrimiento, recopilación, exfiltración y control y comando. Los analistas extrajeron indicadores concretos, incluidos dominios, rutas de archivos, llaves de registro y líneas de comando de los datos del caso. La infraestructura del grupo aprovecha dominios como goback.stranged.net and finance.globaleducat.com para operaciones C2.

Mitigación

Las medidas de defensa recomendadas incluyen el escaneo riguroso de archivos adjuntos de correo electrónico, la actualización inmediata de parches en Microsoft Exchange, SharePoint y dispositivos VPN, y el monitoreo de modificaciones sospechosas en el registro, tareas programadas anormales y ejecución de cargas útiles basadas en rundll32 o COM. La monitorización de la red debe centrarse en actividad de cookies HTTP atípica y consultas DNS TXT alineadas con patrones conocidos de C2. La lista blanca de aplicaciones y los análisis de comportamiento pueden ayudar a bloquear el uso de archivadores renombrados y cargas útiles PNG basadas en esteganografía.

Respuesta

Cuando se detecta actividad de APT15, aísle el host afectado, capture datos volátiles y todos los artefactos IOC relacionados, y bloquee los dominios e IPs C2 identificados. Realice un análisis forense completo para localizar accesos directos persistentes, tareas programadas y cambios en el registro, luego erradique los componentes maliciosos y restablezca cualquier credencial comprometida. Informe a los usuarios afectados y actualice las reglas de detección para cubrir las líneas de comando, rutas de archivos e indicadores de infraestructura observados.

«graph TB %% Class definitions classDef technique fill:#99ccff classDef operator fill:#ff9900 %% Node definitions node_initial[«<b>Técnica</b> – <b>T1566.001 Spearphishing Attachment</b><br /><b>Descripción</b>: Enviar correos electrónicos dirigidos con archivos adjuntos maliciosos para obtener acceso inicial.»] class node_initial technique node_valid[«<b>Técnica</b> – <b>T1078 Cuentas Válidas</b><br /><b>Descripción</b>: Utilizar credenciales legítimas comprometidas para acceder a los sistemas.»] class node_valid technique node_exploit[«<b>Técnica</b> – <b>T1190 Exploit Public-Facing Application</b><br /><b>Descripción</b>: Explotar vulnerabilidades en servicios orientados a Internet para obtener acceso.»] class node_exploit technique node_cmd[«<b>Técnica</b> – <b>T1059.003 Windows Command Shell</b><br /><b>Descripción</b>: Ejecutar comandos a través de cmd.exe para ejecutar código malicioso.»] class node_cmd technique node_shortcut[«<b>Técnica</b> – <b>T1547.009 Modificación de Atajos</b><br /><b>Descripción</b>: Crear o modificar accesos directos LNK para persistencia.»] class node_shortcut technique node_task[«<b>Técnica</b> – <b>T1053 Tarea Programada</b><br /><b>Descripción</b>: Utilizar tareas programadas para ejecutar cargas útiles en momentos definidos.»] class node_task technique node_active[«<b>Técnica</b> – <b>T1547.014 Configuración Activa</b><br /><b>Descripción</b>: Aprovechar las claves del registro de Configuración Activa para persistencia.»] class node_active technique node_token[«<b>Técnica</b> – <b>T1134.003 Manipulación de Token de Acceso</b><br /><b>Descripción</b>: Asumir mayores privilegios al alterar tokens de acceso.»] class node_token technique node_steg[«<b>Técnica</b> – <b>T1027.003 Esteganografía</b><br /><b>Descripción</b>: Ocultar datos dentro de otros archivos para evadir detección.»] class node_steg technique node_masq[«<b>Técnica</b> – <b>T1036 Suplantación de Identidad</b><br /><b>Descripción</b>: Renombrar archivos o disfrazarlos como legítimos para evitar detección.»] class node_masq technique node_icon[«<b>Técnica</b> – <b>T1027.012 Contrabando de Iconos LNK</b><br /><b>Descripción</b>: Incrustar código malicioso en recursos de iconos LNK.»] class node_icon technique node_proxy[«<b>Técnica</b> – <b>T1218 Ejecución de Binario del Sistema como Proxy</b><br /><b>Descripción</b>: Abusar de binarios de sistema confiables para ejecutar código malicioso.»] class node_proxy technique node_guard[«<b>Técnica</b> – <b>T1480.001 Guardas de Ejecución</b><br /><b>Descripción</b>: Verificar condiciones del entorno antes de la ejecución.»] class node_guard technique node_sandbox[«<b>Técnica</b> – <b>T1497 Evasión de Sandbox</b><br /><b>Descripción</b>: Detectar y evadir entornos de análisis sandbox.»] class node_sandbox technique node_keylog[«<b>Técnica</b> – <b>T1056.001 Keylogging</b><br /><b>Descripción</b>: Capturar pulsaciones de teclas para obtener credenciales.»] class node_keylog technique node_dump[«<b>Técnica</b> – <b>T1003 Vaciado de Credenciales del SO</b><br /><b>Descripción</b>: Extraer hashes de contraseñas del sistema operativo.»] class node_dump technique node_sysinfo[«<b>Técnica</b> – <b>T1082 Descubrimiento de Información del Sistema</b><br /><b>Descripción</b>: Recoger detalles del SO, hardware y software.»] class node_sysinfo technique node_inet[«<b>Técnica</b> – <b>T1016.001 Descubrimiento de Conexiones a Internet</b><br /><b>Descripción</b>: Identificar conexiones de red activas y direcciones IP.»] class node_inet technique node_stage[«<b>Técnica</b> – <b>T1074.001 Datos Preparados</b><br /><b>Descripción</b>: Acumular datos localmente antes de la exfiltración.»] class node_stage technique node_archive[«<b>Técnica</b> – <b>T1560.001 Archivar a través de Utilidad</b><br /><b>Descripción</b>: Comprimir datos utilizando utilidades como zip.»] class node_archive technique node_email[«<b>Técnica</b> – <b>T1114.002 Recolección Remota de Email</b><br /><b>Descripción</b>: Acceder a cuentas de email para recolectar mensajes.»] class node_email technique node_http[«<b>Técnica</b> – <b>T1071.001 Protocolos Web HTTP</b><br /><b>Descripción</b>: Utilizar HTTP para comunicaciones de comando y control.»] class node_http technique node_obfusc[«<b>Técnica</b> – <b>T1001 Ofuscación de Datos</b><br /><b>Descripción</b>: Codificar o encriptar datos para ocultar su contenido.»] class node_obfusc technique node_dead[«<b>Técnica</b> – <b>T1102.001 Resolutor de Punto Muerto</b><br /><b>Descripción</b>: Recuperar comandos o datos de ubicaciones ocultas.»] class node_dead technique node_encrypt[«<b>Técnica</b> – <b>T1573.001 Canal Encriptado</b><br /><b>Descripción</b>: Encriptar tráfico de C2 para ocultar comunicaciones.»] class node_encrypt technique node_exfil[«<b>Técnica</b> – <b>T1048.003 Exfiltración sobre Protocolo No C2 Sin Encriptar</b><br /><b>Descripción</b>: Transferir datos usando protocolos no asociados con C2 sin encriptación.»] class node_exfil technique %% Connections node_initial u002du002d>|leads_to| node_valid node_initial u002du002d>|leads_to| node_exploit node_valid u002du002d>|leads_to| node_cmd node_cmd u002du002d>|enables| node_shortcut node_cmd u002du002d>|enables| node_task node_cmd u002du002d>|enables| node_active node_cmd u002du002d>|enables| node_token node_cmd u002du002d>|enables| node_steg node_cmd u002du002d>|enables| node_masq node_cmd u002du002d>|enables| node_icon node_cmd u002du002d>|enables| node_proxy node_cmd u002du002d>|enables| node_guard node_cmd u002du002d>|enables| node_sandbox node_cmd u002du002d>|enables| node_keylog node_cmd u002du002d>|enables| node_dump node_cmd u002du002d>|enables| node_sysinfo node_cmd u002du002d>|enables| node_inet node_sysinfo u002du002d>|feeds| node_stage node_inet u002du002d>|feeds| node_stage node_stage u002du002d>|includes| node_archive node_stage u002du002d>|includes| node_email node_archive u002du002d>|used_by| node_http node_email u002du002d>|used_by| node_http node_http u002du002d>|uses| node_obfusc node_http u002du002d>|uses| node_dead node_http u002du002d>|uses| node_encrypt node_http u002du002d>|exfiltrates_via| node_exfil «

Flujo de Ataque

Ejecución de Simulación

Prerrequisito: La Verificación Previa de Telemetría y Línea Base debe haber pasado.

Narrativa de Ataque y Comandos:

  1. Preparación: El adversario ya ha comprometido una cuenta de usuario y ha aterrizado en el punto final.
  2. Preparación de Datos (T1059.003): Usando el exacto xcopy sintaxis observada en actividad histórica de APT15, el atacante copia los archivos del escritorio de la víctima a una carpeta temporal oculta de WMI, preservando las marcas de tiempo (/D:09-29-2021) para mezclarse con la actividad legítima del sistema.
  3. Ejecución de Carga Útil (T1218.002): El atacante luego invoca rundll32.exe con una ruta de nombre corto (C:DOCUME~1ALLUSE~1IEHelpermshtml.dll) para ejecutar JavaScript malicioso que establece la persistencia.
  4. Resultado: Ambos comandos generan eventos de creación de procesos distintos que coinciden con la regla Sigma selección1 and selección2 respectivamente, activando una alerta.

Script de Prueba de Regresión:

# -------------------------------------------------
# Script de Simulación APT15 – activa la regla Sigma
# -------------------------------------------------

# 1. Crear directorios de preparación y archivos ficticios
$src = "C:usersREDACTEDDesktop"
$dst = "C:windowstempwmi"
New-Item -Path $src -ItemType Directory -Force | Out-Null
New-Item -Path $dst -ItemType Directory -Force | Out-Null
Set-Content -Path "$srcsecret.txt" -Value "datos sensibles" -Encoding UTF8

# 2. Ejecutar el comando xcopy exacto utilizado por APT15
$xcopyCmd = "xcopy /D:09-29-2021 /S/Y/C c:usersREDACTEDDesktop c:windowstempwmi"
Invoke-Expression $xcopyCmd

# 3. Desplegar la DLL maliciosa (simulada copiando una DLL legítima)
$malDllSrc = "$env:SystemRootSystem32mshtml.dll"
$malDllDst = "C:DOCUME~1ALLUSE~1IEHelpermshtml.dll"
New-Item -Path (Split-Path $malDllDst) -ItemType Directory -Force | Out-Null
Copy-Item -Path $malDllSrc -Destination $malDllDst -Force

# 4. Ejecutar rundll32 con el patrón de argumentos exacto de APT15
$rundllCmd = "rundll32.exe C:DOCUME~1ALLUSE~1IEHelpermshtml.dll, IEHelper"
Invoke-Expression $rundllCmd

# -------------------------------------------------
# Fin de la simulación
# -------------------------------------------------

Comandos de Limpieza:

# Eliminar archivos y directorios de preparación
Remove-Item -Path "C:usersREDACTEDDesktopsecret.txt" -Force -ErrorAction SilentlyContinue
Remove-Item -Path "C:windowstempwmi" -Recurse -Force -ErrorAction SilentlyContinue

# Eliminar la carpeta y DLL IEHelper falsa
Remove-Item -Path "C:DOCUME~1ALLUSE~1IEHelper" -Recurse -Force -ErrorAction SilentlyContinue

# Opcional: detener Sysmon (si solo es necesario para la prueba)
# & "$env:ProgramFilesSysinternalsSysmon.exe" -u