La campagne AsyncRAT utilise AutoIt pour la livraison de logiciel malveillant à plusieurs étapes
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
Une chaîne d’infection AsyncRAT en cinq étapes a été identifiée, utilisant un fichier batch socialement manipulé et l’interpréteur AutoIt légitime pour l’exécution. Le malware s’appuie sur une obfuscation en couches, incluant la reconstruction de fragments Base64 et plusieurs cycles de décryptage XOR, pour échapper à la détection. La phase finale déploie une charge utile AsyncRAT basée sur .NET qui est injectée dans un processus Windows légitime pour voler des informations et capturer des captures d’écran.
Enquête
L’enquête a retracé l’exécution d’un fichier batch malveillant à un script PowerShell, suivi d’un script chargeur AutoIt nommé kojuyn.ini qui dépose une charge utile chiffrée. Les analystes ont utilisé PE-Sieve pour confirmer l’injection de processus dans charmap.exe et ont déterminé que la charge utile était un assembly .NET capable de patcher AMSI. La charge utile finale a été récupérée de la mémoire sous le nom Veukuzmw.dll.
Atténuation
Les défenseurs doivent surveiller les exécutions de PowerShell suspectes utilisant des fenêtres cachées et les fichiers batch créés dans le dossier de démarrage utilisateur. Les organisations doivent restreindre l’exécution de scripts non signés et surveiller les binaires légitimes tels que charmap.exe déclenchant des connexions réseau sortantes inattendues. Une surveillance renforcée de l’activité de l’interpréteur AutoIt et des tentatives d’injection mémoire est également recommandée.
Réponse
Si une activité AsyncRAT est détectée, le point de terminaison affecté doit être immédiatement isolé pour arrêter toute communication C2 ou exfiltration de données supplémentaires. Les intervenants doivent effectuer des analyses forensiques de la mémoire pour identifier les charges injectées et préserver les artefacts volatils. Les systèmes doivent également être vérifiés pour les mécanismes de persistance dans le dossier de démarrage, tandis que l’historique des commandes PowerShell doit être examiné pour toute mise en scène ou mouvement latéral supplémentaires.
Flux d’attaque
Nous mettons toujours à jour cette partie.
Détections
Exécutable suspect ne contenant que des chiffres dans le nom (via cmdline)
Chaînes PowerShell suspectes (via powershell)
Indicateurs possibles d’obfuscation PowerShell (via powershell)
Binaires/Scripts suspects dans l’emplacement de démarrage automatique (via file_event)
IOCs (HashSha256) à détecter : AsyncRAT livré via AutoIT : Analyse de la chaîne complète
IOCs (SourceIP) à détecter : AsyncRAT livré via AutoIT : Analyse de la chaîne complète
IOCs (DestinationIP) à détecter : AsyncRAT livré via AutoIT : Analyse de la chaîne complète
Injection de processus AsyncRAT dans charmap.exe [Création de processus Windows]
Persistance PowerShell via le dossier de démarrage [Windows Powershell]
Exécution de simulation
-
Narratif & Commandes de l’attaque: L’attaquant a obtenu un accès initial et souhaite établir une persistance. Pour éviter la détection, ils évitent les modifications directes du Registre. Au lieu de cela, ils utilisent un shell de commande (
cmd.exe) pour invoquer une instance PowerShell cachée. Cette instance PowerShell est instruite d’écrire un petit fichier batch malveillant dans le dossier de démarrage de l’utilisateur actuel. Cela garantit qu’après un redémarrage, le code de l’attaquant s’exécutera automatiquement lorsque l’utilisateur se connecte. -
Script de test de régression :
# Ce script simule la chaîne exacte : CMD -> PowerShell (Caché) -> Écrire dans le démarrage $startupFolder = "$env:APPDATAMicrosoftWindowsStart MenuProgramsStartup" $targetFile = Join-Path $startupFolder "persistence_test.bat" $payloadContent = "@echo off`necho 'Test de persistance réussi'" # Nous exécutons via CMD pour satisfaire l'exigence 'ParentImage: cmd.exe' de la règle Start-Process cmd.exe -ArgumentList "/c powershell.exe -WindowStyle Hidden -Command `"$payloadContent | Out-File -FilePath '$targetFile' -Encoding ascii`"" -Wait Write-Host "Commande de simulation envoyée. Vérifiez l'événement Sysmon ID 1 et 11." -
Commandes de nettoyage:
$startupFolder = "$env:APPDATAMicrosoftWindowsStart MenuProgramsStartup" $targetFile = Join-Path $startupFolder "persistence_test.bat" if (Test-Path $targetFile) { Remove-Item $targetFile -Force Write-Host "Nettoyage complet : $targetFile supprimé." } else { Write-Host "Fichier non trouvé, nettoyage inutile." }