Serveur d'impression

Le botnet Stantinko ajoute le cryptomining à son pool d'activités criminelles – Bien choisir son serveur d impression

Par Titanfall , le 3 janvier 2020 - 16 minutes de lecture

Des chercheurs d'ESET ont découvert que les criminels derrière le botnet Stantinko distribuaient un module de cryptomining aux ordinateurs qu'ils contrôlent

Les opérateurs du botnet Stantinko ont élargi leur ensemble d'outils avec un nouveau moyen de profiter des ordinateurs sous leur contrôle. Le botnet d'environ un demi-million de personnes – connu pour être actif depuis au moins 2012 et ciblant principalement des utilisateurs en Russie, en Ukraine, en Biélorussie et au Kazakhstan – distribue désormais un module de cryptomining. Mining Monero, une crypto-monnaie dont le taux de change a oscillé en 2019 entre 50 USD et 110 USD, est la fonctionnalité de monétisation du botnet depuis au moins août 2018. Avant cela, le botnet effectuait des fraudes de clic, des injections publicitaires, des fraudes de réseaux sociaux et des attaques de vol de mot de passe. .

Dans cet article, nous décrivons le module de cryptomining de Stantinko et fournissons une analyse de ses fonctionnalités.

La caractéristique la plus notable de ce module est la façon dont il est obscurci pour contrecarrer l'analyse et éviter la détection. En raison de l'utilisation d'obfuscations au niveau source avec un grain de hasard et du fait que les opérateurs de Stantinko compilent ce module pour chaque nouvelle victime, chaque échantillon du module est unique.

Nous décrirons les techniques d’obscurcissement du module et proposerons, dans un article séparé pour les collègues analystes de logiciels malveillants, une approche possible pour gérer certains d’entre eux.

Étant donné que Stantinko développe constamment de nouveaux et améliore ses obfuscateurs et modules personnalisés existants, qui sont fortement obscurcis, il serait éreintant de suivre chaque amélioration et changement mineur qu'il introduit. Par conséquent, nous avons décidé de mentionner et de décrire uniquement ce que nous pensons être des ajustements significatifs par rapport aux échantillons précédents par rapport à l'état dans lequel le module doit être décrit. Après tout, nous avons l'intention de décrire le module tel qu'il est actuellement dans cet article.

Cryptominer open source modifié

Le module de cryptomining de Stantinko, qui épuise la plupart des ressources de la machine compromise en exploitant une crypto-monnaie, est une version hautement modifiée du cryptominer open-source xmr-stak. Toutes les chaînes inutiles et même des fonctionnalités entières ont été supprimées afin d'échapper à la détection. Les chaînes et fonctions restantes sont fortement obscurcies. Les produits de sécurité ESET détectent ce malware comme Win 32,64 /CoinMiner.Stantinko.

Utilisation de procurations d'exploration de données

CoinMiner.Stantinko ne communique pas directement avec son pool de minage, mais via des procurations dont les adresses IP sont acquises à partir du texte de description des vidéos YouTube. Une technique similaire pour masquer les données dans les descriptions des vidéos YouTube est utilisée par le logiciel malveillant bancaire Casbaneiro. Casbaneiro utilise des canaux et des descriptions beaucoup plus légitimes, mais dans le même but: stocker des C et C cryptés.

La description d'une telle vidéo consiste en une chaîne composée d'adresses IP de proxy d'exploration de données au format hexadécimal. Par exemple, la vidéo YouTube vue sur la figure 1 a la description «03101f1712dec626», ce qui correspond à deux adresses IP au format hexadécimal – 03101f17 correspond à 3.16.31[.]23 au format décimal en pointillés, et 12dec626 est le 18.222.198[.]38. Au moment de la rédaction du présent document, le format avait été légèrement ajusté. Les adresses IP sont actuellement incluses dans "!!!!", ce qui simplifie le processus même d'analyse et empêche d'éventuelles modifications de la structure HTML de la vidéo YouTube rendant l'analyseur dysfonctionnel.

Figure 1. Exemple de vidéo YouTube dont la description fournit une adresse IP pour la communication du module avec le pool de minage

