ESET participe à une opération globale pour perturber Gamarue

Nous annonçons qu’une importante opération policière a perturbé de nombreux botnets utilisant une famille de logiciels malveillants qui sévit sur Internet depuis longtemps : Gamarue, également connu sous le nom d’Andromeda. Cette opération conjointe, à laquelle participent des forces de l’ordre du monde entier, Microsoft et ESET, est en cours depuis plus d’un an.

Gamarue, principalement détecté par ESET sous le nom de Win32/TrojanDownloader.Wauchos, existe depuis au moins septembre 2011 et a été en général vendu sous forme de kit criminel sur des forums clandestins. Ce kit s’est avéré très populaire auprès les cybercriminels; on retrouve ainsi de multiples réseaux de robots Wauchos indépendants. Par le passé, Wauchos a été la famille de logiciels malveillants la plus détectée parmi les utilisateurs d’ESET. Ainsi, lorsqu’ESET a été approché par Microsoft pour participer à un effort conjoint de lutte contre cette famille de logiciels, afin de mieux protéger nos utilisateurs et le grand public en général, la décision allait de soi.

ESET a fourni l’analyse technique de cette opération en suivant de près les botnets Wauchos, en identifiant leurs serveurs C&C pour le démontage et en surveillant ce que ses opérateurs ont installé sur les systèmes des victimes. Par l’entremise de Microsoft, les renseignements fournis aux organismes d’application de la loi dans le cadre de cette opération comprenaient les renseignements suivants:

  • 1 214 domaines et adresses IP des serveurs de commande et de contrôle du botnet
  • 464 botnets distincts
  • 80 familles de logiciels malveillants associées

Le graphique 1 présente la carte de prévalence de Wauchos basée sur nos données télémétriques. De toute évidence, Wauchos représente un problème mondial et toute tentative de le perturber mérite d’être mise en œuvre. Comme vous le remarquerez tout au long de l’article, les données présentées datent d’environ un an. C’est alors que l’activité de Wauchos était à son apogée, selon notre télémétrie. Étant donné que les procédures judiciaires prennent un certain temps, surtout lorsqu’il s’agit d’arrestations, nous avons choisi ces données plus anciennes, car elles sont plus représentatives de la période pendant laquelle la majeure partie de ces recherches ont été effectuées.

