Cet article met en lumière l’écosystème actuel du cheval de Troie de porte dérobée Sathurbot en exposant son utilisation de torrents comme moyen de diffusion et de techniques de force brute contre les comptes administrateurs WordPress faiblement protégés.

Torrent parasité

Vous désirez télécharger un film ou un logiciel sans en payer le prix? Cela pourrait s’avérer risqué. Votre moteur de recherche de prédilection envoie peut-être vos requêtes de torrents vers des sites qui n’ont rien à voir avec le partage de fichiers. Il est possible qu’il s’agisse de pages WordPress qui ont été compromises.

Voici quelques exemples de résultats de recherches :

Exemple de résultats de recherche

D'autres exemples de résultats de recherche

Quelques exemples de résultats de recherche

Certains de ces liens renvoient vers les pages ci-dessous (notez l’usage de protocole HTTPS) :

Pages auxquelles mènent les liens ci-hauts

Pages auxquelles mènent les liens ci-hauts

Pages auxquelles mènent les liens ci-hauts

Pages auxquelles mènent les liens ci-hauts

Pages auxquelles mènent les liens ci-hauts

Les diverses sous-pages de recherche de film renvoient toutes vers le même fichier torrent, alors que les sous-pages de recherche de logiciel mènent à un autre fichier. Lorsque vous faites des recherches sur votre client torrent privilégié, le fichier sera bien amorcé et vous semblera donc sûr. Si vous téléchargez un torrent de film, le fichier contiendra une extension vidéo avec programme d’installation codec, de même qu’un fichier texte explicatif. Le torrent de logiciel contiendra quant à lui un exécutable du programme d’installation et un petit fichier texte. La victime exécutera l’un de ces fichiers, lequel téléchargera la bibliothèque de liens dynamiques Sathurbot.

Après le lancement de l’exécutable, des messages comme ceux-ci apparaissent :

Après le lancement de l’exécutable, des messages comme ceux-ci apparaissent

Après le lancement de l’exécutable, des messages comme ceux-ci apparaissent

Alors que vous vous demandez ce que vous pourriez faire, les choses commencent à mal tourner. Vous êtes maintenant un robot dans le réseau Sathurbot.

Porte dérobée et téléchargeur

Au démarrage, Sathurbot récupère son serveur de commande et de contrôle en faisant une requête DNS. La réponse revient sous forme d’enregistrement TXT DNS. La chaîne hexadécimale est décodée et utilisée comme nom de serveur de commande et de contrôle pour les rapports d’état et la récupération par tâche, et pour le téléchargement d’autres maliciels.

Sathurbot peut se mettre à jour lui-même et télécharger et exécuter d’autres exécutables. Nous avons entre autres remarqué diverses versions de BoaxxeKovter et Fleercivet.

Sathurbot informe périodiquement le serveur de commande et de contrôle de la réussite de son installation, puis lui envoie un port d’écoute ainsi qu’un rapport de son état dans l’attente de tâches à effectuer.

Robot d’indexation

Sathurbot contient plus de 5000 mots génériques de base. Ils sont liés aléatoirement pour former des combinaisons de 2 à 4 mots utilisées comme chaînes d’interrogation sur les moteurs de recherche Google, Bing et Yandex.

À partir de chaque page liée aux URL du résultat de la recherche, une séquence aléatoire de 2 à 4 mots est sélectionnée (plus compréhensible que la précédente puisqu’elle est tirée d’un texte) et utilisée pour les requêtes suivantes.

Les résultats de la deuxième recherche (trois premières pages) sont enfin recueillis pour servir de noms de domaine.

Les noms de domaine extraits font ensuite l’objet d’un examen puisqu’ils ont été créés avec l’infrastructure de WordPress. Le truc est de vérifier la réponse de l’URL http://[domain_name]/wp-login.php.

La page d’index de niveau supérieur du domaine est ensuite extraite et examinée pour déceler toute trace d’une autre infrastructure, notamment : Drupal, Joomla, PHP-NUKE, phpFox et DedeCMS.

La page d’index de niveau supérieur du domaine est ensuite extraite et examinée pour déceler toute trace d’une autre infrastructure

Au démarrage ou à intervalles réguliers, les domaines recueillis sont envoyés vers le serveur de commande et de contrôle (un domaine différent, codé en dur, de celui utilisé pour la porte dérobée).

Attaque par distribution de mots de passe WordPress

Le client peut maintenant recevoir une liste des informations d’identification d’accès au domaine (présenté ainsi : login:password@domain) pour l’examiner et obtenir les mots de passe. Les informations d’identification sont testées par différents robots du réseau de zombies de Sathurbot sur un même site. Chaque robot n’effectue qu’une seule tentative de connexion sur un site, puis passe au suivant. Cette astuce permet d’éviter que l’adresse IP du robot se retrouve sur la liste noire d’un site ciblé par l’attaque afin de pouvoir y revenir.