Dans les versions antérieures, l'URL YouTube était codée en dur dans le binaire CoinMiner.Stantinko. Actuellement, le module reçoit à la place un identifiant vidéo en tant que paramètre de ligne de commande. Ce paramètre est ensuite utilisé pour construire l'URL YouTube, sous la forme https://www.youtube.com/watch?v=%PARAM%. Le module de cryptomining est exécuté soit par le composant BEDS de Stantinko, soit par rundll32.exe via un fichier batch que nous n'avons pas capturé, avec le module chargé depuis un emplacement du système de fichiers local du formulaire % TEMP% % RANDOM% % RANDOM_GUID% .dll.

Nous avons informé YouTube de cet abus; toutes les chaînes contenant ces vidéos ont été supprimées.

Capacités de cryptomining

Nous avons divisé le module de cryptomining en quatre parties logiques, qui représentent des ensembles distincts de capacités. La partie principale effectue le cryptomining proprement dit; les autres parties du module sont responsables de fonctions supplémentaires:

  • suspension d'autres applications de cryptomining (c.-à-d. concurrentes)
  • détection de logiciels de sécurité
  • suspension de la fonction de cryptomining si le PC est alimenté par batterie ou lorsqu'un gestionnaire de tâches est détecté, pour éviter d'être révélé par l'utilisateur

Cryptomining

Au cœur même de la fonction de cryptomining se trouve le processus de hachage et de communication avec le proxy. La méthode d'obtention de la liste des proxys d'exploration est décrite ci-dessus; CoinMiner.Stantinko établit la communication avec le premier proxy d'exploration qu'il trouve vivant.

Sa communication s'effectue via TCP et est cryptée par RC4 avec une clé composée des 26 premiers caractères du nombre pi (y compris le séparateur décimal, codé en dur dans la chaîne “3,141592653589793238462643") Puis encodé en base64; la même clé est utilisée dans tous les échantillons que nous avons vus.

Le code de l'algorithme de hachage est téléchargé depuis le proxy d'exploration de données au début de la communication et chargé en mémoire – soit directement soit, dans les versions antérieures, à partir de la bibliothèque libcr64.dll qui est d'abord déposé sur le disque.

Le téléchargement du code de hachage à chaque exécution permet au groupe Stantinko de modifier ce code à la volée. Ce changement permet, par exemple, de s'adapter aux ajustements d'algorithmes dans les devises existantes et de passer à l'exploitation d'autres crypto-monnaies afin, peut-être, d'exploiter la crypto-monnaie la plus rentable au moment de l'exécution. Le principal avantage de télécharger la partie centrale du module à partir d'un serveur distant et de la charger directement en mémoire est que cette partie du code n'est jamais stockée sur le disque. Cet ajustement supplémentaire, qui n'est pas présent dans la version précédente, vise à compliquer la détection car les modèles de ces algorithmes sont triviaux pour les produits de sécurité à détecter.

Toutes les instances du module de cryptomining de Stantinko, nous avons analysé le mien Monero. Nous l'avons déduit des travaux fournis par le proxy d'exploration de données et l'algorithme de hachage. Par exemple, la figure 2 est un travail envoyé par l'un des mandataires.

"Error": null, "result": "status": "OK"
"Méthode": "travail", "params": "blob": "0b0bbfdee1e50567042dcfdfe96018227f25672544521f8ee2564cf8b4c3139a6a88c5f0b32664000000a1c8ee5c185ed2661daab9d0c454fd40e9f53f0267fe391bdb4eb4690395deb36018 ″, ”job_id”: ”281980000000000a10 ″,” target ”:” 67d81500 ″, ”height”: 1815711}

Figure 2. Exemple de travail d'exploration reçu d'un proxy de pool d'exploration de données

