Lors de nos récentes activités de détection de menaces, nous avons découvert que le logiciel malveillant EtherRAT était distribué par un site web doté d'une page d'accueil suspecte. Cette page d'accueil nous a permis de mettre au jour une vaste infrastructure malveillante diffusant des logiciels malveillants, des documents malveillants, des logiciels de contrôle à distance et des pages d'hameçonnage.
EtherRAT est un RAT (Remote Access Trojan) développé en Node.js qui permet à un attaquant de prendre le contrôle total de la machine et d'exécuter du code arbitraire renvoyé par le serveur de commande et de contrôle (C2). Ce logiciel malveillant utilise la blockchain Ethereum pour obtenir le serveur C2, d'où le terme « Ether » dans son nom. EtherRAT est généralement distribué via des fichiers MSI, PowerShell ou des scripts JavaScript.
Un répertoire ouvert qui distribue EtherRAT : là où tout a commencé
Lors d'une recherche de menaces, nous avons découvert un répertoire ouvert distribuant des installateurs MSI et des scripts PowerShell, lesquels diffusaient en fin de compte EtherRAT. Dans les cas analysés, ces scripts et installateurs étaient distribués depuis un dossier « /install ». Les versions sont numérotées de 1 à 10.

La page d'accueil qui est revenue a attiré notre attention et nous a incités à explorer plus en profondeur la campagne.

En analysant les domaines et les adresses IP associées à la distribution EtherRAT, nous avons détecté d'autres pages d'accueil similaires, arborant un thème de piratage. Elles semblaient appartenir à une chaîne de distribution plus vaste, qui diffuse également des logiciels d'hameçonnage, des logiciels de contrôle à distance et d'autres logiciels malveillants. Ces sites web comportent généralement plusieurs dossiers contenant des logiciels malveillants et du contenu lié à l'hameçonnage ; le contenu affiché dépend de la chaîne d'infection spécifique.
Différents sites web pointant vers les mêmes adresses IP ont déjà renvoyé des pages liées à de fausses entreprises ou à des modèles par défaut. L'utilisation de ces nouvelles pages pourrait donc constituer une méthode pour compliquer la détection par les scanners automatisés ou les chercheurs. Voici quelques exemples de pages d'accueil que nous avons trouvées :

EtherRAT est un RAT intéressant, car il possède peu de lignes de code et permet l'exécution de code arbitraire renvoyé par le serveur C2. De plus, l'utilisation de la blockchain Ethereum pour obtenir le serveur C2 le rend plus résistant aux attaques contre l'infrastructure.
Analyse technique d'EtherRAT
Les sites web détectés distribuent généralement un script MSI ou PowerShell avec le nom de la version, tel que v1.msi, v2.ps1, etc.
Chargeur MSI
Le fichier MSI « v9.msi » contient trois composants :
| Nom de fichier MSI | Description |
| KmPuGimn.cmd | lanceur BAT |
| cDQMlQAru0.xml | Premier chargeur Jscript |
| MRaQCipBIZeiZNx.log | EtherRAT crypté |
Lorsque le fichier MSI est exécuté, le fichier « KmPuGimn.cmd » est lancé :
conhost --headless cmd /c "KmPuGimn.cmd"
Ce fichier BAT obfusqué effectue différentes opérations :
- Extrait les autres fichiers dans un dossier aléatoire de %LOCALAPPDATA%.
- Se réexécute via :
- %SystemRoot%\System32\conhost.exe –headless %SystemRoot%\System32\cmd.exe /c call “C:\Users\{user}\AppData\Local\{random_path}\KmPuGimn.cmd” nKWa
- Exécute la commande « where node » pour trouver une installation existante.
- Télécharge Node.js s'il est introuvable.
- Utilise « curl -sLo » pour télécharger Node.js depuis le site officiel.
- Extrait dans le répertoire d'installation via « tar -xf ».
- Renommage du répertoire extrait en « 28Q75h ».
- Boucle jusqu'à ce que les fichiers « MRaQCipBIZeiZNx.log » et « cDQMlQAru0.xml » existent, puis exécute :
- conhost.exe –headless C:\Users\{user}\AppData\Local\{random_path}\{random_path}\node.exe cDQMlQAru0.xml
Le fichier exécuté « cDQMlQAru0.xml » est un chargeur qui déchiffre le code intégré avec une fonction XOR puis l'exécute avec « vm.compileFunction ».
decrypted[i] = (encrypted[i] - key[i % key.length] - i) & 0xFF

