Compromiso Sostenido: TA4922 Empaca PackClient
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
TA4922, un actor de amenaza de habla china, está utilizando un nuevo marco modular de C2 llamado PackClient. El malware se anuncia en Telegram y es compatible con el robo de datos, vigilancia y acceso remoto. Recientes campañas han dirigido sus objetivos a organizaciones en China e India a través de señuelos de phishing con temas fiscales.
Investigación
Los investigadores de Proofpoint identificaron PackClient a través de la observabilidad del malware dentro del entorno Deception Pro. La investigación rastreó varias cadenas de infección, incluyendo la carga lateral de DLL y la entrega a través de imágenes de disco IMG. El análisis reveló un flujo de ejecución por etapas múltiples que involucra un descargador, un componente lanzador y el módulo final del núcleo RAT de PackClient.
Mitigación
Las organizaciones deben monitorizar en busca de líneas de comando sospechosas de rundll32.exe y persistencia inusual a través de la clave de registro RunOnce . Se deben aplicar controles estrictos a las descargas ejecutables de dominios no confiables, mientras que la implementación no autorizada de software RMM debe ser monitoreada de cerca. Inspeccionar el tráfico de red en busca de protocolos TCP personalizados en puertos no estándar como el 6666 también puede mejorar la detección.
Respuesta
Si se detecta actividad de PackClient, el host afectado debe aislarse inmediatamente para detener la comunicación de C2 y la exfiltración de datos. Los respondedores deben realizar forensia de memoria para identificar el módulo PackClientCore inyectado y buscar el proceso guardian asociado. Las claves de registro bajo HKCUSOFTWAREPackClientConsole y los registros del sistema también deben revisarse para detectar actividad no autorizada de ManageEngine RMM.
Flujo de Ataque
Todavía estamos actualizando esta parte.
Detecciones
Puntos de Persistencia Posibles [ASEPs – Hive de Software/NTUSER] (vía evento_registro)
Ejecución de Procesos del Sistema desde Rutas No Típicas (vía creación_proceso)
Ejecución de Ruta Sospechosa de Dll Rundll32 (vía creación_proceso)
COIs (HashSha256) para detectar: Compromiso de Transporte: TA4922 Empaqueta PackClient
COIs (SourceIP) para detectar: Compromiso de Transporte: TA4922 Empaqueta PackClient
COIs (DestinationIP) para detectar: Compromiso de Transporte: TA4922 Empaqueta PackClient
Detección de Descarga del Módulo Loader de PackClient [Firewall]
Detectar Comunicación C2 de PackClient [Conexión de Red de Windows]
Detección de Infección de PackClient Usando Comandos de Ejecución Distintos [Creación de Procesos de Windows]
Ejecución de Simulación
Prerrequisito: La Verificación Previa de Telemetría y Línea de Base debe haberse completado.
Motivo: 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 tienen como objetivo generar exactamente la telemetría esperada por la lógica de detección. Ejemplos abstractos o no relacionados llevarán a un diagnóstico erróneo.
-
Narrativa del Ataque y Comandos: El adversario ha desplegado exitosamente el RAT PackClient en una estación de trabajo de Windows comprometida. Para establecer el comando y control, el malware intenta conectarse a su infraestructura C2 codificada. El objetivo del atacante es recibir instrucciones para la exfiltración de datos y movimiento lateral adicional. Simularemos esto iniciando una conexión de socket a una de las IPs maliciosas (206.238.196.96) en el puerto específico (6666) definido en la regla de detección para verificar que el SIEM genere una alerta.
-
Script de Prueba de Regresión:
# Simulación de intento de comunicación C2 de PackClient $C2_IP = "206.238.196.96" $C2_PORT = 6666 Write-Host "Intentando simular conexión C2 de PackClient a $C2_IP en el puerto $C2_PORT..." try { $tcpClient = New-Object System.Net.Sockets.TcpClient $connection = $tcpClient.BeginConnect($C2_IP, $C2_PORT, $null, $null) $wait = $connection.AsyncWaitHandle.WaitOne(5000, $false) if (-not $wait) { Write-Host "Conexión superada por tiempo (esperado si la IP no es alcanzable, pero la telemetría debería generarse todavía)." -ForegroundColor Yellow } else { Write-Host "Conexión exitosa (Inesperado para simulación)." -ForegroundColor Red } $tcpClient.Close() } catch { Write-Host "Conexión falló como se esperaba: $($_.Exception.Message)" -ForegroundColor Green } -
Comandos de Limpieza:
# Esta simulación de red solamente no crea artefactos persistentes. Write-Host "Limpieza de simulación completa. No se modificaron archivos ni claves de registro."