Nous avons analysé l'algorithme de hachage utilisé et constaté qu'il s'agissait de CryptoNight R. Puisqu'il existe plusieurs crypto-monnaies qui utilisent cet algorithme, sa seule reconnaissance n'est pas suffisante; cela raccourcit simplement la liste. On peut voir dans le travail fourni que la hauteur de la blockchain était de 1815711 à l'époque, nous avons donc dû trouver des devises en utilisant CryptoNight R avec cette hauteur sur des explorateurs de blocs dédiés qui nous conduisaient à Monero. Disséquer la chaîne 0b0bbfdee1e50567042dcfdfe96018227f25672544521f8ee2564cf8b4c3139a6a88c5f0b32664000000a1c8ee5c185ed2661daab9d0c454fd40e9f53f0267fe391bdb4eb4690395deb36018 révèle que le hachage du bloc précédent (67042dcfdfe96018227f25672544521f8ee2564cf8b4c3139a6a88c5f0b32664) et horodatage (1555590859) s'inscrit en effet dans la blockchain de Monero à la hauteur de 1815711. On peut retrouver la structure du blob en examinant sa fonction de générateur dans le code source de Monero. La fonction de générateur expose une autre structure appelée en-tête de bloc qui contient à la fois le hachage du bloc précédent et l'horodatage.

Contrairement au reste de CoinMiner.Stantinko, l'algorithme de hachage n'est pas obscurci, car l'obfuscation nuirait considérablement à la vitesse de calcul du hachage et donc aux performances et à la rentabilité globales. Cependant, les auteurs se sont toujours assurés de ne laisser aucune chaîne ou artefact significatif.

Suspension d'autres cryptomères

Le malware énumère les processus en cours à la recherche d'autres cryptomineurs. Si des concurrents sont trouvés, Stantinko suspend tous leurs fils.

CoinMiner.Stantinko considère un processus comme un cryptominer si sa ligne de commande contient une chaîne particulière, ou une combinaison, qui varie d'un échantillon à l'autre; par exemple:

  • minerd
  • minergate
  • xmr
  • cpservice
  • vidservice et strate + tcp: //
  • strate://
  • -u et bassin
  • "-U et bassin
  • "-U et xmr
  • -u et xmr
  • -u et exploitation minière
  • "-U et exploitation minière
  • -Commande codée et EXE
  • –Niveau de don
  • les fenêtres et -c et cfgi
  • regsvr32 et / n et / s et / q
  • Application Data et EXE
  • données d'application et EXE

Ces chaînes font référence aux cryptomineurs légitimes suivants: https://github.com/pooler/cpuminer, https://minergate.com/, https://github.com/xmrig et même https://github.com/ fireice-uk / xmr-stak – qui, fait intéressant, est le très mineur sur lequel ce module Stantinko est basé. Les chaînes conduisent également à divers échantillons de logiciels malveillants inintéressants contenant une fonctionnalité de cryptomining.

Il est intéressant de noter que les opérateurs Stantinko sont connus pour avoir tenté de se débarrasser du code concurrent dans le passé. Cependant, ils se sont appuyés sur la boîte à outils antivirus AVZ légitime alimentée par un script écrit dans son langage de script intégré pour cette tâche.

Prévention de détection

CoinMiner.Stantinko suspend temporairement l'exploitation minière s'il détecte qu'il n'y a pas d'alimentation électrique connectée à la machine. Cette mesure, visiblement destinée aux ordinateurs portables, empêche une décharge rapide de la batterie… ce qui pourrait éveiller les soupçons de l'utilisateur.

En outre, il suspend temporairement l'extraction si une application du gestionnaire de tâches (un processus nommé procexp64.exe, procexp.exe ou taskmgr.exe) est détecté en cours d'exécution.

Le malware analyse également les processus en cours pour trouver des logiciels de sécurité et à nouveau des gestionnaires de tâches. Il calcule le CRC-32 du nom du processus, puis le compare à une liste codée en dur des sommes de contrôle CRC-32, qui est incluse dans l'annexe. En général, cette technique peut aider à échapper à la détection, car les noms de processus de ces produits de sécurité ne sont pas inclus dans le binaire – ajoutant un peu plus de furtivité en ne contenant pas directement les noms de processus. Il est également plus difficile pour les analystes de découvrir ce que recherchent les auteurs de logiciels malveillants, car il faut casser ces hachages, ce qui est techniquement le même problème que le craquage de mot de passe. Cependant, l'utilisation d'une liste de noms de processus connus est généralement suffisante pour déterminer les noms exacts.