Le code décrypté :
- Copies node.exe in “C:\Users\{user}\AppData\Local\{random_path}\{random_path}\_MJlLlt5.exe”.
- Ajoute une clé de registre pour la persistance avec « conhost.exe –headless ».
- Déchiffre « MRaQCipBIZeiZNx.log » et l'exécute avec « _MJlLlt5.exe » stdin.
L'algorithme de décryptage est un routage de décodage personnalisé de type flux basé sur XOR, des rotations d'octets et un accumulateur :
for e in range(len(data)):
byte = data[e]
g = prev
prev = byte
byte = (byte - g) & 0xff
byte = byte ^ n[e % len(n)] ^ ((e >> 8) & 0xff)
byte = si[byte]
byte = (byte - k[e % len(k)]) & 0xff
result[e] = byte
La dernière étape consiste à déployer EtherRAT. EtherRAT permet à l'attaquant de :
- Exécuter du code JavaScript arbitraire reçu du serveur C2. Cela permet à l'attaquant d'exécuter de nouvelles commandes, d'effectuer des opérations sur des fichiers et des dossiers, de modifier le registre et d'exfiltrer des données.
- Obtenez un nouveau serveur C2 utilisant la blockchain Ethereum.
- Se réobscurcir.
- Enregistrez les journaux sous « svchost.log ».

EtherRAT utilise la méthode JSON-RPC « eth_call » d'Ethereum pour récupérer l'URL C2 active d'un contrat intelligent sur le réseau principal Ethereum.
Les paramètres de la blockchain dans ce cas sont :
- Contrat : 0x88ea8d0bc4146f0a018e989df3fd089ac48f9a58
- Sélecteur de fonction : 0x7d434425
- Argument : 0xf6a772e163e64b07f658946f863b5d457d88f9f0

Les URL contactées pour obtenir le point de terminaison du serveur C2 sont :
- mainnet[.]passerelle[.]tendreusement[.]co
- rpc[.]flashbots[.]net/rapide
- rpc[.]mevblocker[.]io
- eth-mainnet[.]public[.]blastapi[.]io
- ethereum-rpc[.]publicnode[.]com
- eth[.]drpc[.]org
- eth[.]merkle[.]io
Les requêtes d'interrogation utilisent des modèles d'URL aléatoires basés sur certains paramètres définis dans le code :
GET /api/<4-byte-hex>/<victim-uuid>/<4-byte-hex>.<ext>?<param>=<build-id>
X-Bot-Server: <c2_url>
Dans l'échantillon analysé, les paramètres sont les suivants :
- ID de build : « 6f816d80-0d6c-4384-9cd6-6b79965fc08f »
- ext : sélectionné aléatoirement parmi « png », « jpg », « gif », « css », « ico », « webp ».
- param : sélectionné aléatoirement parmi « id », « token », « key », « b », « q », « s », « v ».
Après son démarrage, le RAT envoie son propre code source au serveur C2. Ce dernier répond par une nouvelle version obfusquée du script, qui est enregistrée sur le disque, générant ainsi un nouveau hachage de fichier à chaque exécution.
POST /api/[REOBF_PATH]/<victim-uuid>
Body: { "code": "<current_script_contents>", "build": "<build_id>" }
Après l'exécution d'EtherRAT, nous avons observé différentes activités de cmd.exe après la compromission afin de vérifier l'environnement. Par exemple :
- powershell -NoProfile -NonInteractive -WindowStyle Hidden -Command “(Get-WmiObject Win32_VideoController).Name”
- reg query “HKLM\SOFTWARE\Microsoft\Cryptography” /v MachineGuid
- powershell -NoProfile -NonInteractive -WindowStyle Hidden -Command “(Get-WmiObject Win32_ComputerSystem).Domain”
- powershell -NoProfile -NonInteractive -WindowStyle Hidden -Command “(Get-WmiObject Win32_ComputerSystem).PartOfDomain”
- cmd.exe /d /s /c « session réseau »

