Muddy Water est un groupe qui cible des organisations gouvernementales et des opérateurs de télécommunication situés principalement au Moyen-Orient. Cette menace a fait surface en fin d’année 2017. L’analyse du vecteur d’infection et de la première phase d’infection a été largement documentée en fin d’année 2017 et en début 2018. Kapersky Lab a publié le 29 mai dernier, l’analyse des opérations réalisées après l’infection par le programme malveillant.

FIGURE 1 – Localisation des cibles – Kapersky Lab

Pour rappel, le vecteur initial de l’infection est une macro écrite en VBA contenu dans un document Microsoft Word, au format 97-2003, distribué par e-mail. Le document est habituellement protégé par mot de passe pour contourner les moteurs d’analyse statique. L’emblème d’un état situé au Moyen-Orient est affiché à l’ouverture du document Word dans le but d’inciter la victime à activer l’utilisation des macros.

Lorsque le “dropper” VBA est exécuté, il télécharge plusieurs fichiers qui contiennent la seconde partie de l’infection. Deux variantes ont été identifiées, elles ont pour but d’exécuter un script Powershell. Ce script contient des mécanismes de camouflage, d’anti débogage, de contact avec un serveur de commande et de contrôle et d’envoi d’informations sur la machine infectée pour sélectionner la victime suivant sa géolocalisation et l’entité à laquelle elle appartient. De plus, ce script supporte plusieurs commandes utilisables par le CnC qui ont pour but de prendre des captures d’écrans, d’exécuter des scripts Powershell via différents biais, de télécharger des fichiers vers le CnC, de redémarrer la machine et de détruire les disques durs.

FIGURE 2 – Ministère de l’intérieur turc – Kapersky Lab

La seconde partie de l’analyse menée par Kapersky Lab révèle qu’un large éventail d’outils est déployé sur les machines sélectionnées comme cible. Ces outils ont pour but de finaliser l’infection des victimes et d’effectuer de l’exfiltration de données. L’analyse met en avant le fait que ces outils sont principalement écrits dans des langages de script comme Python, C#, VBA et Powershell. De plus, Muddy Water compile ses outils écrits dans des langages de script comme Python ou Powershell avec Py2exe et PS2EXE pour gagner en portabilité. L’analyse montre que ces outils sont issus de développements personnalisés, mais aussi de développements publics.

Voici la liste des outils identifiés par Kapersky Lab :

  • Nihay (C#) : Télécharge et exécute des « oneliner » Powershell.
  • LisfonService (C#) : Outils d’accès à distance permettant la récupération d’information basique sur la machine infectée et l’exécution de code Powershell.
  • client.py (Python) : exécutable python compilé avec Pyinstaller permettant la récupération d’informations basiques sur la machine infectée et l’exécution de commandes implémentées en VBS et exécutées via cscript.exe. Il permet aussi l’installation de « keylogger », de vol d’identifiants de connexion dans Chrome, de tuer le gestionnaire de tâche et d’afficher des messages d’alerte.
  • client-win.py (python) : exécutable python compilé avec Pyinstaller et utilisant la librairie Paramiko qui permet la création de connexions SSH vers le CnC.
  • rc.py/rc.exe (python) : exécutable python compilé avec Pyinstaller et compressé avec UPX. Cet outil d’accès à distance permet de collecter des identifiants de connexion dans Chrome, IE, Mozilla, Opera, Outlook et d’exécuter des commandes système.
  • Lazagne (python) : Cet outil public est utilisé pour extraire des identifiants de connexion et les historiques des navigateurs web et Outlook.
  • Muddy (python) : Cet outil basé sur Lazagne est utilisé pour extraire des identifiants de connexion des navigateurs web et clients de messageries comme Chrome, IE, Mozilla, Opera, Coccoc et Outlook.
  • Slaver.py (python) : Cet outil permet la création des connexions TCP vers le CnC.
  • Cr.exe (python) : Script python compilé basé sur CrackMapExec utilisé pour la collecte des identifiants de connexion et pour réaliser des mouvements latéraux.
  • Mmap.py (python) : Script basé sur CrackMapExec et utilisé pour réaliser des mouvements latéraux.
  • Script de second stage (Powershell) : Cet outil télécharge et exécute d’autres scripts Powershell et implémente un outil d’accès à distance qui fournit de multiples fonctionnalités (chiffrement, encodage, modification de paramètre Windows).

L’analyse de Kapersky Lab montre aussi que le code malveillant utilisé par le groupe MuddyWater est marqué par plusieurs artefacts. Ces artefacts orientent l’origine des concepteurs vers des origines russe ou chinoise. Aucune affirmation sur l’origine réelle du groupe Muddy Water n’est avancée.

L’analyse de Muddy Water montre que les groupes malveillants ont su étendre le champ des outils utilisés dans une compromission vers des outils utilisant des technologies permettant un haut niveau d’adaptabilité et de personnalisation comme Python et Powershell. De plus, la large disponibilité d’outil disponible dans ces deux langages permet un éventail de possibilités très large ainsi qu’une rapidité de mise œuvre accrues.