Chaque robot n’effectue qu’une seule tentative de connexion sur un site, puis passe au suivant

Lors de nos tests, des listes totalisant 10 000 liens à examiner nous ont été retournées par le serveur de commande et de contrôle.

Exemples de liste de liens à examiner nous ont été retournées par le serveur de commande et de contrôle

Listes de liens à examiner retournées par le serveur de commande et de contrôle

En ce qui concerne l’attaque, l’API RPC XML de WordPress est utilisée. Pour être plus précis, on parle de l’emploi abusif de l’API wp.getUsersBlogs. Une requête type ressemble à ce qui suit :

Exemple de requête type

Exemple de requête type

La séquence d’un examen d’informations d’identification d’un domaine est représentée dans l’image suivante :

La réponse est ensuite analysée et les résultats sont envoyés au serveur de commande et de contrôle.

Torrent : client – amorceur

Une des tâches du robot est de devenir un amorceur; c’est pourquoi une bibliothèque libtorrent est intégrée. Un fichier binaire est donc téléchargé, puis le torrent créé et amorcé.

Un fichier binaire est donc téléchargé, puis le torrent créé et amorcé

Un fichier binaire est donc téléchargé, puis le torrent créé et amorcé

L’amorce de BitTorrent

Voici la représentation d’un cycle du parasite à l’amorceur involontaire.

Représentation d’un cycle du parasite à l’amorceur involontaire.

Représentation d’un cycle du parasite à l’amorceur involontaire.

Remarque : Les robots d’un réseau ne remplissent pas nécessairement toutes les fonctions. Certains ne sont que des robots d’indexation, d’autres ne font qu’attaquer l’API RPC XML, tandis que d’autres encore font les deux. De plus, il semble qu’ils ne soient pas tous responsables d’amorcer un torrent.

Répercussions

Les tentatives mentionnées ci-dessus sur /wp-login.php à partir d’une multitude d’utilisateurs, même sur des sites Web qui ne sont pas pris en charge par WordPress, sont directement liées à Sathurbot. Nombreux sont les administrateurs Web qui observent la chose et se demandent pourquoi cela survient. Par ailleurs, les sites WordPress peuvent connaître les attaques potentielles en consultant wp.getUsersBlogs dans leurs journaux.

Selon l’analyse des journaux, des artéfacts du système et des fichiers, le réseau de zombies compte plus de 20 000 ordinateurs infectés et est actif depuis au moins juin 2016.

Des liens torrent ont parfois été envoyés par courriel.

Détection

Administrateurs Web : Vérifiez l’existence de sous-pages ou de répertoires inconnus sur le serveur. S’ils contiennent des références à des offres de téléchargement de torrent, vérifiez les journaux pour déceler toute attaque ou porte dérobée.

Utilisateurs : Lancez Wireshark avec le filtre http.request sans ouvrir de navigateur Web pour voir si vous obtenez beaucoup de réponses du genre GET /wp-login.php ou POST /xmlrpc.php. Autrement, cherchez tout fichier ou toute entrée de registre présentés dans la liste d’indicateurs de compromission ci-dessous.

Les utilisateurs d’ESET sont protégés contre cette menace à de nombreux égards.

Retrait

Administrateurs Web : Changez les mots de passe, supprimez les sous-pages qui n’ont pas de lien avec le site et, si vous le désirez, réinitialisez et restaurez le site après avoir effectué une sauvegarde.

Utilisateurs : Trouvez le fichier .dll suspect à l’aide d’un gestionnaire de fichiers tiers (veuillez noter que les fichiers et répertoires sont masqués), ouvrez l’Explorateur de processus ou le Gestionnaire de tâches, kill explorer.exe ou rundll32.exe, supprimez (quarantaine) le fichier .dll, puis redémarrez l’ordinateur.

Remarque : Cette opération ne supprimera que Sathurbot; les maliciels supplémentaires possiblement téléchargés ne seront pas touchés.

Il est conseillé de se doter d’une protection complète anti-maliciels, ou du moins d’exécuter une analyse virale en ligne.

Prévention

Administrateurs Web : Si l’API RPC XML n’est pas nécessaire au bon fonctionnement du site Web, nous vous conseillons de la désactiver et d’utiliser des mots de passe complexes.

Utilisateurs : Évitez de lancer des exécutables provenant de sources autres que celles des développeurs initiaux, et ne téléchargez pas de fichiers d’autres sites que ceux dont le but précis est le partage de fichiers.

Indicateurs de compromission

Jusqu’à maintenant, nous avons constaté l’installation de Sathurbot dans les fichiers suivants :

