BITTER Amplía Su Arsenal de Malware con PapRAT
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
El grupo de ciberespionaje del sur de Asia BITTER está llevando a cabo campañas utilizando troyanos de acceso remoto (RATs) personalizados conocidos como PapRAT y WmRAT. Los ataques dependen de múltiples cadenas de infección que involucran archivos LNK, imágenes VHDX e instaladores MSI para establecer persistencia y ejecutar comandos. El malware también ha evolucionado de implementaciones en C++ a variantes más capaces basadas en Rust.
Investigación
FortiGuard Labs analizó tres cadenas de ataque distintas dirigidas a organizaciones en el sur de Asia. La investigación identificó el abuso de LOLBins como ftp.exe y curl, junto con diferentes técnicas de preparación diseñadas para evadir controles de seguridad. El análisis de malware también descubrió configuraciones de C2 codificadas con XOR y un cambio de implantes en C++ hacia un malware más nuevo basado en Rust.
Mitigación
Las organizaciones deben mantener cautela al manejar archivos LNK no solicitados, accesos directos URL, imágenes de disco y paquetes MSI. Los equipos de seguridad deben implementar controles para detectar cadenas de ejecución sospechosas, la creación de tareas programadas y tráfico C2 saliente inusual. El entrenamiento en concienciación del usuario enfocado en señuelos de phishing y adjuntos maliciosos también es esencial.
Respuesta
Cuando se detecta actividad maliciosa, aisle los hosts comprometidos para prevenir el movimiento lateral y la ejecución de comandos adicionales. Revise las tareas programadas y los registros de instalación MSI para encontrar cambios no autorizados. Realice un análisis forense de artefactos persistentes como err.log or talk.log, e inspeccione el tráfico de red saliente en busca de conexiones con dominios C2 identificados o sospechosos.
Flujo de Ataque
Detecciones
Posible uso de Schtasks o AT para persistencia (via cmdline)
Ejecución sospechosa de la utilidad Fsutil [Impacto] (via cmdline)
Posible enumeración de software antivirus o de firewall (via process_creation)
Schtasks apunta a directorio/binario/script sospechoso (via cmdline)
Posible ofuscación de la línea de comandos utilizando caretas (via cmdline)
Posible ejecución de script FTP con extensiones poco comunes (via cmdline)
MsiExec generado por el proceso de shell (via cmdline)
LOLBAS Conhost (via cmdline)
Uso sospechoso de CURL (via cmdline)
Se creó un archivo de disco duro virtual (via file_event)
IOCs (HashSha256) para detectar: BITTER amplía su arsenal con PapRAT
IOCs (SourceIP) para detectar: BITTER amplía su arsenal con PapRAT
IOCs (DestinationIP) para detectar: BITTER amplía su arsenal con PapRAT
Detección de creación de tarea programada para contacto persistente [Sistema Windows]
Detección de ejecución de comando de PowerShell de la variante Rust de PapRAT [Windows Powershell]
Ejecución maliciosa de LNK abusando de utilidades y scripts de Windows [Creación de Proceso de Windows]
Ejecución de Simulación
-
Narrativa y Comandos del Ataque: El adversario pretende establecer persistencia en la máquina víctima para asegurar que su carga maliciosa se ejecute cada 30 minutos, facilitando una conexión continua con su infraestructura de Comando y Control (C2). Para integrarse con la actividad legítima del sistema y evadir la detección simple basada en firmas, el atacante utiliza el
schtasks.exeutilidad de Windows nativa. Eligen un nombre de tarea engañoso,MicrosoftUpdatesupdates11678, que imita un servicio legítimo de actualización de Windows para pasar desapercibidos dentro de la biblioteca del Programador de Tareas. -
Script de Prueba de Regresión:
# Script de simulación para activar la regla de detección específica # Este script imita el mecanismo de persistencia del grupo BITTER. $TaskName = "MicrosoftUpdatesupdates11678" $Command = "cmd.exe /c echo 'C2 Beaconing Simulation'" Write-Host "[+] Intentando crear tarea programada: $TaskName" -ForegroundColor Cyan # Ejecute el comando que coincide exactamente con la lógica de detección # La lógica busca: schtasks.exe + /create + /sc minute + /mo 30 + nombre de tarea schtasks /create /sc minute /mo 30 /tn "$TaskName" /tr "$Command" /f if ($LASTEXITCODE -eq 0) { Write-Host "[!] ÉXITO: Tarea programada creada. Revise el SIEM para la alerta." -ForegroundColor Green } else { Write-Host "[-] FALLO: No se pudo crear la tarea. Asegúrese de que está ejecutando como Administrador." -ForegroundColor Red } -
Comandos de Limpieza:
# Script de limpieza para eliminar la persistencia simulada $TaskName = "MicrosoftUpdatesupdates11678" Write-Host "[+] Eliminando tarea programada: $TaskName" -ForegroundColor Cyan schtasks /delete /tn "$TaskName" /f if ($LASTEXITCODE -eq 0) { Write-Host "[!] Limpieza exitosa." -ForegroundColor Green } else { Write-Host "[-] Limpieza fallida. Se requiere eliminación manual." -ForegroundColor Red }