
Analyse pédagogique de la vulnérabilité Log4Shell (CVE-2021-44228), détaillant son exploitation dans une campagne de minage de cryptomonnaie avec des IoCs, la cartographie MITRE ATT&CK, et des conseils de détection.
L'équipe de sécurité d'Alibaba Cloud a divulgué publiquement une vulnérabilité critique (CVE-2021-44228) permettant une exécution de code à distance non authentifiée contre plusieurs versions d'Apache Log4j2 (Log4Shell). Les serveurs vulnérables peuvent être exploités par des attaquants se connectant via tout protocole tel que HTTPS et envoyant une chaîne spécialement conçue.
Darktrace a détecté du minage de crypto-monnaie sur plusieurs déploiements clients résultant de l'exploitation de cette vulnérabilité Log4j. Dans chacun de ces incidents, l'exploitation s'est produite via des connexions SSL sortantes qui semblaient être des demandes de scripts PowerShell encodés en base64 pour contourner les défenses périmétriques et télécharger des fichiers de script batch (.bat) et plusieurs exécutables installant des logiciels malveillants de minage. L'activité présentait des indicateurs de campagne plus larges, notamment des IP codées en dur, des fichiers exécutables et des scripts communs.
Le cycle d'attaque commence par ce qui semble être un balayage opportuniste d'appareils connectés à Internet à la recherche de serveurs VMWare Horizons vulnérables à l'exploit Log4j. Une fois un serveur vulnérable trouvé, l'attaquant établit des connexions HTTP et SSL vers la victime. Après une exploitation réussie, le serveur effectue un rappel sur le port 1389, récupérant un script nommé mad_micky.bat. Cela permet d'obtenir les résultats suivants :
Dans au moins deux cas, le script mad_micky.bat a été récupéré lors d'une connexion HTTP avec l'agent utilisateur Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident/6.0; MAARJS). C'était la première et unique fois que cet agent utilisateur était vu sur ces réseaux. Il semble que cet agent utilisateur soit utilisé légitimement par certains appareils ASUS avec des installations neuves d'usine ; cependant, en tant que nouvel agent utilisateur vu uniquement lors de cette activité, il est suspect.
Après une exploitation réussie, le serveur effectue un rappel sur le port 1389 pour récupérer des fichiers de script. Dans cet exemple, /xms.ps1 est un script PowerShell encodé en base64 qui contourne la stratégie d'exécution sur l'hôte pour appeler ‘mad_micky.bat’ :
Figure 1 : Informations supplémentaires sur le script PowerShell xms.ps1
L'instantané détaille le journal des événements pour un serveur affecté et indique une RCE Log4j réussie qui a entraîné le téléchargement du fichier mad_micky.bat :
Figure 2 : Données de journal mettant en évidence le fichier mad_micky.bat
Des connexions supplémentaires ont été initiées pour récupérer des fichiers exécutables et des scripts. Les scripts contenaient deux adresses IP situées en Corée et en Ukraine. Une connexion a été établie avec l'IP ukrainienne pour télécharger le fichier exécutable xm.exe, qui active le mineur. Le mineur, XMRig Miner (dans ce cas), est un outil de minage open source multiplateforme disponible en téléchargement à partir de plusieurs emplacements publics. Le prochain téléchargement d'exe observé était pour ‘wxm.exe’ (f0cf1d3d9ed23166ff6c1f3deece19b4).
Figure 3 : Informations supplémentaires concernant l'exécutable XMRig
La connexion à l'IP coréenne impliquait une demande d'un autre script (/2.ps1) ainsi que d'un fichier exécutable (LogBack.exe). Ce script supprime les tâches en cours associées à la journalisation, y compris le filtre de journal d'événements SCM ou le consommateur de journal d'événements PowerShell. Le script demande également un fichier depuis Pastebin, qui est probablement un fichier de configuration de beacon Cobalt Strike. Les suppressions de journaux ont été effectuées via des tâches planifiées et WMI, incluant : Eventlogger, SCM Event Log Filter, DSM Event Log Consumer, PowerShell Event Log Consumer, Windows Events Consumer, BVTConsumer.
Le deuxième fichier demandé depuis Pastebin, bien que n'étant plus hébergé par Pastebin, fait partie d'une commande schtasks, et donc probablement utilisé pour établir une persistance :