Table of contents
Contexte
En janvier 2023, grâce à l’activité de surveillance quotidienne menée par nos analystes et chercheurs, nous avons identifié sur le dark Web la présence d’un nouvel infostealer. Son nom c’est Stealc. C’est ainsi qu’il a été présenté par ses auteurs sous le pseudonyme Plymouth.
Ses auteurs le présentent tel un infostealer complet et prêt à l’emploi, dont les caractéristiques présentent des similitudes avec des infostealers tels que Vidar, Raccoon, Mars et Redline. Ces similitudes pourraient faire de ce nouvel infostealer un sérieux concurrent des familles de logiciels malveillants populaires mentionnées ci-dessus.
Début février 2023, alors que nos analystes effectuent une analyse d’infrastructures distribuant des infostealers, nous identifions une nouvelle famille de logiciels malveillants. Les communications Command & Control (C2) des échantillons associés présentent des similitudes avec celles de Vidar et de Raccoon.
L’analyse approfondie réalisée par la suite, par les analystes de Sekoia.io nous permet d’associer cette nouvelle famille de logiciels malveillants à Stealc.
Elle nous permet également de découvrir plusieurs dizaines d’échantillons Stealc distribués dans la nature, et plus de 40 serveurs C2. Ces chiffres représentent à certains égards un indicateur du niveau de popularité de ce nouvel infostealer parmi les acteurs de la menace distribuant des stealers.
Dans ce nouvel article de blog, nos analystes vous partageront les résultats de leur analyse sur cette menace émergente. Vous y trouverez plus précisément une présentation des activités du développeur présumé de Stealc, une analyse technique du malware et de ses communications C2, mais également la manière dont il peut être tracker. En complément, vous trouverez dans dans les annexes 1 et 2, des détails sur les capacités de Stealc mais un aperçu direct sur l’une de ses chaînes d’infection.
Enfin, nous examinerons dans un deuxième article les différentes techniques mises en œuvre par le malware. Pour info, ces résultats sont issus d’une opération de reverse engineering que nous avons appliqué à Stealc.
Une entrée plutôt réussie sur le marché de la cybercriminalité
Apparition de la première publicité de Stealc
Le 9 janvier 2023, pour la première fois, Plymouth annonce la commercialisation de son infostealer Stealc sur les forums clandestins russophones XSS et BHF. L’acteur de la menace publie ce jour-là une description détaillée de son malware. Plus précisement, il énumère ses différentes fonctionnalités de vol, son panneau d’administration complet et bien conçu mais aussi certaines de ses caractéristiques techniques.
Par défaut, Stealc cible les données sensibles des navigateurs Web les plus utilisés, mais également des extensions pour portefeuilles de crypto-monnaie et des informations provenant d’applications telles que celles de la messagerie. Comparée à d’autres infostealers analysés par Sekoia.io, Stealc donne la possibilité à ses usagers de configurer en fonction de leurs besoins, le vol de données.
L’outil de vol de données dispose également de capacités de chargement auxquelles on s’attend généralement pour un infostealer vendu en tant que Malware-as-a-Service (MaaS). Une liste complète des capacités Stealc est partagée dans l’annexe 1.
Le panneau d’administration de Stealc permet à ses utilisateurs de :
- Paramétrer eux-mêmes la configuration du logiciel malveillant ;
- Analyser, afficher, filtrer, trier et analyser les données volées;
- Téléchargez les journaux (données volées).
Sekoia.io a observé que la prise en main personnalisée des journaux (données dérobées) est une caractéristique clé commune à l’ensemble des logiciels de vols de données entrant sur le marché du Malware-as-a-service (MaaS).
Les acteurs à l’origine des actions de malveillances sont en effet, susceptibles de vendre les données volées sur des marketplaces dédiées et doivent donc avoir la possibilité de les télécharger de manière personnalisée.
De plus, ils doivent identifier et extraire les données d’identification et les fichiers précieux de la masse de données dérobées. Ainsi, nous estimons que Plymouth, le développeur présumé de Stealc, a consacré un effort non négligeable à développer le panneau d’administration sur les fonctionnalités de tri et de téléchargement des journaux.
L’activité de Plymouth menée de manière professionnelle
Après la première annonce de son infostealer survenue le 9 janvier 2023 sur XSS et BHF, Plymouth a continué à faire de la publicité pour son infostealer. Son objectif était alors de cibler un public plus large sur d’autres canaux, notamment : le forum de piratage Exploit et l’application de messagerie Telegram.
Pour gagner la confiance de potentiels clients, les développeurs proposent souvent aux utilisateurs de forums de cybercriminalité des tests gratuits de leur logiciel malveillant. L’objectif étant de recueillir des avis et éventuellement des commentaires positifs sur leur produit. Cela est considéré comme un gage de qualité, à l’instar d’un dépôt Bitcoin sur un forum de cybercriminalité. Sur certains forums, il est même nécessaire de faire un dépôt ou d’avoir des commentaires pertinents d’un administrateur, d’un modérateur ou d’un utilisateur expérimenté pour vendre un produit ou un service.
Comme le montre la figure suivante, Plymouth remplit les deux: un dépôt Bitcoin de 0,02 (environ 400 $ au moment du dépôt) et des tests hebdomadaires gratuits offerts aux utilisateurs de XSS. Nous estimons avec une grande confiance que son développeur présumé s’est rapidement imposé comme un acteur fiable, et que son logiciel malveillant a gagné la confiance des cybercriminels opérant avec des infostealers.
En outre, Plymouth a publié plusieurs versions de Stealc et publié des changelogs sur différents forums, ainsi que sur un canal Telegram dédié (hxxps://t[.]me/stealc_changelog). Sur ces changelogs, l’on retrouve des annonces de nouvelles fonctionnalités et des corrections de bugs. Les principales modifications apportées à chaque version sont répertoriées dans la figure ci-dessous.
Les publications de Plymouth et les activités observées indiquent que Stealc est en cours de développement. De nouvelles fonctionnalités sont ajoutées chaque semaine. Alors que le stealer est déjà fonctionnel et est adopté par plusieurs acteurs de la menace, les développeurs continuent d’améliorer le malware, notamment son panneau d’administration, susceptibles d’élargir sa clientèle.
Analyse technique
Avant d’analyser le processus d’exécution de Stealc et les communications C2, nous aborderons la manière dont nous avons associé cette nouvelle famille de malware à Stealc.
Association d’échantillons de logiciels malveillants
Début février 2023, les analystes de Sekoia.io ont trouvé l’échantillon d’un malware inconnu en enquêtant sur une infrastructure généralement utilisée pour distribuer des stealers: (SHA256: a2465fc5059ea57c7b64b1dc01caf8735422a005ddb7fabeddfa3cbc89085ccf, https://tria.ge/230212-pkc69adh37). L’exécution de l’échantillon donne à voir deux caractéristiques spécifiques :
- Le téléchargement d’une DLL tierce légitime, déjà observée comme abusée par des stealers (sqlite3.dll, freebl3.dll, mozglue.dll, msvcp40.dll, nss3.dll, softokn3.dll and vcruntime140.dll);
- Exécution d’une commande supprimant toutes les DLL dans C:\ProgramData.
À partir de ces comportements, nous avons pivoté nos analyses sur des dizaines d’échantillons qui semblent appartenir à la même famille de logiciels malveillants en utilisant la requête suivante sur VirusTotal :
behaviour:"C:\ProgramData\*.dll" behaviour:"timeout /t 5" behaviour:"sqlite3.dll"
Les résultats ont renvoyé vers des échantillons autonomes d’environ 80 KB (SHA256: 77d6f1914af6caf909fa2a246fcec05f500f79dd56e5d0d466d55924695c702d). Nous les avons analysés en profondeur pour corroborer l’association de cette nouvelle famille de logiciels malveillants à Stealc. Voici un résumé de l’association des caractéristiques Stealc telles qu’elles ont été annoncées par Plymouth et des exemples de caractéristiques observées par Sekoia.io.
Stealc features, as described by Plymouth on XSS | SEKOIA.IO observations based on samples of the new malware family |
When developing our solution, we relied on Vidar, Raccoon, Mars and RedLine | Stealc, Vidar, Raccoon and Mars all download legitimate third-party DLLs (sqlite3.dll, nss3.dll, etc.), as the found sample. |
Current build weight – 78kb | The standalone sample is approximately 80KB. |
stealc was written in pure C using WinAPI | C written malware uses WinAPI functions. |
all functions are dynamically loaded | Once the strings are deobfuscated, the malware loads the WinAPI functions using GetProcAddress and LoadLibraryA. |
import table is taken by couple of imports from mscrt | The import address table imports 6 functions from MsvcrtDLL. |
All lines of work are obfuscated. | All strings are obfuscated using RC4 and base64, except a few ones which are related to new features (update v1.1.2). |
stealc does not generate an archive on the client side, each file to be collected is sent to the server in a separate request | The malware exfiltrates the collected data file by file and doesn’t wait to receive all configuration to collect and send data. |
more than 23 supported browsers | Based on the configuration sent by the C2, the malware targets 22 browsers. |
more than 70 web plugins | Based on the configuration sent by C2, Stealc targets 75 plugins. |
more than 15 desktop wallets | Based on the configuration sent by C2, Stealc targets 25 wallets. |
email clients | The sample collects data from Outlook files (\Outlook\accounts.txt), the configuration is stored in the obfuscated data. |
added random name generation for script-gate (api.php), in stealc update v1.1.2 | The first samples communicated on /api.php and downloaded the DLLs from /libs/. Recent samples used random paths ([a-f0-9]{16}) for data exfiltration and DLL download. |
recorded user-agents in the system_info.txt file, in stealc update v1.1.2 | The malware exfiltrates victim host’s user agents. |
recorded ip and country in file system_info.txt, in stealc update v1.1.2 | IP address and country of the infected host (ISO) are exfiltrated to the C2. |
Sur la base de ce tableau comparatif, les analystes de Sekoia.io estiment avec grande confiance que cette nouvelle famille de logiciels malveillants trouvés dans la nature correspond à Stealc infostealer.
Présentation technique de l’échantillon Stealc
Sekoia.io a procédé au reverse engineering de Stealc et publiera une analyse approfondie pour partager plus de détails. En attendant, voici un aperçu des principales étapes d’exécution de Stealc.
Une fois exécuté, Stealc désobfusque toutes ses chaînes cryptées RC4 et codées en base 64. Il compare ensuite la date du système à la date codée en dur dans les chaînes obscurcies. Si l’exécution a lieu après la date codée en dur, le malware s’arrête. Cette vérification est probablement mise en œuvre par le développeur du stealer pour limiter l’activité du client à la période de validité de la licence.
Stealc vérifie également les environnements virtuels ou sandbox en comparant le nom de la machine à HAL9TH et le nom d’utilisateur à JohnDoe, uniquement utilisé par Microsoft Defender emulator.
Le malware charge dynamiquement les différentes fonctions WinAPI à l’aide de LoadLibrary et GetProcAddress, et initie la communication avec son serveur C2. Voici une analyse présentant étape après étape, les communications des logiciels malveillants :
- Stealc envoie d’abord le HWID (Hardware Identifier) et le build name de l’hôte de la victime à son serveur C2, en utilisant une requête POST sur la porte du serveur (name= »hwid », name= »build »). Le serveur répond avec la configuration codée en base64 (voir ci-dessous) :
d325580bb149e327a7c8338ec6c9ac7227e7c319411261441d8d3097b2a2d6e5fef3ce48|isdone|docia.docx| |
- Le malware envoie les commandes de navigateurs au serveur C2 pour récupérer sa configuration et lancer la collecte de données à partir de navigateurs Web, en utilisant une requête POST sur la porte du serveur (name= »token », name= »message » (browsers)). Encore une fois, le serveur répond de la manière suivante avec la configuration codée en base64 :
Google Chrome|\Google\Chrome\User Data|chrome|Google Chrome Canary|\Google\Chrome SxS\User Data|chrome|Chromium|\Chromium\User Data|chrome|Amigo|\Amigo\User Data|chrome|Torch|\Torch\User Data|chrome|Vivaldi|\Vivaldi\User Data|chrome|Comodo Dragon|\Comodo\Dragon\User Data|chrome|EpicPrivacyBrowser|\Epic Privacy Browser\User Data|chrome|CocCoc|\CocCoc\Browser\User Data|chrome|Brave|\BraveSoftware\Brave-Browser\User Data|chrome|Cent Browser|\CentBrowser\User Data|chrome|7Star|\7Star\7Star\User Data|chrome|Chedot Browser|\Chedot\User Data|chrome|Microsoft Edge|\Microsoft\Edge\User Data|chrome|360 Browser|\360Browser\Browser\User Data|chrome|QQBrowser|\Tencent\QQBrowser\User Data|chrome|CryptoTab|\CryptoTab Browser\User Data|chrome|Opera Stable|\Opera Software|opera|Opera GX Stable|\Opera Software|opera|Mozilla Firefox|\Mozilla\Firefox\Profiles|firefox|Pale Moon|\Moonchild Productions\Pale Moon\Profiles|firefox|Opera Crypto Stable|\Opera Software|opera|Thunderbird|\Thunderbird\Profiles|firefox| |
- En utilisant le même format, il envoie les commandes de plugins au serveur C2 pour récupérer sa configuration pour la collecte de données à partir d’extensions de navigateurs web, en utilisant une requête POST sur la porte du serveur (name= »token », name= »message » (plugins)). Le serveur répond de la manière suivante avec la configuration codée en base64 :
MetaMask|djclckkglechooblngghdinmeemkbgci|1|0|0|MetaMask|ejbalbakoplchlghecdalmeeeajnimhm|1|0|0| |
- Stealc exfiltre les données d’empreintes digitales de l’hôte infecté, en utilisant une requête POST sur la porte du serveur (name= »token », name= »file_name », name= »file »). Le fichier est nommé system_info.txt et comprend des informations sur le réseau, le résumé du système, les agents utilisateur, les applications installées et la liste des processus.
- Il télécharge 7 DLL tierces légitimes à partir du serveur C2, à l’aide de requêtes GET, dans l’ordre suivant :
- sqlite3.dll
- freebl3.dll
- mozglue.dll
- msvcp40.dll
- nss3.dll
- softokn3.dll
- vcruntime140.dll
- Stealc exfiltre les fichiers un par un, en utilisant les requêtes POST sur la porte du serveur (name= »token », name= »file_name », name= »file »). Les fichiers collectés et exfiltrés par le malware correspondent à ceux définis dans la configuration, tels que ceux mentionnés ci-dessous (pour un hôte victime ayant installé Mozilla Firefox):
- history\Mozilla Firefox_*.default-release.txt
- autofill\Mozilla Firefox_*.default-release.txt
- cookies\Mozilla Firefox_*.default-release.txt
- Il envoie les portefeuilles de commande au C2 pour récupérer sa configuration pour la collecte de données à partir de portefeuilles de crypto-monnaie, en utilisant une requête POST sur la porte du serveur (name= »token », name= »message » (wallets)). Encore une fois, le serveur répond avec une configuration codée en base64 :
Bitcoin Core|\Bitcoin\wallets\|wallet.dat|1|Bitcoin Core Old|\Bitcoin\|*wallet*.dat|0|Dogecoin|\Dogecoin\|*wallet*.dat|0|Raven Core|\Raven\|*wallet*.dat|0|Daedalus Mainnet|\Daedalus Mainnet\wallets\|she*.sqlite|0|Blockstream Green|\Blockstream\Green\wallets\|*.*|1|Wasabi Wallet|\WalletWasabi\Client\Wallets\|*.json|0|Ethereum|\Ethereum\|keystore|0|Electrum|\Electrum\wallets\|*.*|0|(redacted) |
- Il envoie également les commandes de fichiers au serveur C2 pour récupérer sa configuration pour le récupérateur de fichiers, en utilisant une requête POST sur la porte du serveur (name= »token », name= »message » (files)). Le serveur répond avec une configuration codée en base64, telle que celle mentionnée ci-dessous :
DESKTOP|%DESKTOP%\|*.txt|15|1|0|Doki|%DOCUMENTS%\|*.txt|15|1|0| |
- Encore une fois, il exfiltre les données collectées en utilisant le même modèle que celui décrit précédemment à l’étape 6 (name= »token », name= »file_name », name= »file »). Avec la configuration précédente, le fichier files\DESKTOP\SwitchSearch.txt est collecté et exfiltré par le malware.
- Enfin, les données obfusquées Stealc incluent le chemin du fichier ou la clé de registre Windows liée aux données sensibles de Discord, Telegram, Tox, Outlook et Steam. Le malware rassemble les fichiers ciblés et les exfiltre ensuite avec le même schéma que décrit précédemment.
- Une fois que le malware a fini de récupérer toutes les configurations et d’exfiltrer les données collectées, il envoie la commande effectuée à l’aide d’une requête POST sur la porte du serveur (name= »token », name= »message » (done)).
Les communications C2 de Stealc sont « bruyant » lorsque l’hôte infecté possède plusieurs navigateurs Web, extensions, portefeuilles crypto installés sur le bureau.
Une fois le processus de collecte de données terminé, le logiciel malveillant supprime lui-même ses traces y compris des fichiers DLL téléchargés chez l’hôte compromis en exécutant la commande suivante :
cmd.exe /c timeout /t 5 & del /f /q "$STEALERPATH" & del "C:\ProgramData\*.dll" & exit |
Traquer Stealc sous ses diverses formes
Échantillons autonomes
Un moyen efficace de détecter les échantillons autonomes Stealc consiste à écrire une règle YARA sur les chaînes spécifiques qui ne sont pas obscurcies (celles qui ont été ajoutées dans la version Stealc v1.2.0).
Pour ce faire, nous comparons les chaînes communes intégrées dans tous les échantillons autonomes Stealc. Voici les chaînes caractéristiques incluses dans tous les échantillons autonomes :
ASCII: ------ paddr: 69704, 69726 |
Nous pouvons également indiquer la fonction malveillante qui boucle sur les chaînes obfusquées pour les désobscurcir. Une règle YARA basée sur les deux méthodes est partagée dans la section de cet article dédiée aux IoCs et autres détails techniques.
Échantillons compressés
Les signatures YARA basées sur les chaînes ou les fonctions des logiciels malveillants ne sont pas efficaces lorsque l’échantillon est compressé à l’aide d’un compresseur commercial, d’un chargeur personnalisé, incorporé dans un « shellcode », etc.
Dans ce cas de figure, la détection dynamique devient une option appropriée. Et pour ce faire, nous pouvons utiliser une règle YARA pour VirusTotal Livehunt. Celle-ci permettra de détecter les commandes spécifiques exécutées par Stealc ou les communications C2 spécifiques :
/c timeout /t 5 |
Comme nous l’avons fait dans l’exemple ci-dessus pour pivoter sur cette famille de logiciels malveillants, nous pouvons corréler ces comportements spécifiques dans une règle YARA en utilisant VirusTotal Livehunt. Une règle YARA est partagée à ce sujet dans la section de cet article dédiée aux IoCs et autres données techniques.
Serveurs C2
Le suivi des serveurs C2 de Stealc peut être effectué en utilisant les réponses HTTP et HTML par défaut qui semblent être caractéristiques des serveurs C2 Stealc. La plupart de ces serveurs C2 analysés répondent à un code d’état HTTP 200 avec une page HTML contenant un serveur Apache « 404 Forbidden » sur le port 80, comme indiqué ci-dessous:
HTTP/1.1 200 OK |
Pour confirmer qu’un serveur correspondant à cette réponse HTML spécifique et à un code d’état HTTP 200 correspond à un serveur Stealc C2, nous pouvons scanner certains URI ouverts sur les serveurs Stealc, tels que : “/modules/” and “/index.php/”.
Au moment d’écrire ces lignes, Sekoia.io a trouvé 35 serveurs actifs associés à Stealc C2 avec un niveau de confiance élevé (répertorié ci-dessous dans la section de cet article dédiée aux IoCs et autres données techniques), et plus de 40 échantillons Stealc.
Conclusion
Stealc est un infostealer complet vendu en tant que Malware as-a-service (MaaS). Il a émergé sur les forums clandestins au début de l’année 2023. Son auteur (Plymouth) s’est appuyé sur les infostealers les plus connus aujourd’hui sur le marché (Vidar, Raccoon, Redline et Mars) pour développer un malware qui à son tour, est rapidement devenu populaire auprès des cybercriminels russophones.
Puisque ses utilisateurs possèdent une version de son panneau d’administration pour héberger le serveur C2 et générer eux-mêmes des échantillons de stealers, il est probable que son usage se répandra dans les communautés souterraines à moyen terme.
D’ailleurs Sekoia.io estime que le projet de Plymouth ne sera peut-être pas viable sur le long terme, comme le sont aujourd’hui les projets Vidar ou Raccoon. Cependant, il est probable qu’une version crackée de Stealc puisse être publiée à l’avenir. Ce qui pourrait être utilisé pendant de nombreuses années.
Nous nous attendons à ce que l’infostealer Stealc se généralise à court terme, car de multiples acteurs de la menace ajoutent le malware à leur arsenal alors qu’il est très peu surveillé. Les entreprises confrontées à des campagnes de vols de données doivent être informées de la présence de ce malware.
Pour fournir à nos clients des renseignements exploitables et actionnables, les analystes de Sekoia.io continueront de surveiller les infostealers émergents et répandus, y compris Stealc.
Annexes
Annexe 1 – Capacités de Stealc
Navigateurs web ciblés
Web browser | Path of targeted file | Format |
Google Chrome | \Google\Chrome\User Data | chrome |
Google Chrome Canary | \Google\Chrome SxS\User Data | chrome |
Chromium | \Chromium\User Data | chrome |
Amigo | \Amigo\User Data | chrome |
Torch | \Torch\User Data | chrome |
Vivaldi | \Vivaldi\User Data | chrome |
Comodo Dragon | \Comodo\Dragon\User Data | chrome |
EpicPrivacyBrowser | \Epic Privacy Browser\User Data | chrome |
CocCoc | \CocCoc\Browser\User Data | chrome |
Brave | \BraveSoftware\Brave-Browser\User Data | chrome |
Cent Browser | \CentBrowser\User Data | chrome |
7Star | \7Star\7Star\User Data | chrome |
Chedot Browser | \Chedot\User Data | chrome |
Microsoft Edge | \Microsoft\Edge\User Data | chrome |
360 Browser | \360Browser\Browser\User Data | chrome |
QQBrowser | \Tencent\QQBrowser\User Data | chrome |
CryptoTab | \CryptoTab Browser\User Data | chrome |
Opera Stable | \Opera Software | opera |
Opera GX Stable | \Opera Software | opera |
Mozilla Firefox | \Mozilla\Firefox\Profiles | firefox |
Pale Moon | \Moonchild Productions\Pale Moon\Profiles | firefox |
Opera Crypto Stable | \Opera Software | opera |
Targeted browser extensions
Cryptocurrency wallet | Extension ID |
MetaMask | djclckkglechooblngghdinmeemkbgci |
MetaMask | ejbalbakoplchlghecdalmeeeajnimhm |
MetaMask | nkbihfbeogaeaoehlefnkodbefgpgknn |
TronLink | ibnejdfjmmkpcnlpebklmnkoeoihofec |
Binance Wallet | fhbohimaelbohpjbbldcngcnapndodjp |
Yoroi | ffnbelfdoeiohenkjibnmadjiehjhajb |
Coinbase Wallet extension | hnfanknocfeofbddgcijnmhnfnkdnaad |
Guarda | hpglfhgfnhbgpjdenjgmdgoeiappafln |
Jaxx Liberty | cjelfplplebdjjenllpjcblmjkfcffne |
iWallet | kncchdigobghenbbaddojjnnaogfppfj |
MEW CX | nlbmnnijcnlegkjjpcfjclmcfggfefdm |
GuildWallet | nanjmdknhkinifnkgdcggcfnhdaammmj |
Ronin Wallet | fnjhmkhhmkbjkkabndcnnogagogbneec |
NeoLine | cphhlgmgameodnhkjdmkpanlelnlohao |
CLV Wallet | nhnkbkgjikgcigadomkphalanndcapjk |
Liquality Wallet | kpfopkelmapcoipemfendmdcghnegimn |
Terra Station Wallet | aiifbnbfobpmeekipheeijimdpnlpgpp |
Keplr | dmkamcknogkgcdfhhbddcghachkejeap |
Sollet | fhmfendgdocmcbmfikdcogofphimnkno |
Auro Wallet(Mina Protocol) | cnmamaachppnkjgnildpdmkaakejnhae |
Polymesh Wallet | jojhfeoedkpkglbfimdfabpdfjaoolaf |
ICONex | flpiciilemghbmfalicajoolhkkenfel |
Coin98 Wallet | aeachknmefphepccionboohckonoeemg |
EVER Wallet | cgeeodpfagjceefieflmdfphplkenlfk |
KardiaChain Wallet | pdadjkfkgcafgbceimcpbkalnfnepbnk |
Rabby | acmacodkjbdgmoleebolmdjonilkdbch |
Phantom | bfnaelmomeimhlpmgjnjophhpkkoljpa |
Brave Wallet | odbfpeeihdkbihmopkbjmoonfanlbfcl |
Oxygen | fhilaheimglignddkjgofkcbgekhenbh |
Pali Wallet | mgffkfbidihjpoaomajlbgchddlicgpn |
BOLT X | aodkkagnadcbobfpggfnjeongemjbjca |
XDEFI Wallet | hmeobnfnfcmdkdcmlblgagmfpfboieaf |
Nami | lpfcbjknijpeeillifnkikgncikgfhdo |
Maiar DeFi Wallet | dngmlblcodfobpdpecaadgfbcggfjfnm |
Keeper Wallet | lpilbniiabackdjcionkobglmddfbcjo |
Solflare Wallet | bhhhlbepdkbapadjdnnojkbgioiodbic |
Cyano Wallet | dkdedlpgdmmkkfjabffeganieamfklkm |
KHC | hcflpincpppdclinealmandijcmnkbgn |
TezBox | mnfifefkajgofkcjkemidiaecocnkjeh |
Temple | ookjlbkiijinhpmnjffcofjonbfbgaoc |
Goby | jnkelfanjkeadonecabehalmbgpfodjm |
Ronin Wallet | kjmoohlgokccodicjjfebfomlbljgfhk |
Byone | nlgbhdfgdhgbiamfdfmbikcdghidoadd |
OneKey | jnmbobjmhlngoefaiojfljckilhhlhcj |
DAppPlay | lodccjjbdhfakaekdiahmedfbieldgik |
SteemKeychain | jhgnbkkipaallpehbohjmkbjofjdmeid |
Braavos Wallet | jnlgamecbpmbajjfhmmmlhejkemejdma |
Enkrypt | kkpllkodjeloidieedojogacfhpaihoh |
OKX Wallet | mcohilncbfahbmgdjkbpemcciiolgcge |
Sender Wallet | epapihdplajcdnnkdeiahlgigofloibg |
Hashpack | gjagmgiddbbciopjhllkdnddhcglnemk |
Eternl | kmhcihpebfmpgmihbkipmjlmmioameka |
Pontem Aptos Wallet | phkbamefinggmakgklpkljjmgibohnba |
Petra Aptos Wallet | ejjladinnckdgjemekebdpeokbikhfci |
Martian Aptos Wallet | efbglgofoippbgcjepnhiblaibcnclgk |
Finnie | cjmkndjhnagcfbpiemnkdpomccnjblmj |
Leap Terra Wallet | aijcbedoijmgnlmjeegjaglmepbmpkpi |
Trezor Password Manager | imloifkgjagghnncjkhggdhalmcnfklk |
Authenticator | bhghoamapcdpbohphigoooaddinpkbai |
Authy | gaedmjdfmmahhbjefcbgaolhhanlaolb |
EOS Authenticator | oeljdldpnmdbchonielidgobddffflal |
GAuth Authenticator | ilgcnhelpchnceeipipijaljkblbcobl |
Bitwarden | nngceckbapebfimnlniiiahkandclblb |
KeePassXC | oboonakemofpalcgghocfoadofidjkkk |
Dashlane | fdjamakpfbbddfjaooikfcpapjohcfmg |
NordPass | fooolghllnmhmmndgjiamiiodkpenpbb |
Keeper | bfogiafebfohielmmehodmfbbebbbpei |
RoboForm | pnlccmojcmeohlpggmfnbbiapkmbliob |
LastPass | hdokiejnpimakedhajhdlcegeplioahd |
BrowserPass | naepdomgkenhinolocfifgehidddafch |
MYKI | bmikpgodpkclnkgmnpphehdgcimmided |
Splikity | jhfjfclepacoldmjmkmdlmganfaalklb |
CommonKey | chgfefjpcobfbnpmiokfjjaglahmnded |
Zoho Vault | igkpcodhieompeloncfnbekccinhapdb |
Opera Wallet | gojhcdgcpbpfigcaejpfhfegekdgiblk |
Targeted desktop cryptocurrency wallets
Cryptocurrency wallet | Path of targeted directory | File |
Bitcoin Core | \Bitcoin\wallets\ | wallet.dat |
Bitcoin Core Old | \Bitcoin\ | wallet.dat |
Dogecoin | \Dogecoin\ | wallet.dat |
Raven Core | \Raven\ | wallet.dat |
Daedalus Mainnet | \Daedalus Mainnet\wallets\ | she*.sqlite |
Blockstream Green | \Blockstream\Green\wallets\ | . |
Wasabi Wallet | \WalletWasabi\Client\Wallets\ | .json |
Ethereum | \Ethereum\ | keystore |
Electrum | \Electrum\wallets\ | . |
ElectrumLTC | \Electrum-LTC\wallets\ | . |
Exodus | \Exodus\ | exodus.conf.json |
Exodus | \Exodus\ | window-state.json |
Exodus | \Exodus\exodus.wallet\ | passphrase.json |
Exodus | \Exodus\exodus.wallet\ | seed.seco |
Exodus | \Exodus\exodus.wallet\ | info.seco |
Electron Cash | \ElectronCash\wallets\ | . |
MultiDoge | \MultiDoge\ | multidoge.wallet |
Jaxx Desktop (old) | \jaxx\Local Storage\ | file__0.localstorage |
Jaxx Desktop | \com.liberty.jaxx\IndexedDB\file__0.indexeddb.leveldb\ | . |
Atomic | \atomic\Local Storage\leveldb\ | . |
Binance | \Binance\ | app-store.json |
Binance | \Binance\ | simple-storage.json |
Binance | \Binance\ | .finger-print.fp |
Coinomi | \Coinomi\Coinomi\wallets\ | .wallet |
Coinomi | \Coinomi\Coinomi\wallets\ | *.config |
Annexe 2 – Une Chaîne d’infection de Stealc
SEKOIA.IO a observé une chaîne d’infection distribuant Stealc. Celle-ci se déploie de la manière suivante :
- Des vidéos YouTube publiées sur des comptes dérobés décrivent « comment installer gratuitement un logiciel piraté ». Dans le descriptif de ces vidéos, ils fournissent un lien : (hxxps://rcc-software[.]com/services);
- À partir du lien fourni dans la vidéo YouTube, la victime peut accéder à un site Web de « catalogue de logiciels piratés ».
- La charge utile contient Stealc infostealer. L’utilisateur le télécharge, décompresse l’archive avec le mot de passe 55555 et exécute le fichier “setup.exe” (hxxps://streetlifegaming[.]com/wp-content/uploads/2023/02/Pass_55555_Setup.rar);
- Stealc communique avec son C2 sur 37.220.87[.]65 (https://tria.ge/230212-pkc69adh37).
IoCs & Détails techniques
IoCs
La liste des IoCs est disponible sur le dépôt github de Sekoia.io.
Serveurs C2 de Stealc
185.143.223[.]136 94.131.99[.]185 65.109.131[.]183 45.87.153[.]50 179.43.162[.]94 194.87.31[.]146 94.142.138[.]11 23.88.116[.]117 95.217.143[.]99 185.242.87[.]149 194.4.51[.]160 5.75.138[.]201 185.130.46[.]214 167.235.62[.]105 | 185.247.184[.]7 179.43.162[.]89 91.228.225[.]46 179.43.162[.]2 77.246.156[.]93 84.246.85[.]80 185.5.248[.]95 146.70.161[.]51 85.239.54[.]29 91.215.85[.]188 77.91.124[.]7 37.120.238[.]190 37.220.87[.]65 45.136.49[.]247 | 45.136.50[.]69 45.136.51[.]61 45.144.29[.]176 65.109.3[.]34 94.142.138[.]48 95.216.112[.]83 195.74.86[.]37 162.0.238[.]10 666palm[.]com 777palm[.]com aa-cj[.]com fff-ttt[.]com moneylandry[.]com |
URLs C2 de Stealc
hxxp://146.70.161[.]51/273d9c8034a95cb4.phphxxp://162.0.238[.]10/752e382b4dcf5e3f.php hxxp://176.124.192[.]200/bef7fb05c9ef6540.php hxxp://179.43.162[.]2/d8ab11e9f7bc9c13.php hxxp://185.5.248[.]95/api.php hxxp://666palm[.]com/bca98681abf8e1ab.php hxxp://777palm[.]com/bef7fb05c9ef6540.php hxxp://94.142.138[.]48/f9f76ae4bb7811d9.php hxxp://95.216.112[.]83/413a030d85acf448.php hxxp://aa-cj[.]com/6842f013779f3d08.php hxxp://fff-ttt[.]com/984dd96064cb23d7.php hxxp://moneylandry[.]com/bef7fb05c9ef6540.php hxxp://94.142.138[.]48/f9f76ae4bb7811d9.php hxxp://185.247.184[.]7/8c3498a763cc5e26.php hxxps://185.247.184[.]7/8c3498a763cc5e26.php hxxp://23.88.116[.]117/api.php hxxp://95.216.112[.]83/413a030d85acf448.php hxxp://179.43.162[.]2/d8ab11e9f7bc9c13.php hxxp://185.5.248[.]95/c1377b94d43eacea.php hxxp://146.70.161[.]51/58d66e64beb49702/freebl3.dll hxxp://146.70.161[.]51/58d66e64beb49702/mozglue.dll hxxp://146.70.161[.]51/58d66e64beb49702/msvcp140.dll hxxp://146.70.161[.]51/58d66e64beb49702/nss3.dll hxxp://146.70.161[.]51/58d66e64beb49702/softokn3.dll hxxp://146.70.161[.]51/58d66e64beb49702/sqlite3.dll hxxp://146.70.161[.]51/58d66e64beb49702/vcruntime140.dll hxxp://162.0.238[.]10/dbe4ef521ee4cc21/freebl3.dll hxxp://162.0.238[.]10/dbe4ef521ee4cc21/mozglue.dll hxxp://162.0.238[.]10/dbe4ef521ee4cc21/msvcp140.dll hxxp://162.0.238[.]10/dbe4ef521ee4cc21/nss3.dll hxxp://162.0.238[.]10/dbe4ef521ee4cc21/softokn3.dll hxxp://162.0.238[.]10/dbe4ef521ee4cc21/sqlite3.dll hxxp://162.0.238[.]10/dbe4ef521ee4cc21/vcruntime140.dll hxxp://179.43.162[.]2/3461133978273cb9/freebl3.dll hxxp://179.43.162[.]2/3461133978273cb9/mozglue.dll hxxp://179.43.162[.]2/3461133978273cb9/msvcp140.dll hxxp://179.43.162[.]2/3461133978273cb9/nss3.dll hxxp://179.43.162[.]2/3461133978273cb9/softokn3.dll hxxp://179.43.162[.]2/3461133978273cb9/sqlite3.dll hxxp://179.43.162[.]2/3461133978273cb9/vcruntime140.dll hxxp://185.5.248[.]95/libs/freebl3.dll hxxp://185.5.248[.]95/libs/mozglue.dll hxxp://185.5.248[.]95/libs/msvcp140.dll hxxp://185.5.248[.]95/libs/nss3.dll hxxp://185.5.248[.]95/libs/softokn3.dll hxxp://185.5.248[.]95/libs/sqlite3.dll hxxp://185.5.248[.]95/libs/vcruntime140.dll hxxp://666palm[.]com/54fbf4b9ffe8c98d/freebl3.dll hxxp://666palm[.]com/54fbf4b9ffe8c98d/mozglue.dll hxxp://666palm[.]com/54fbf4b9ffe8c98d/msvcp140.dll hxxp://666palm[.]com/54fbf4b9ffe8c98d/nss3.dll hxxp://666palm[.]com/54fbf4b9ffe8c98d/softokn3.dll hxxp://666palm[.]com/54fbf4b9ffe8c98d/sqlite3.dll hxxp://666palm[.]com/54fbf4b9ffe8c98d/vcruntime140.dll hxxp://777palm[.]com/2ccaf544c0cf7de7/freebl3.dll hxxp://777palm[.]com/2ccaf544c0cf7de7/mozglue.dll hxxp://777palm[.]com/2ccaf544c0cf7de7/msvcp140.dll hxxp://777palm[.]com/2ccaf544c0cf7de7/nss3.dll hxxp://777palm[.]com/2ccaf544c0cf7de7/softokn3.dll hxxp://777palm[.]com/2ccaf544c0cf7de7/sqlite3.dll hxxp://777palm[.]com/2ccaf544c0cf7de7/vcruntime140.dll hxxp://94.142.138[.]48/54982f23330528c2/freebl3.dll hxxp://94.142.138[.]48/54982f23330528c2/mozglue.dll hxxp://94.142.138[.]48/54982f23330528c2/msvcp140.dll hxxp://94.142.138[.]48/54982f23330528c2/nss3.dll hxxp://94.142.138[.]48/54982f23330528c2/softokn3.dll hxxp://94.142.138[.]48/54982f23330528c2/sqlite3.dll hxxp://94.142.138[.]48/54982f23330528c2/vcruntime140.dll hxxp://95.216.112[.]83/5840871afdb84f06/sqlite3.dll hxxp://aa-cj[.]com/1b8df000d02ce631/freebl3.dll hxxp://aa-cj[.]com/1b8df000d02ce631/mozglue.dll hxxp://aa-cj[.]com/1b8df000d02ce631/msvcp140.dll hxxp://aa-cj[.]com/1b8df000d02ce631/nss3.dll hxxp://aa-cj[.]com/1b8df000d02ce631/softokn3.dll hxxp://aa-cj[.]com/1b8df000d02ce631/sqlite3.dll hxxp://aa-cj[.]com/1b8df000d02ce631/vcruntime140.dll hxxp://fff-ttt[.]com/a02fc2187db8cd88/freebl3.dll hxxp://fff-ttt[.]com/a02fc2187db8cd88/mozglue.dll hxxp://fff-ttt[.]com/a02fc2187db8cd88/msvcp140.dll hxxp://fff-ttt[.]com/a02fc2187db8cd88/nss3.dll hxxp://fff-ttt[.]com/a02fc2187db8cd88/softokn3.dll hxxp://fff-ttt[.]com/a02fc2187db8cd88/sqlite3.dll hxxp://fff-ttt[.]com/a02fc2187db8cd88/vcruntime140.dll hxxp://moneylandry[.]com/2ccaf544c0cf7de7/freebl3.dll hxxp://moneylandry[.]com/2ccaf544c0cf7de7/mozglue.dll hxxp://moneylandry[.]com/2ccaf544c0cf7de7/msvcp140.dll hxxp://moneylandry[.]com/2ccaf544c0cf7de7/nss3.dll hxxp://moneylandry[.]com/2ccaf544c0cf7de7/softokn3.dll hxxp://moneylandry[.]com/2ccaf544c0cf7de7/sqlite3.dll hxxp://moneylandry[.]com/2ccaf544c0cf7de7/vcruntime140.dll hxxp://94.142.138[.]48/54982f23330528c2/msvcp140.dll hxxp://5.75.138[.]201/9026ac2a280e901d/softokn3.dll hxxp://23.88.116[.]117/libs/sqlite3.dll hxxp://185.247.184[.]7/b00dc1fe53045ca1/sqlite3.dll hxxp://146.70.161[.]51/58d66e64beb49702/freebl3.dll hxxp://95.216.112[.]83/5840871afdb84f06/mozglue.dll hxxp://179.43.162[.]2/3461133978273cb9/sqlite3.dll hxxp://179.43.162[.]2/3461133978273cb9/msvcp140.dll hxxp://185.5.248[.]95/libs/mozglue.dll |
Stealc SHA256 (échantillons autonomes)
1e09d04c793205661d88d6993cb3e0ef5e5a37a8660f504c1d36b0d8562e63a2 77d6f1914af6caf909fa2a246fcec05f500f79dd56e5d0d466d55924695c702d 87f18bd70353e44aa74d3c2fda27a2ae5dd6e7d238c3d875f6240283bc909ba6 |
D’autres IoC sont disponibles dans l’Intelligence Center de Sekoia.io.
YARA rules
Les règles YARA sont disponibles sur le référentiel github de Sekoia.io.
Détection statique
rule infostealer_win_stealc {
meta:
malware = "Stealc"
description = "Find standalone Stealc sample based on decryption routine or characteristic strings"
source = "SEKOIA.IO"
reference = "https://blog.sekoia.io/stealc-a-copycat-of-vidar-and-raccoon-infostealers-gaining-in-popularity-part-1/"
classification = "TLP:CLEAR"
hash = "77d6f1914af6caf909fa2a246fcec05f500f79dd56e5d0d466d55924695c702d"
strings:
$dec = { 55 8b ec 8b 4d ?? 83 ec 0c 56 57 e8 ?? ?? ?? ?? 6a 03 33 d2 8b f8 59 f7 f1 8b c7 85 d2 74 04 } //deobfuscation function
$str01 = "------" ascii
$str02 = "Network Info:" ascii
$str03 = "- IP: IP?" ascii
$str04 = "- Country: ISO?" ascii
$str05 = "- Display Resolution:" ascii
$str06 = "User Agents:" ascii
$str07 = "%s\\%s\\%s" ascii
condition:
uint16(0) == 0x5A4D and ($dec or 5 of ($str*))
}
Détection dynamique à l’aide de VirusTotal Livehunt
import "vt"
rule infostealer_win_stealc_behaviour {
meta:
malware = "Stealc"
description = "Find Stealc sample based characteristic behaviors"
source = "SEKOIA.IO"
reference = "https://blog.sekoia.io/stealc-a-copycat-of-vidar-and-raccoon-infostealers-gaining-in-popularity-part-1/"
classification = "TLP:CLEAR"
hash = "3feecb6e1f0296b7a9cb99e9cde0469c98bd96faed0beda76998893fbdeb9411"
condition:
for any cmd in vt.behaviour.command_executions : (
cmd contains "\\*.dll"
) and
for any cmd in vt.behaviour.command_executions : (
cmd contains "/c timeout /t 5 & del /f /q"
) and
for any c in vt.behaviour.http_conversations : (
c.url contains ".php"
)
}
Règles Suricata
Les signatures Suricata sont disponibles sur le référentiel github de Sekoia.io.
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"SEKOIA.IO Malware Stealc POST request: hwid, build"; \
flow:established,to_server; http.method; content:"POST"; http.uri; content:".php"; depth:21; http.content_type; \
content:"multipart/form-data|3B| boundary=----"; http.request_body; content:"Content-Disposition: form-data|3B| name=|22|hwid|22|"; \
offset: 26 ; depth: 45; content:"Content-Disposition: form-data|3B| name=|22|build|22|"; reference:url, \
blog.sekoia.io/stealc-a-copycat-of-vidar-and-raccoon-infostealers-gaining-in-popularity-part-1/; \
classtype:trojan-activity; sid:001; rev:1; metadata:created_at 2023_02_17, updated_at 2023_02_17;)
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"SEKOIA.IO Malware Stealc POST request: token, message"; \
flow:established,to_server; http.method; content:"POST"; http.uri; content:".php"; depth:21; http.content_type; \
content:"multipart/form-data|3B| boundary=----"; http.request_body; content:"Content-Disposition: form-data|3B| \
name=|22|token|22|"; offset: 26 ; depth: 46; content:"Content-Disposition: form-data|3B| name=|22|message|22|"; \
threshold: type limit, track by_src, seconds 180, count 1; reference:url, \
blog.sekoia.io/stealc-a-copycat-of-vidar-and-raccoon-infostealers-gaining-in-popularity-part-1/; \
classtype:trojan-activity; sid:002; rev:1; metadata:created_at 2023_02_17, updated_at 2023_02_17;)
MITRE ATT&CK TTPs
Tactic | Technique |
Execution | T1059.003 – Command and Scripting Interpreter: Windows Command Shell |
Execution | T1106 – Native API |
Execution | T1129 – Shared Modules |
Defence Evasion | T1027 – Obfuscated Files or Information |
Defence Evasion | T1027.007 – Obfuscated Files or Information: Dynamic API Resolution |
Defense Evasion | T1036 – Masquerading |
Defense Evasion | T1055 – Process Injection |
Defense Evasion | T1070 – Indicator Removal: File Deletion |
Defense Evasion | T1140 – Deobfuscate/Decode Files or Information |
Defense Evasion | T1622 – Debugger Evasion |
Credential Access | T1539 – Steal Web Session Cookie |
Credential Access | T1552.001 – Unsecured Credentials: Credentials In Files |
Credential Access | T1555.003 – Credentials from Password Stores: Credentials from Web Browsers |
Discovery | T1012 – Query Registry |
Discovery | T1016 – System Network Configuration Discovery |
Discovery | T1057 – Process Discovery |
Discovery | T1082 – System Information Discovery |
Discovery | T1083 – File and Directory Discovery |
Discovery | T1518 – Software Discovery |
Discovery | T1614 – System Location Discovery |
Collection | T1005 – Data from Local System |
Collection | T1113 – Screen Capture |
Collection | T1119 – Automated Collection |
Collection | T1132.001 – Data Encoding: Standard Encoding |
Command and Control | T1071.001 – Application Layer Protocol: Web Protocols |
Command and Control | T1105 – Ingress Tool Transfer |
Exfiltration | T1020 – Automated Exfiltration |
Exfiltration | T1041 – Exfiltration Over C2 Channel |
Merci d’avoir lu cet article de blog. Vous pouvez également consulter d’autres résultats d’enquêtes réalisées par nos analystes sur l’écosystème des infostealers :
- Raccoon Stealer v2 – Part 1: The return of the dead
- Raccoon Stealer v2 – Part 2: In-depth analysis
- Aurora: a rising stealer flying under the radar
- New RisePro Stealer distributed by the prominent PrivateLoader
- BlueFox Stealer: a newcomer designed for traffers teams
- EternityTeam: a new prominent threat group on underground forums
- Traffers: a deep dive into the information stealer ecosystem
- Unveiling of a large resilient infrastructure distributing information stealers
- Peeking at Reaper’s surveillance operations