\ProgramData\Microsoft\Performance\Monitor\PerformanceMonitor.dll

\ProgramData\Microsoft\Performance\TheftProtection\TheftProtection.dll

\ProgramData\Microsoft\Performance\Monitor\SecurityHelper.dll

\Users\*****\AppData\Local\Microsoft\Protect\protecthost.dll

Il est lancé dans le processus rundll32.exe ou explorer.exe et verrouille les fichiers et les clés de registre pour empêcher toute modification. Il est présent en version x32 ou x64 bits dans l’installateur.

Sous-fichiers des fichiers ci-dessus (contiennent des fichiers de torrent amorceur) :
\SecurityCache\cache\resume\
\SecurityCache\cache\rules\
\SecurityCache\data\
\SecurityCache\zepplauncher.mif – contient les nœuds des hypertextes dynamiques
\temp\

%appdata%\SYSHashTable\ – contient les fichiers avec les empreintes numériques des domaines visités
%appdata%\SYSHashTable\SyshashInfo.db – liste des domaines intéressants trouvés incluant des renseignements sur l’architecture

Échantillons (SHA-1)

Programmes d’installation :
2D9AFB96EAFBCFCDD8E1CAFF492BFCF0488E6B8C
3D08D416284E9C9C4FF36F474C9D46F3601652D5
512789C90D76785C061A88A0B92F5F5778E80BAA
735C8A382400C985B85D27C67369EF4E7ED30135
798755794D124D00EAB65653442957614400D71D
4F52A4A5BA897F055393174B3DFCA1D022416B88
8EDFE9667ECFE469BF88A5A5EBBB9A75334A48B9
5B45731C6BBA7359770D99124183E8D80548B64F
C0F8C75110123BEE7DB5CA3503C3F5A50A1A055E
C8A514B0309BCDE73F7E28EB72EB6CB3ABE24FDD
AF1AE760F055120CA658D20A21E4B14244BC047D
A1C515B965FB0DED176A0F38C811E6423D9FFD86
B9067085701B206D2AC180E82D5BC68EDD584A8B
77625ADEA198F6756E5D7C613811A5864E9874EA

Bibliothèque de liens dynamiques Sathurbot :

F3A265D4209F3E7E6013CA4524E02D19AAC951D9
0EA717E23D70040011BD8BD0BF1FFAAF071DA22C
2381686708174BC5DE2F04704491B331EE9D630B
2B942C57CEE7E2E984EE10F4173F472DB6C15256
2F4FAA5CB5703004CA68865D8D5DACBA35402DE4
4EBC55FDFB4A1DD22E7D329E6EF8C7F27E650B34
0EF3ECD8597CE799715233C8BA52D677E98ABDFD
0307BBAC69C54488C124235449675A0F4B0CCEFA
149518FB8DE56A34B1CA2D66731126CF197958C3
3809C52343A8F3A3597898C9106BA72DB7F6A3CB
4A69B1B1191C9E4BC465F72D76FE45C77A5CB4B0
5CCDB41A34ADA906635CE2EE1AB4615A1AFCB2F2
6C03F7A9F826BB3A75C3946E3EF75BFC19E14683
8DA0DC48AFB8D2D1E9F485029D1800173774C837
AC7D8140A8527B8F7EE6788C128AFF4CA92E82C2
E1286F8AE85EB8BD1B6BE4684E3C9E4B88D300DB

Charges supplémentaires :

C439FC24CAFA3C8008FC01B6F4C39F6010CE32B6
ABA9578AB2588758AD34C3955C06CD2765BFDF68
DFB48B12823E23C52DAE03EE4F7B9B5C9E9FDF92
FAFF56D95F06FE4DA8ED433985FA2E91B94EE9AD
B728EB975CF7FDD484FCBCFFE1D75E4F668F842F
59189ABE0C6C73B66944795A2EF5A2884715772E
C6BDB2DC6A48136E208279587EFA6A9DD70A3FAA
BEAA3159DBE46172FC79E8732C00F286B120E720
5ED0DF92174B62002E6203801A58FE665EF17B76
70DFABA5F98B5EBC471896B792BBEF4DB4B07C53
10F92B962D76E938C154DC7CBD7DEFE97498AB1E
426F9542D0DDA1C0FF8D2F4CB0D74A1594967636
AA2176834BA49B6A9901013645C84C64478AA931
1C274E18A8CAD814E0094C63405D461E815D736A
61384C0F690036E808F5988B5F06FD2D07A87454
F32D42EF1E5ED221D478CFAA1A76BB2E9E93A0C1
594E098E9787EB8B7C13243D0EDF6812F34D0FBA
1AAFEBAA11424B65ED48C68CDEED88F34136B8DC
BA4F20D1C821B81BC324416324BA7605953D0605
E08C36B122C5E8E561A4DE733EBB8F6AE3172BF0
7748115AF04F9FD477041CB40B4C5048464CE43E
3065C1098B5C3FC15C783CDDE38A14DFA2E005E4
FA25E212F77A06C0B7A62C6B7C86643660B24DDA
FADADFFA8F5351794BC5DCABE301157A4A2EBBCF
B0692A03D79CD2EA7622D3A784A1711ADAABEE8D
9411991DCF1B4ED9002D9381083DE714866AEA00

