Au cours de nos récentes activités de recherche de menaces, nous avons découvert que le logiciel malveillant EtherRAT était diffusé par un site web dont la page d'accueil présentait des anomalies. 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 bureau à distance et des pages de hameçonnage.
EtherRAT est un RAT développé en Node.js qui permet à un pirate de prendre le contrôle total d'une machine et d'exécuter du code arbitraire fourni par le serveur de commande et de contrôle (C2). Ce logiciel malveillant utilise la blockchain Ethereum pour se connecter au serveur C2, d'où la partie « Ether » de son nom. EtherRAT est généralement distribué via des scripts MSI, PowerShell ou JavaScript.
Un répertoire ouvert qui diffuse EtherRAT : là où tout a commencé
Au cours de nos activités de recherche de menaces, nous avons découvert un répertoire accessible qui diffusait des programmes d'installation MSI et des scripts PowerShell, lesquels servaient en fin de compte à propager EtherRAT. Dans les cas analysés, les scripts PowerShell et les programmes d'installation MSI étaient diffusés à partir d'un dossier « /install ». Les versions portent un numéro progressif, allant de la v1 à la v10.

La page d'accueil qui s'est affichée a retenu notre attention et nous a incités à approfondir notre découverte de 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, présentant un thème lié au piratage informatique. Elles semblaient faire partie d'une chaîne de distribution plus vaste, qui diffuse également des logiciels de phishing, des logiciels de contrôle à distance et d'autres logiciels malveillants. Ces sites web comportent généralement plusieurs dossiers contenant du contenu lié aux logiciels malveillants et au phishing, et ce qui s'affiche dépend de la chaîne d'infection spécifique.
Certains sites web qui renvoient vers les mêmes adresses IP affichaient auparavant des pages liées à de fausses entreprises ou à des modèles par défaut. L'utilisation de ces nouvelles pages pourrait donc constituer un moyen de compliquer la détection par les scanners automatisés ou les chercheurs. Voici quelques-unes des pages d'accueil que nous avons trouvées :

EtherRAT est un RAT intéressant, car il ne comporte que quelques lignes de code et permet l'exécution de code arbitraire renvoyé par le serveur C2. De plus, le fait d'utiliser la blockchain Ethereum pour accéder au serveur C2 le rend plus résistant aux coupures d'infrastructure.
Analyse technique d'EtherRAT
Les sites Web détectés diffusent généralement un fichier MSI ou un script PowerShell dont le nom correspond à la version, par exemple v1.msi, v2.ps1, etc.
MSI Loader
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 chiffré |
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 situé dans %LOCALAPPDATA%.
- Se relance 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 rechercher une installation existante.
- Télécharge Node.js s'il n'est pas détecté
- Utilise la commande « curl -sLo » pour télécharger Node.js depuis le site officiel.
- Décompresse dans le répertoire d'installation à l'aide de la commande « tar -xf ».
- Renomme le répertoire extrait en « 28Q75h ».
- Le programme effectue une boucle jusqu'à ce que les fichiers « MRaQCipBIZeiZNx.log » et « cDQMlQAru0.xml » existent tous les deux, puis exécute :
- conhost.exe –headless C:\Users\{user}\AppData\Local\{random_path}\{random_path}\node.exe cDQMlQAru0.xml
Le fichier « cDQMlQAru0.xml » exécuté est un chargeur qui déchiffre le code intégré à l'aide d'une fonction XOR, puis l'exécute via « vm.compileFunction ».
decrypted[i] = (encrypted[i] - key[i % key.length] - i) & 0xFF

Le code déchiffré :
- Copies node.exe in “C:\Users\{user}\AppData\Local\{random_path}\{random_path}\_MJlLlt5.exe”.
- Ajoute une clé de registre pour assurer la persistance avec « conhost.exe –headless ».
- Décrypte le fichier « MRaQCipBIZeiZNx.log » et l'exécute en utilisant « _MJlLlt5.exe » comme entrée standard.
L'algorithme de déchiffrement est un système de routage de décodage de type flux personnalisé, basé sur l'opération 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 par le 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.
- Procurez-vous un nouveau serveur C2 utilisant la blockchain Ethereum.
- Se réobfusquer.
- Enregistrez les journaux dans le fichier « svchost.log ».

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

