Campaña AsyncRAT Usa AutoIt para la Entrega de Malware en Múltiples Etapas
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
Se ha identificado una cadena de infección de AsyncRAT de cinco etapas que utiliza un archivo por lotes creado para engañar y el intérprete legítimo de AutoIt para su ejecución. El malware se basa en la ofuscación en capas, incluida la reconstrucción de fragmentos de Base64 y varias rondas de desencriptación XOR, para evadir la detección. La etapa final despliega una carga útil de AsyncRAT basada en .NET que se inyecta en un proceso legítimo de Windows para robar información y capturar capturas de pantalla.
Investigación
La investigación rastreó la ejecución desde un archivo por lotes malicioso a un script de PowerShell, seguido de un script cargador de AutoIt llamado kojuyn.ini que deja caer una carga útil cifrada. Los analistas usaron PE-Sieve para confirmar la inyección de procesos en charmap.exe y determinaron que la carga útil era un ensamblado .NET capaz de parcheo AMSI. Se recuperó la carga útil final de la memoria como Veukuzmw.dll.
Mitigación
Los defensores deben monitorear la ejecución sospechosa de PowerShell usando ventanas ocultas y para los archivos por lotes creados dentro de la carpeta de inicio del usuario. Las organizaciones deben restringir la ejecución de scripts no firmados y buscar binarios legítimos como charmap.exe iniciando conexiones de red de salida inesperadas. También se recomienda una mayor vigilancia de la actividad del intérprete de AutoIt e intentos de inyección de memoria.
Respuesta
Si se detecta actividad de AsyncRAT, el endpoint afectado debe ser aislado inmediatamente para detener cualquier comunicación C2 adicional o exfiltración de datos. Los respondedores deben realizar forense de memoria para identificar las cargas útiles inyectadas y preservar los artefactos volátiles. También se deben revisar los mecanismos de persistencia en la carpeta de inicio y el historial de comandos de PowerShell para detectar etapas adicionales o movimientos laterales.
Flujo de Ataque
Todavía estamos actualizando esta parte.
Detecciones
Ejecutable sospechoso que contiene solo números en el nombre (a través de cmdline)
Cadenas sospechosas de PowerShell (a través de PowerShell)
Posibles indicadores de ofuscación de PowerShell (a través de PowerShell)
Binario/Scripts sospechosos en la ubicación de inicio automático (a través de file_event)
IOCs (HashSha256) para detectar: AsyncRAT Distribuido mediante AutoIT: Análisis de Cadena Completa
IOCs (SourceIP) para detectar: AsyncRAT Distribuido mediante AutoIT: Análisis de Cadena Completa
IOCs (DestinationIP) para detectar: AsyncRAT Distribuido mediante AutoIT: Análisis de Cadena Completa
Inyección de proceso AsyncRAT en charmap.exe [Creación de Procesos de Windows]
Persistencia de PowerShell a través de la carpeta de inicio [PowerShell de Windows]
Ejecución de Simulación
-
Narrativa del Ataque & Comandos: El atacante ha obtenido acceso inicial y desea establecer persistencia. Para evitar la detección, evitan modificaciones directas del Registro. En su lugar, usan un shell de comandos (
cmd.exe) para invocar una instancia de PowerShell oculta. Esta instancia de PowerShell está instruida para escribir un pequeño archivo por lotes malicioso en la carpeta de inicio del usuario actual. Esto asegura que incluso después de un reinicio, el código del atacante se ejecutará automáticamente cuando el usuario inicie sesión. -
Script de Prueba de Reversión:
# Este script simula la cadena exacta: CMD -> PowerShell (Oculto) -> Escribir en Inicio $startupFolder = "$env:APPDATAMicrosoftWindowsStart MenuProgramsStartup" $targetFile = Join-Path $startupFolder "persistence_test.bat" $payloadContent = "@echo off`necho 'Prueba de Persistencia Exitosa'" # Ejecutamos vía CMD para satisfacer el requisito de la regla 'ParentImage: cmd.exe' Start-Process cmd.exe -ArgumentList "/c powershell.exe -WindowStyle Hidden -Command `"$payloadContent | Out-File -FilePath '$targetFile' -Encoding ascii`"" -Wait Write-Host "Comando de simulación enviado. Verifique el evento ID de Sysmon 1 y 11." -
Comandos de Limpieza:
$startupFolder = "$env:APPDATAMicrosoftWindowsStart MenuProgramsStartup" $targetFile = Join-Path $startupFolder "persistence_test.bat" if (Test-Path $targetFile) { Remove-Item $targetFile -Force Write-Host "Limpieza completa: $targetFile eliminado." } else { Write-Host "Archivo no encontrado, limpieza innecesaria." }