
Le laboratoire de recherche sur les menaces d’Aryaka a analysé un script batch Windows fortement obscurci qui injecte du shellcode Donut et installe un implant .NET résidant en mémoire au sein d’un processus Windows légitime.
Présentation générale de la campagne de menaces
L’infection débute par un script batch malveillant qui utilise la substitution de variables, des étiquettes aléatoires, l’obfuscation du flux de contrôle et des instructions factices pour dissimuler son comportement. Il effectue des vérifications de l’environnement afin de contourner les systèmes d’analyse avant de créer un répertoire de transit caché à l’emplacement C:\ProgramData\IntelDriver. Le logiciel malveillant reconstitue les charges utiles intégrées et utilise une copie renommée de powershell.exe, baptisée HDVz.exe, pour exécuter les étapes suivantes. La persistance est assurée par une tâche planifiée qui lance le logiciel malveillant en arrière-plan lors de la connexion de l’utilisateur. Le chargeur PowerShell récupéré injecte principalement du shellcode « Donut » dans explorer.exe, ce qui permet à l’implant .NET final de s’exécuter en mémoire au sein d’un processus Windows de confiance.
Principales conclusions
Vous trouverez ci-dessous les caractéristiques de la campagne DonutLoader
- Contrôles anti-analyse basés sur les noms d’utilisateur, les éléments du système de fichiers et la mémoire système disponible : le logiciel malveillant recherche des indices de présence de machines virtuelles, de bacs à sable ou d’environnements d’analyse en inspectant les noms d’utilisateur, certains fichiers et la mémoire système avant de s’exécuter.
- Shellcode « Donut » et contenu PowerShell chiffré dissimulés sous des extensions de fichiers d’image : la charge utile utilise du shellcode généré par « Donut » et des scripts PowerShell chiffrés, masqués derrière des extensions de fichiers d’image, afin d’échapper à la détection et de dissimuler le contenu malveillant.
- Un fichier binaire PowerShell renommé utilisé comme vecteur d’exécution dissimulé : au lieu de lancer l’exécutable PowerShell standard, le logiciel malveillant le renomme afin de rendre son exécution moins suspecte et de contourner les contrôles de sécurité élémentaires.
- Persistance via une tâche planifiée utilisant un lanceur VBS : le logiciel malveillant crée une tâche planifiée qui exécute un script Visual Basic Script (VBS), garantissant ainsi qu’il se relancera automatiquement après un redémarrage du système ou la connexion d’un utilisateur.
- Injection de shellcode dans explorer.exe, avec des cibles de secours supplémentaires : le logiciel malveillant injecte du shellcode malveillant dans le processus de confiance explorer.exe afin de dissimuler son activité, en utilisant d’autres processus si la cible principale n’est pas disponible.
- Manipulation des interfaces AMSI et ETW visant à réduire la visibilité en matière de sécurité : le logiciel malveillant désactive ou contourne les interfaces AMSI (Antimalware Scan Interface) et ETW (Event Tracing for Windows) afin de réduire le risque de détection par les outils de sécurité.
- Composants .NET obscurcis associés à des activités de commande et de contrôle :
Le logiciel malveillant utilise un code .NET fortement obscurci afin de dissimuler les fonctionnalités permettant de communiquer avec les serveurs de commande et de contrôle (C2). - Notification d’exécution via Telegram et communication sortante avec une infrastructure distante : une fois exécuté, le logiciel malveillant envoie des notifications d’état via Telegram et communique avec des serveurs distants afin de recevoir des commandes ou de transmettre les informations volées.
Résultat de recherche notable : suivi personnalisé des injections
L’une des caractéristiques notables était le marqueur mémoire personnalisé : DE AD BE CA FE BA EF. Le logiciel malveillant place ce marqueur immédiatement avant le shellcode injecté et recherche sa présence dans les processus candidats avant l’injection. Cela permet au chargeur d’identifier les processus déjà injectés, d’éviter le déploiement en double du shellcode et de réduire le risque d’instabilité des processus. Ce marqueur fournit également aux défenseurs un indicateur précieux pour la recherche de menaces en mémoire.
Communication entre opérateurs et activités de commandement et de contrôle
Lors de son exécution, curl.exe envoie une requête HTTP POST au point de terminaison /sendMessage de l’API du bot Telegram, en utilisant un jeton de bot et un identifiant de discussion codés en dur. Cette requête inclut une notification destinée à l’opérateur confirmant la réussite de l’exécution du logiciel malveillant et indiquant qu’un canal Telegram contrôlé par l’opérateur est utilisé pour surveiller les infections actives. Après l’injection dans le processus, l’implant .NET tente de se connecter à l’adresse 167.88.167.9:8356 via un trafic TCP sortant, ce qui suggère l’existence d’un canal de commande et de contrôle dédié. L’infrastructure distante n’étant pas accessible au moment de l’analyse, il n’a pas été possible d’évaluer les tâches de l’opérateur ni l’ensemble des capacités post-infection.
Considérations défensives
Il est conseillé aux organisations de surveiller les binaires PowerShell renommés, les répertoires dissimulés dans ProgramData, les tâches planifiées suspectes, l’exécution de scripts à partir d’emplacements accessibles en écriture par l’utilisateur, les activités d’injection de processus, la mémoire exécutable privée, ainsi que les modifications apportées aux fonctions AMSI ou ETW. Les activités sur les terminaux doivent également être mises en corrélation avec les requêtes anormales adressées à l’API Telegram Bot et les connexions sortantes provenant de processus de confiance tels que explorer.exe. La corrélation comportementale offre une approche de détection plus fiable que le recours exclusif aux noms de fichiers, aux hachages, aux adresses IP ou à d’autres indicateurs isolés.
Analyse technique complète
Le rapport complet du laboratoire de recherche sur les menaces d’Aryaka présente une analyse technique détaillée de la chaîne d’infection, notamment :
- Désobfuscation de scripts Batch et restauration du flux de contrôle
- Comportements nuisibles à l’analyse et à la validation de l’environnement
- Reconstitution et déchiffrement de la charge utile intégrée
- Analyse du chargeur PowerShell
- Persistance des tâches planifiées
- Récupération du shellcode de Donut
- Flux de travail d’injection dans le processus
- Analyse par marqueurs d’injection
- Falsification des systèmes AMSI et ETW
- Analyse d’un implant .NET récupéré
- Notifications Telegram et activités de commande et de contrôle
- Indicateurs de compromission
- Mise en correspondance avec le cadre MITRE ATT&CK
- Recommandations en matière de défense et de recherche active des menaces
Téléchargez le rapport complet ici : Rapport sur le chargeur multi-étapes Donutloader