Les URL consultées pour obtenir l'adresse du serveur C2 sont les suivantes :
- mainnet[.]gateway[.]tenderly[.]co
- rpc[.]flashbots[.]net/fast
- rpc[.]mevblocker[.]io
- eth-mainnet[.]public[.]blastapi[.]io
- ethereum-rpc[.]publicnode[.]com
- eth[.]drpc[.]org
- eth[.]merkle[.]io
Les requêtes de sondage 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 :
- Identifiant de la version : « 6f816d80-0d6c-4384-9cd6-6b79965fc08f »
- ext : sélectionné aléatoirement parmi « png », « jpg », « gif », « css », « ico » et « webp ».
- param : sélectionné au hasard parmi « id », « token », « key », « b », « q », « s », « v ».
Une fois lancé, le RAT envoie son propre code source au serveur C2. Ce dernier répond en renvoyant une version du script nouvellement obfusquée, qui est réécrite sur le disque, de sorte que chaque exécution génère un nouveau hachage de fichier.
POST /api/[REOBF_PATH]/<victim-uuid>
Body: { "code": "<current_script_contents>", "build": "<build_id>" }
Après l'exécution d'EtherRAT, nous avons observé diverses activités menées via cmd.exe après la compromission du système, visant à analyser 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 « net session »

Chargeur PowerShell
Les opérations effectué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 déjà installé.
- Créez les répertoires nécessaires.
- Décrypter EtherRAT à l'aide d'un algorithme de décryptage personnalisé.
- Exécutez Node.js à l'aide de conhost.exe et de la charge utile EtherRAT décryptée.
Nous avons détecté certaines variantes du chargeur PowerShell hébergées sur ces sites web ; plus précisément, les noms des fonctions et les fonctions de déchiffrement changent dans les scripts PowerShell analysés.

Suivi de l'infrastructure malveillante
En analysant les différents sites web comportant des pages sur le thème du piratage, nous avons constaté que, par le passé, bon nombre d'entre eux avaient hébergé plusieurs pages de hameçonnage dans certains répertoires spécifiques. Par exemple :
- /zht/sharep-redirect.html
- /bl/me.php
- /t/équipes
- Windows.php
Il semblerait que ces domaines et adresses IP fassent en réalité partie d'une infrastructure bien plus vaste qui diffuse des logiciels malveillants, des tentatives d'hameçonnage, des documents malveillants et des logiciels de contrôle à distance. Il est possible que ces infrastructures soient partagées par plusieurs acteurs malveillants qui activent différentes URL en fonction de la campagne menée.
Il est intéressant de noter que la plupart des domaines liés à cette infrastructure malveillante renvoyaient autrefois également une page HTML relative à un service appelé « Bulletproof Infrastructure ».
Nous avons constaté que ces campagnes de phishing commencent généralement par des e-mails 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. Voici deux exemples de documents de phishing joints à ces e-mails :
Ces pages de hameçonnage demandent généralement à l'utilisateur de saisir son adresse e-mail, puis poursuivent la chaîne d'infection et diffusent d'autres pages de hameçonnage ou contenant des logiciels malveillants. Voici quelques-unes des pages de hameçonnage détectées au sein de l'infrastructure malveillante :
Des erreurs de configuration ont exposé les kits de phishing
En surveillant les sites web malveillants, nous en avons repéré un dont un répertoire était accessible et qui contenait une partie du kit de phishing utilisé dans ces campagnes.

Le répertoire ouvert contenait plusieurs dossiers contenant du code et des pages liées aux campagnes de phishing.

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

Indicateurs de compromission (IOC)
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 : diffusion d'EtherRAT
mx[.]nrlwz[.]com : diffusion d'EtherRAT
dn[.]eyqwj[.]com : diffusion d'EtherRAT
bi[.]mkrjcsw[.]com : diffusion d'EtherRAT
dorqen[.]casa : diffusion d'EtherRAT
kelvra[.]club : diffusion d'EtherRAT
cambioefectivo[.]com : EtherRAT C2
vabelles[.]com : EtherRAT C2
tranzed[.]org : EtherRAT C2
kibrisarazi[.]com : EtherRAT C2
aravisblog[.]com : EtherRAT C2
publicspeakingtip[.]org : EtherRAT C2
Remerciementss
- Référence SharePoint :https://ironscales.com/threat-intelligence/no-macro-xlsx-shared-strings-aitm-redirect-credential-harvest
Mettez fin aux menaces avant qu'elles ne causent du tort.
Malwarebytes Browser Guard automatiquement les pages de hameçonnage et les sites malveillants. Gratuit, s'installe en un clic. Ajoutez-le à votre navigateur →
