Si une correspondance CRC-32 est trouvée, le CRC est écrit dans un fichier journal (api-ms-win-crt-io-l1-1-0.dll). Le fichier journal est vraisemblablement exfiltré plus tard par un composant Stantinko que nous n'avons pas vu, car il n'y a aucune autre fonctionnalité liée à ce module.

Obfuscation

Outre ses fonctionnalités de cryptomining, CoinMiner.Stantinko est également remarquable pour ses techniques d'obscurcissement visant à éviter la détection et à contrecarrer l'analyse. Certaines de ces techniques sont uniques et nous les décrirons en détail dans un article de suivi.

Conclusion

Notre découverte montre que les criminels derrière Stantinko continuent d'étendre la façon dont ils exploitent le botnet qu'ils contrôlent. Leurs innovations précédentes étaient des attaques par dictionnaire distribuées sur des sites Web Joomla et WordPress visant à récolter les informations d'identification du serveur, probablement dans le but de les vendre à d'autres criminels.

Ce module de cryptomining configuré à distance, distribué depuis au moins août 2018 et toujours actif au moment de la rédaction, montre que ce groupe continue d'innover et d'étendre ses capacités de gagner de l'argent. Outre sa fonctionnalité de cryptomining standard, le module utilise des techniques d'obscurcissement intéressantes que nous divulguerons, ainsi que certaines contre-mesures possibles, dans un prochain article.

Indicateurs de compromis (IoC)

Noms de détection ESET

Win32 / CoinMiner.Stantinko
Win64 / CoinMiner.Stantinko

SHA-1

Une liste complète de plus de 1 000 hachages est disponible dans notre référentiel GitHub.

00F0AED42011C9DB7807383868AF82EF5454FDD8
01504C2CE8180D3F136DC3C8D6DDDDBD2662A4BF
0177DDD5C60E9A808DB4626AB3161794E08DEF74
01A53BAC150E5727F12E96BE5AAB782CDEF36713
01BFAD430CFA034B039AC9ACC98098EB53A1A703
01FE45376349628ED402D8D74868E463F9047C30

Noms de fichiers

api-ms-win-crt-io-l1-1-0.dll
libcr64.dll
C: Windows TEMP % RANDOM% % RANDOM_GUID% .dll

Nom Mutex et clé RC4

"3,141592653589793238462643"

URL YouTube avec des données de configuration de proxy d'exploration de données

Adresses IP des proxys d'exploration de données

• 3.16.150[.]123
• 3.16.152[.]201
• 3.16.152[.]64
• 3.16.167[.]92
• 3.16.30[.]155
• 3.16.31[.]23
• 3.17.167[.]43
• 3.17.23[.]144
• 3.17.25[.]11
• 3.17.59[.]6
• 3.17.61[.]161
• 3.18.108[.]152
• 3.18.223[.]195
• 13.58.182[.]92
• 13.58.22[.]81
• 13.58.77[.]225
• 13.59.31[.]61
• 18.188.122[.]218
• 18.188.126[.]190
• 18.188.249[.]210
• 18.188.47[.]132
• 18.188.93[.]252
• 18.191.104[.]117
• 18.191.173[.]48
• 18.191.216[.]242
• 18.191.230[.]253
• 18.191.241[.]159
• 18.191.47[.]76
• 18.216.127[.]143
• 18.216.37[.]78
• 18.216.55[.]205
• 18.216.71[.]102
• 18.217.146[.]44
• 18.217.177[.]214
• 18.218.20[.]166
• 18.220.29[.]72
• 18.221.25[.]98
• 18.221.46[.]136
• 18.222.10[.]104
• 18.222.187[.]174
• 18.222.198[.]38
• 18.222.213[.]203
• 18.222.253[.]209
• 18.222.56[.]98
• 18.223.111[.]224
• 18.223.112[.]155
• 18.223.131[.]52
• 18.223.136[.]87
• 18.225.31[.]210
• 18.225.32[.]44
• 18.225.7[.]128
• 18.225.8[.]249
• 52.14.103[.]72
• 52.14.221[.]47
• 52.15.184[.]25
• 52.15.222[.]174