Domaines associés

DNS :
zeusgreekmaster.xyz
apollogreekmaster.xyz

SERVEUR DE COMMANDE ET DE CONTRÔLE :
jhkabmasdjm2asdu7gjaysgddasd.xyz
boomboomboomway.xyz
mrslavelemmiwinkstwo.xyz
uromatalieslave.space
newforceddomainisherenow.club
justanotherforcedomain.xyz
artemisoslave.xyz
asxdq2saxadsdawdq2sasaddfsdfsf4ssfuckk.xyz
kjaskdhkaudhsnkq3uhaksjndkud3asds.xyz
badaboommail.xyz

Traqueurs de torrent :
badaboomsharetracker.xyz
webdatasourcetraffic.xyz
sharetorrentsonlinetracker.xyz
webtrafficsuccess.xyz

Valeurs du registre

Vous aurez peut-être besoin d’un autre outil, car Windows Regedit pourrait ne pas vous signaler ce qui suit :

HKLM\SYSTEM\CurrentControlSet\services\SharedAccess\Parameters\FirewallPolicy\FirewallRules\{variable GUID} = “v2.10|Action=Allow|Active=TRUE|Dir=In|Profile=Private|Profile=Public|App=C:\\Windows\\explorer.exe|Name=Windows Explorer|”

HKLM\SYSTEM\CurrentControlSet\services\SharedAccess\Parameters\FirewallPolicy\FirewallRules\{variable GUID} = “v2.10|Action=Allow|Active=TRUE|Dir=In|Profile=Private|Profile=Public|App=C:\\Windows\\system32\\rundll32.exe|Name=Windows host process (Rundll32)|”

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\0TheftProtectionDll = {GUID1}
HKLM\SOFTWARE\Classes\CLSID\{GUID1} = “Windows Theft Protection”
HKLM\SOFTWARE\Classes\CLSID\{GUID1}\InprocServer32 = “C:\\ProgramData\\Microsoft\\Performance\\TheftProtection\\TheftProtection.dll”
HKLM\SOFTWARE\Classes\CLSID\{GUID1}\InprocServer32\ThreadingModel = “Apartment”

HKLM\SOFTWARE\Classes\CLSID\{GUID2}

Les entrées {GUID2} varient d’un échantillon à l’autre. Elles ont des sous-clés de 6 caractères, possèdent un contenu chiffré de type binaire et sont utilisées pour enregistrer des variables, des valeurs temporaires ainsi que des paramètres, des adresses IP, des serveurs de commande et de contrôle et des UID.

Voici à quoi peut ressembler une entrée {GUID2} :

HKLM\SOFTWARE\Classes\CLSID\{8E577F7E-03C2-47D1-B4C0-BCE085F78F66}\00000003
HKLM\SOFTWARE\Classes\CLSID\{8E577F7E-03C2-47D1-B4C0-BCE085F78F66}\00000002
HKLM\SOFTWARE\Classes\CLSID\{8E577F7E-03C2-47D1-B4C0-BCE085F78F66}\00000001
HKLM\SOFTWARE\Classes\CLSID\{8E577F7E-03C2-47D1-B4C0-BCE085F78F66}\00000009
HKLM\SOFTWARE\Classes\CLSID\{8E577F7E-03C2-47D1-B4C0-BCE085F78F66}\00000011
HKLM\SOFTWARE\Classes\CLSID\{8E577F7E-03C2-47D1-B4C0-BCE085F78F66}\00010001
HKLM\SOFTWARE\Classes\CLSID\{8E577F7E-03C2-47D1-B4C0-BCE085F78F66}\00010002
HKLM\SOFTWARE\Classes\CLSID\{8E577F7E-03C2-47D1-B4C0-BCE085F78F66}\00000008
HKLM\SOFTWARE\Classes\CLSID\{8E577F7E-03C2-47D1-B4C0-BCE085F78F66}\00000007
HKLM\SOFTWARE\Classes\CLSID\{8E577F7E-03C2-47D1-B4C0-BCE085F78F66}\00000004
HKLM\SOFTWARE\Classes\CLSID\{8E577F7E-03C2-47D1-B4C0-BCE085F78F66}\00000010
HKLM\SOFTWARE\Classes\CLSID\{8E577F7E-03C2-47D1-B4C0-BCE085F78F66}\00020001