
RustyWater représente la charge utile principale et l'épine dorsale de l'ensemble de l'opération adverse lors des attaques du groupe Static Kitten.
RustyWater représente la charge utile principale et la colonne vertébrale de l'ensemble de l'opération adverse dans les attaques du groupe Static Kitten.
RustyWater est un exécutable compilé en Rust (déguisé en reddit.exe avec une fausse icône Cloudflare) connu sous le nom de RustyWater (ou lié à Archer RAT/RUSTRIC) disposant de fortes capacités d'évasion AV/EDR via l'injection de processus et la persistance basée sur le registre.
1-ANTI-ANALYSE Reddit.exe implémente un système anti-analyse complet à 8 couches qui sonde activement l'environnement d'exécution à la recherche de signes de surveillance, de virtualisation ou de débogage. Chaque couche agit comme un filtre garantissant que la charge utile ne se déclenche que sur une cible authentique.
Couche 1 : Vérification du nombre de cœurs CPU
Initialement, le soldat RustyWater regarde autour de lui pour évaluer la puissance de la machine sur laquelle il se trouve. Il se demande : combien de cœurs ce processeur possède-t-il ? Les environnements d'analyse, comme les sandbox, sont généralement limités en ressources et ont souvent deux cœurs ou moins. Si le soldat constate que la machine est aussi faible, il décide immédiatement que l'environnement n'est pas sûr et disparaît sans laisser de trace, gaspillant tous les efforts des analystes.
Dans l'image fournie, une section du code du programme Reddit.exe illustre ce mécanisme. La flèche pointe vers la ligne vérifiant le « nombre de cœurs » où le programme examine le nombre de cœurs du processeur. Si le nombre est de deux ou moins, cela signifie que l'environnement environnant est suspect et l'exécution est immédiatement interrompue.

Couche 2 : Détection des artefacts de machine virtuelle
Pas convaincu par la simple vérification du CPU, le soldat creuse plus profondément. Il sait que les machines virtuelles laissent derrière elles des empreintes numériques spécifiques, comme une traînée de miettes de pain. Il analyse la liste des processus en cours d'exécution à la recherche de noms familiers associés aux logiciels de virtualisation : vmtoolsd.exe (VMware), vboxtray.exe (VirtualBox) et xenservice.exe (Xen). Il vérifie également l'existence de fichiers pilotes spécifiques sur le disque, tels que vmmouse.sys ou VBoxGuest.sys.
La logique est simple : si une machine exécute les outils VMware, il s'agit probablement d'une VM. Si c'est une VM, il s'agit probablement d'un environnement d'analyse. Si c'est un environnement d'analyse, le soldat abandonne la mission.

Couche 3 : Analyse du registre des outils d'analyse
Le soldat s'aventure ensuite dans le registre Windows, une vaste base de données des paramètres système. Il sait que les analystes de sécurité laissent souvent leurs outils derrière eux et que ces outils laissent des artefacts. Il recherche des clés de registre associées aux logiciels de débogage et de surveillance comme Wireshark, Process Hacker, OllyDbg et IDA Pro. La présence de l'une de ces clés confirme que l'environnement est hostile, déclenchant un arrêt immédiat.

Couche 4 : Analyse de la taille de la RAM
si le système signale moins de 4 Go, le soldat soupçonne un sandbox à faible ressources et interrompt l'exécution. Cette vérification est un moyen fiable de filtrer de nombreux systèmes d'analyse automatisés.

Couche 5 : Détection du débogueur
Le soldat vérifie maintenant son environnement immédiat. Il utilise un appel API Windows simple mais efficace—IsDebuggerPresent—pour déterminer s'il est exécuté sous le contrôle d'un débogueur. Un débogueur est comme un microscope ; s'il est présent, cela signifie que quelqu'un observe chaque instruction du soldat. Le soldat n'agira pas sous une telle surveillance.

Couche 6 : Vérification de la durée de fonctionnement du système
Le temps lui-même devient un facteur. Le soldat vérifie depuis combien de temps le système fonctionne depuis le dernier démarrage. Les sandbox et environnements d'analyse sont souvent fraîchement démarrés, juste avant l'exécution d'un échantillon. Si la durée de fonctionnement est inférieure à 15 minutes, le soldat la signale comme un environnement suspect de courte durée et se retire.

Couche 7 : Analyse du nom d'utilisateur
Le soldat vérifie ensuite l'identité de l'utilisateur. Il compare le nom d'utilisateur actuel à une liste noire de comptes d'analyse courants : « sandbox », « virus », « malware », « analysis », « vmware » et « test ». Ces noms d'utilisateur sont fréquemment utilisés dans les environnements d'analyse isolés. Si le nom d'utilisateur correspond à une entrée de la liste, la mission est immédiatement abandonnée.

Couche 8 : Vérification de l'adresse MAC et du profil matériel
Enfin, le soldat examine la carte réseau de la machine. Il vérifie l'adresse MAC par rapport aux préfixes de fournisseurs connus utilisés par les logiciels de virtualisation. Une adresse MAC commençant par 00:0C:29 appartient à VMware, tandis que 08:00:27 appartient à VirtualBox. Il analyse également les profils matériels à la recherche de chaînes comme « VMware » ou « VirtualBox » dans la description du système. Si l'une d'elles est trouvée, le soldat sait qu'il se trouve à l'intérieur d'une machine virtuelle et il coupe le courant.

L'implant se déguise astucieusement en composant légitime de Windows Update, le rendant moins suspect aux yeux des observateurs occasionnels. Le mécanisme de persistance comprend :
Gestion des erreurs pour les problèmes de permissions (repli vers HKCU si l'accès à HKLM échoue)
Validation du chemin pour s'assurer que l'exécutable existe à l'emplacement spécifié
Vérification au démarrage pour confirmer que l'entrée de registre a été créée avec succès
Cela garantit qu'à chaque connexion de l'utilisateur, Reddit.exe s'exécute automatiquement avec ses privilèges.

La capacité finale et la plus sophistiquée est l'injection de processus dans explorer.exe, permettant à l'implant d'exécuter du shellcode dans un processus système de confiance.
Reddit.exe implémente une technique d'injection de thread distant classique mais efficace :