Tactique Identifiant Nom La description
Exécution T1085 Rundll32 Le module peut être exécuté par rundll32.exe.
T1035 Exécution du service Le malware peut être exécuté en tant que service.
Evasion de défense T1140 Désobfusquez / décodez des fichiers ou des informations Le module désobfusque les chaînes dans son code pendant le processus d'exécution.
T1027 Fichiers ou informations obscurcis Le module obscurcit son code et ses chaînes dans une tentative apparente de rendre l'analyse et la détection difficiles.
T1102 Service Web Le logiciel malveillant acquiert des données de configuration à partir de la description des vidéos YouTube.
Découverte T1063 Découverte de logiciels de sécurité Le malware acquiert une liste de produits de sécurité en cours d'exécution.
Commander et contrôler T1090 Proxy de connexion Le module utilise des proxys entre lui et le pool de minage.
T1008 Canaux de secours Le module se connecte à un autre proxy d'exploration de données si celui initial est inaccessible.
T1095 Protocole standard de couche non-application Le malware utilise TCP pour ses communications.
T1043 Port couramment utilisé Le malware communique via le port 443.
T1132 Encodage des données Le module crypte puis base64 encode une partie du trafic réseau.
T1032 Protocole cryptographique standard Le module crypte le trafic avec RC4.
T1071 Protocole de couche d'application standard Acquiert les données de configuration de la description des vidéos YouTube via HTTPS.
Impact T1496 Détournement de ressources Le module exploite la crypto-monnaie.

Les sommes de contrôle CRC-32 vérifiées par CoinMiner.Stantinko et les noms de fichiers auxquels ils correspondent sont répertoriés ci-dessous.

0xB18362C7 afwserv.exe
0x05838A63 ashdisp.exe
0x36C5019C ashwebsv.exe
0xB3C17664 aswidsagent.exe
0x648E8307 avastsvc.exe
0x281AC78F avastui.exe
0xAA0D8BF4 avgcsrva.exe
0x71B621D6 avgcsrvx.exe
0x7D6D668A avgfws.exe
0x1EF12475 avgidsagent.exe
0x010B6C80 avgmfapx.exe
0x6E691216 avgnsa.exe
0xB5D2B834 avgnsx.exe
0x36602D00 avgnt.exe
0x222EBF57 avgrsa.exe
0xF9951575 avgrsx.exe
0x2377F90C avgsvc.exe
0x37FAB74F avgsvca.exe
0xEC411D6D avgsvcx.exe
0x0BED9FA2 avgtray.exe
0x168022D0 avguard.exe
0x99BA6EAA avgui.exe
0x7A77BA28 avguix.exe
0x0D22F74A avgwdsvc.exe
0x98313E09 avira.servicehost.exe
0x507E7C15 avira.systray.exe
0xFF934F08 avp.exe
0x9AC5F806 avpui.exe
0xBD07F203 avshadow.exe
0x64FDC22A avwebg7.exe
0x0BC69161 avwebgrd.exe
0xBACF2EAC cureit.exe
0x8FDEA9A9 drwagntd.exe
0xE1856E76 drwagnui.exe
0xF9BF908E drwcsd.exe
0xC84AB1DA drwebcom.exe
0x183AA5AC drwebupw.exe
0xAC255C5E drwupsrv.exe
0x23B9BE14 dwantispam.exe
0xDAC9F2B7 dwarkdaemon.exe
0x7400E3CB dwengine.exe
0x73982213 dwnetfilter.exe
0x1C6830BC dwscanner.exe
0x86D81873 dwservice.exe
0xB1D6E120 dwwatcher.exe
0xD56C1E6F egui.exe
0x69DD7DB4 ekrn.exe
0xFB1C0526 guardgui.exe
0x5BC1D859 ipmgui.exe
0x07711AAE ksde.exe
0x479CB9C4 ksdeui.exe
0x6B026A91 nod32cc.exe
0xCFFC2DBB nod32krn.exe
0x59B8DF4D nod32kui.exe
0x998B5896 procexp.exe
0xF3EEEFA8 procexp64.exe
0x81C16803 sched.exe
0x31F6B864 spideragent.exe
0x822C2BA2 taskmgr.exe
0x092E6ADA updrgui.exe
0x09375DFF wsctool.exe


Vladislav Hrčka

Click to rate this post!
[Total: 0 Average: 0]

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.