Graphique 1. Carte de la prévalence de Wauchos (décembre 2016 – source

Graphique 1. Carte de la prévalence de Wauchos (décembre 2016 – Source : http://virusradar.com/)

Si vous craignez que votre système Windows soit compromis par cette menace et n’êtes pas un client ESET, vous pouvez télécharger et utiliser le scanneur en ligne ESET, qui supprimera toutes les menaces, y compris Wauchos, qu’il pourrait trouver sur votre système.

Qu’est-ce que Wauchos?

Ce logiciel malveillant très répandu existe depuis plusieurs années et a été couvert dans le passé par de nombreux articles de blogue[1][2][3][4]. Dans cette section, nous passerons en revue les bases techniques de ce logiciel malveillant: ce qu’il est et comment il se propage. La section suivante présente les détails techniques que nous avons découverts lors du suivi de cette famille de logiciels malveillants.

Wauchos est principalement utilisé pour voler des informations d’identification et télécharger et installer des programmes malveillants supplémentaires sur un système. Ainsi, si un système est compromis avec Wauchos, il est probable que plusieurs autres familles de logiciels malveillants s’y cachent aussi.

Les plugins utilisés incluent un enregistreur de frappe, un outil de récupération de formulaires, un rootkit, un proxy SOCKS et un robot TeamViewer. Il existe cinq versions majeures connues de Wauchos, basées sur son propre schéma de versions : 2.06, 2.07, 2.08, 2.09 et 2.10. Pour les trois premières versions, la version build a été incluse dans la première requête POST envoyée au C&C par le bot, ce qui a facilité l’identification de la version. Les versions ultérieures de Wauchos ont supprimé le paramètre bv dans la requête POST, mais il est encore relativement simple d’identifier la version du bot en regardant la chaîne d’identification envoyée au serveur [3] :

Graphique 2. Requête POST typique

Graphique 2. Requête POST typique

VersionChaîne d’identification
<= 2.06id:%lu|bid:%lu|bv:%lu|sv:%lu|pa:%lu|la:%lu|ar:%lu
2.07 – 2.08id:%lu|bid:%lu|bv:%lu|os:%lu|la:%lu|rg:%lu
2.09id:%lu|bid:%lu|os:%lu|la:%lu|rg:%lu
2.10 *{"id":%lu,"bid":%lu,"os":%lu,"la":%lu,"rg":%lu}

Le graphique 2 illustre une requête POST typique. La chaîne d’identification est chiffrée RC4 puis encodée en utilisant base64.

Depuis qu’un constructeur de la version 2.06 a fui il y a quelques années, nous avons observé une bonne partie de cette version du botnet dans notre télémétrie. Cependant, selon nos données de d’indexation, la dernière version 2.10 est la plus répandue.

La nature mondiale de cette menace se manifeste également dans la diversité des serveurs de commandement et de contrôle utilisés par les opérateurs. Tout au long de notre suivi de cette menace, nous avons pu observer chaque mois des dizaines de serveurs C&C de Wauchos. Le graphique 3 présente un portait des différents domaines de premier niveau (TLD) utilisés par les C&C, tandis que la figure 4 montre la répartition géographique de ces adresses IP de serveurs C&C lorsque notre crawler s’y connecte en novembre et décembre 2016.

Graphique 3. Serveurs C&C des domaines de premier niveau (TLDs) en novembre et décembre

Graphique 3. Serveurs C&C des domaines de premier niveau (TLDs) en novembre et décembre

Graphique 4. Géolocalisation de l’adresse IP des serveurs C&C en novembre et décembre 2016

Graphique 4. Géolocalisation de l’adresse IP des serveurs C&C en novembre et décembre 2016

Il est intéressant de noter qu’un grand nombre d’échantillons analysés vérifient la disposition du clavier du système et ne procèdent pas à l’infection si elle correspond à l’un des éléments suivants :

  • Russie
  • Ukraine
  • Bélarus
  • Kazakhstan

Vecteur d’infection

Puisque Wauchos est acheté et ensuite distribué par une variété de cybercriminels, les vecteurs d’infection utilisés pour disséminer cette menace varient considérablement. Historiquement, les échantillons de Wauchos ont été distribués par le biais des médias sociaux, de la messagerie instantanée, des médias amovibles, du spam et des kits d’exploitation. Le graphique 5 montre un logiciel malveillant typique comprenant un échantillon de Wauchos en pièce jointe.

Graphique 5. Courrier indésirable typique distribuant Wauchos

Graphique 5. Courrier indésirable typique distribuant Wauchos

Logiciels malveillants payants à l’installation

Comme décrit plus haut, Wauchos est principalement utilisé pour distribuer d’autres familles de logiciels malveillants. Grâce à nos systèmes automatiques, nous avons pu obtenir des statistiques sur ce qui a été téléchargé par les robots Wauchos que nous suivions. Le graphique 6 montre les différents plugins qui ont été téléchargés par notre crawler lors de la première connexion au C&C.

Graphique 6. Statistiques de téléchargement – décembre 2016

Graphique 6. Statistiques de téléchargement – décembre 2016

Le premier téléchargement est habituellement un plugin – plus précisément le plugin de téléchargement dont nous discuterons dans une section suivante. En ce qui concerne les logiciels malveillants installés, la plupart des logiciels malveillants que nous avons vus distribués en décembre 2016 étaient des robots spammeurs tels que Win32/Kasidet, Win32/Kelihos ou Win32/Lethic. Bien sûr, comme il s’agit d’un système de paiement à l’installation, ces statistiques ont tendance à changer de temps à autre. Comme on pouvait s’y attendre, d’autres logiciels malveillants téléchargés par Wauchos ont été observés. Cependant, d’après nos données de télémétrie, ceux présentés ci-dessus sont les plus répandus.

Techniques d’analyse

Dans cette section, nous présenterons certains détails techniques qui n’ont pas été largement discutés en public et qui fournissent un contexte à la lumière du retrait récent. En particulier, nous allons présenter deux plugins qui peuvent fournir une communication side-channel au botmaster, ce qui augmente la résilience du botnet à une opération de takedown.

Variantes de Wauchos

Tout d’abord, pour aider nos collègues chercheurs intéressés par cette famille de logiciels malveillants, nous allons décrire brièvement les principales variantes, en utilisant le nom par lequel ESET les désigne et leur correspondance.

Win32/Wauchos.B est la détection la plus répandue pour le composant 2.06 Wauchos, alors que la version 2.10 est principalement détectée comme Win32/Wauchos.AW. Les autres variantes regroupées sous la famille Win32/Wauchos sont soit des plugins, soit des versions packagées des versions précitées ou d’autres versions du malware Wauchos telles que 2.07, 2.08 ou 2.09; elles sont moins répandues selon notre télémétrie et donc moins pertinentes pour cette discussion.

Dans la dernière version de Wauchos (2.10), le robot supporte les commandes courantes :

ID de commandeDescription
1Télécharger et exécuter un fichier binaire
2Télécharger un plugin
3Télécharger la mise à jour du logiciel malveillant
6Supprimer tous les plugins
9Désinstaller

Plugins

Wauchos est un bot extensible qui permet à son propriétaire de créer et d’utiliser des plugins personnalisés. Cependant, il y a quelques plugins qui sont largement disponibles et qui sont utilisés par de nombreux botnets différents. Dans cette section, nous allons passer en revue les différents plugins que notre mécanisme de suivi a pu télécharger.

TitreNom de détectionDescription
SOCKS ProxyWin32/TrojanDownloader.Wauchos.OAccepte les connexions et agit en tant que proxy réseau
TeamViewerWin32/TrojanDownloader.Wauchos.BAIntègre l'application TeamViewer, qui sera lancée en mode caché et permettra aux criminels de se connecter à l'arrière et de contrôler le système compromis
Form GrabberWin32/TrojanDownloader.Wauchos.AZVole le contenu entré dans les formulaires Web par l'utilisateur

Lorsqu’un bot télécharge un plugin, il doit d’abord décrypter son en-tête avec la clé RC4. L’en-tête contient la clé unique nécessaire pour décrypter la charge utile. Une fois décrypté, la dernière opération est de décompresser le plugin en utilisant aPLib. Une fois cela fait, le malware utilise un chargeur personnalisé pour charger ce binaire en mémoire. Comme les blobs binaires sont déjà alignés en page mémoire, ils peuvent être chargés directement dans la mémoire et exécutés.

Le nombre de différentes clés RC4 collectées par notre système de suivi parmi tous les différents botnets est étonnamment petit, soit autour de 40. Il s’avère donc assez facile de décrypter les composants téléchargés sans même avoir besoin d’analyser l’échantillon. Notons que la même clé RC4 est utilisée pour chiffrer à la fois les chaînes d’échantillons et la communication réseau, mais inversée pour cette dernière.

En ce qui concerne la communication C&C, tous les échantillons que nous avons analysés utilisaient l’infrastructure DNS de Google directement pour résoudre les domaines C&C. La version 2.06 essaie de résoudre l’adresse IP du serveur C&C en utilisant des sockets UDP bruts à 8.8.4.4:53. S’il s’avère infructueux, il revient d’abord à l’API Windows de DnsQueryA() et ensuite à l’API gethostbyname().  La version 2.10 accroche GetAddrInfoW() et tous les appels à son endroit sont résolus en utilisant des paquets UDP bruts à 8.8.4.4:53 avec un retour à l’API originale GetAddrInfoW() API GetAddrInfoW() en cas d’échec.

Nouveaux mécanismes de persistence

Dans cette section, nous couvrons deux plugins qui sont apparus cette année et qui, à notre avis, constituent une tentative d’empêcher des opérations de démantèlement comme celui-ci de réussir, en fournissant une communication side-channel au botmaster. Ce comportement a également été discuté ici [4].

Le premier est un répartiteur USB, tandis que le second implémente une attaque sans fichier à travers un downloader stocké dans le registre qui est lancé via un script PowerShell au démarrage.

USB spreader – Win32/Bundpil.CS

Ce plugin est capable d’accrocher les fonctions DNS de l’API, essaie de se propager à travers les médias amovibles et utilise un DGA (Domain Generation Algorithme) pour télécharger des données supplémentaires.

Un filet recherche les médias amovibles insérés et, s’il en trouve, met une copie du malware dessus. L’autre fonctionnalité de ce plugin est d’accrocher les API DNS et de remplacer des domaines spécifiques par un domaine codé en dur. Par exemple, un échantillon que nous avons analysé réorientait les demandes vers ces anciens domaines Wauchos :

  • ru
  • ru
  • ru
  • ru

vers gvaq70s7he.ru.

Il y a également un composant DGA à ce plugin qui tentera de se connecter au domaine généré automatiquement pour télécharger des données supplémentaires vers le système compromis. Le pseudo-code de l’algorithme DGA se trouve sur notre page Github. Les URLs qu’il essaie d’atteindre correspondent aux modèles suivants :

  • <dga_domain>.ru/mod
  • <dga_domain>.ru/1
  • <dga_domain>.ru/2

Nous avons pu télécharger un blob binaire à partir de ce schéma DGA. Ce que nous avons obtenu était une goutte chiffrée commençant par’MZ’. Le plugin supprimera ces deux octets et stockera le blob directement dans le registre Windows.

Le robot principal de Wauchos décrypte alors la charge utile chiffrée RC4, la décompresser avec aPLib et la charger comme un plugin standard. Notez ici que les mêmes clés RC4 utilisées pour chiffrer les plugins sont utilisées pour ce processus. Le binaire ainsi obtenu était une version mise à jour de l’écarteur USB. Nous avons donc émis l’hypothèse qu’à travers l’accrochage DNS, il serait possible pour les botmasters de reprendre le contrôle de leurs robots en téléchargeant une nouvelle version de ce module à partir d’un domaine qu’ils contrôlent, qui redirigera alors les domaines codés en dur dans le binaire principal de Wauchos.

Téléchargeur

Le dernier plugin dont nous voulons parler est un petit téléchargeur qui utilise une DGA pour accéder à des URL comme celles-ci, dépendemment la version :

  • <dga_domain>.ru/ld.so
  • <dga_domain>.ru/last.so
  • <dga_domain>.ru/nonc.so

Il est utilisé pour télécharger un blob binaire qu’il stocke dans le registre. Ce blob binaire peut être décrypté avec la clé RC4 contenue dans la charge utile principale de Wauchos.

Une des variantes de malware qui a été téléchargée par ce plugin est un autre téléchargeur détecté comme TrojanDownloader. Small. AHI. Ce malware est particulièrement intéressant car son seul but est de télécharger une version mise à jour du plugin téléchargeur et de le stocker crypté dans le registre, mais avec une petite torsion. Il ajoute également une clé d’exécution avec un script PowerShell qui déchiffre et exécute le binaire chiffré à partir de la clé de registre chaque fois que la machine est lancée. Pour l’instant, ce binaire ne fait que se mettre à jour. Cependant, sa DGA pourrait être utilisée comme canal de communication secondaire pour télécharger une nouvelle charge utile et reprendre le contrôle des robots si quelqu’un essayait de les prendre en charge. Le graphique 7 illustre le processus global.

Graphique 7. Flux d'opération du plugin de téléchargement

Graphique 7. Flux d’opération du plugin de téléchargement

Il convient de noter ici que nous avons également oberservé le téléchargement de Necurs.B via le DGA et ce plugin. Cependant, la grande majorité des téléchargements que nous avons vus étaient pour Win32/TrojanDownloader.small.AHI. En fait, ce dernier malware a été vu à de nombreuses reprises, selon nos statistiques sur les nuages. Fait intéressant, nous avons vu beaucoup d’activité en août 2016 pour ce module particulier, via notre crawler, mais rien depuis lors. Nous n’avons pas fait d’autres recherches pour essayer de déterminer si nous étions simplement sur liste noire ou s’ils n’ont testé cette fonctionnalité que pour une brève période de temps.

Conclusion

Wauchos est un vieux réseau de robots qui s’est réinventé au fil des ans. Son infrastructure de commandement et de contrôle est l’une des nombreuses infrastructures suivies par ESET. Ces informations sont vitales pour suivre l’évolution du comportement des logiciels malveillants et pour pouvoir fournir des données exploitables afin de faciliter les efforts de perturbation et de retrait.

Wauchos utilise de vieux trucs pour compromettre de nouveaux systèmes. Les utilisateurs doivent être prudents lorsqu’ils ouvrent des fichiers sur des supports amovibles, ainsi que des fichiers qu’ils reçoivent par courrier électronique ou sur des médias sociaux. Si vous croyez être infecté par Wauchos, nous avons un outil gratuit pour vous. Les produits ESET détectent actuellement des milliers de variantes de modules Wauchos ainsi que les différents logiciels malveillants distribués par les réseaux de robots Wauchos.

Un remerciement spécial à Juraj Jánošík, Viktor Lucza, Filip Mazán, Zoltán Rusnák et Richard Vida pour leur aide dans cette recherche.

Chaîne de hachage

SHA-1Détection
CC9AC16847427CC15909A60B130CB7E67D2D3804Win32/TrojanDownloader.Wauchos.B
BCD45398983EB58B33294DFE852B57B1ADD5117EWin32/TrojanDownloader.Wauchos.AK
6FA5E48AD60B53761A42725A4B9EC12B85963F90Win32/TrojanDownloader.Small.AHI
6D5051580DA73570944BBE79A9EA7F2E4D006699Win32/TrojanDownloader.Wauchos.O

Auteur Jean-Ian Boutin, ESET