Chargeur PowerShell
Les activités réalisées par les chargeurs PowerShell sont très similaires à la dernière étape du script JS du programme d'installation MSI :
- Télécharge Node.js s'il n'est pas présent.
- Créez les répertoires nécessaires.
- Décodez l'EtherRAT avec un algorithme de décryptage personnalisé.
- Exécutez Node.js avec conhost.exe et la charge utile EtherRAT déchiffrée.
Nous avons détecté certaines variantes du chargeur PowerShell hébergé sur ces sites web ; notamment que les noms des fonctions et les fonctions de déchiffrement changent dans les scripts PowerShell analysés.

Suivi de l'infrastructure malveillante
Lors de notre analyse des différents sites web comportant des pages sur le thème du « piratage », nous avons constaté que nombre d'entre eux avaient hébergé par le passé plusieurs pages d'hameçonnage sur certains chemins d'accès spécifiques. Par exemple :
- /zht/sharep-redirect.html
- /bl/moi.php
- /t/équipes
- /équipes/ Windows /invite.php
Il semblerait que ces domaines et adresses IP fassent partie d'une infrastructure bien plus vaste qui diffuse des logiciels malveillants, des tentatives d'hameçonnage, des documents malveillants et des logiciels d'exécution à distance. Il est possible que ces infrastructures soient partagées par plusieurs acteurs malveillants qui activent différents points de terminaison URL en fonction de la campagne menée.
Il est intéressant de noter que la majorité des domaines liés à cette infrastructure malveillante par le passé renvoyaient également une page HTML relative à un service d’« infrastructure à toute épreuve ».
Nous avons constaté que ces campagnes d'hameçonnage débutent généralement par des courriels contenant des pièces jointes, telles que des fichiers PDF ou Excel. Ces documents invitent l'utilisateur à cliquer sur un lien pour consulter un autre document. Vous trouverez ci-dessous deux exemples de documents d'hameçonnage joints à ces courriels :
Ces pages d'hameçonnage demandent généralement à l'utilisateur de saisir son adresse électronique, puis poursuivent la chaîne d'infection et diffusent des pages d'hameçonnage ou des logiciels malveillants. Voici quelques exemples de pages d'hameçonnage détectées au sein de l'infrastructure malveillante :
Des erreurs de configuration ont exposé les kits de phishing
Lors du suivi des sites web malveillants, nous en avons trouvé un avec un répertoire ouvert contenant une partie du kit de phishing utilisé dans les campagnes.

Le répertoire ouvert contenait plusieurs dossiers avec du code et des pages liés aux campagnes d'hameçonnage.

De plus, certains domaines étaient mal configurés et permettaient le téléchargement de « cl.zip », qui contenait le code source des pages « URL Cloaker ».

Indicateurs de compromission (IOC)
Adresses IP
82[.]165[.]65[.]244 : infrastructure malveillante
185[.]221[.]216[.]121 : infrastructure malveillante
43[.]163[.]233[.]166 : infrastructure malveillante
40[.]160[.]238[.]30 : infrastructure malveillante
159[.]89[.]227[.]204 : infrastructure malveillante
57[.]128[.]31[.]168 : infrastructure malveillante
Domaines
ivorilla[.]cloud : distribution EtherRAT
mx[.]nrlwz[.]com : Distribution EtherRAT
dn[.]eyqwj[.]com : Distribution EtherRAT
bi[.]mkrjcsw[.]com : Distribution EtherRAT
dorqen[.]casa : distribution EtherRAT
kelvra[.]club : distribution EtherRAT
changement[.]com: EtherRAT C2
vabelles[.]com : EtherRAT C2
tranzed[.]org : EtherRAT C2
kibrisarazi[.]com: EtherRAT C2
aravisblog[.]com : EtherRAT C2
publicspeakingtip[.]org : EtherRAT C2
Remerciements
- Référence SharePoint : https://ironscales.com/threat-intelligence/no-macro-xlsx-shared-strings-aitm-redirect-credential-harvest
Empêchez les menaces de faire du mal.
Malwarebytes Browser Guard Bloque automatiquement les pages d'hameçonnage et les sites malveillants. Gratuit, installation en un clic. Ajoutez-le à votre navigateur →
















