Une étude de la nouvelle porte dérobée du cybergroupe TeleBots derrière l'épidémie de l'encodeur NotPetya a révélé une similitude significative entre le code et la porte dérobée principale d'Industroyer, ce qui confirme la relation qui était précédemment rumeur.
Parmi les cyber-incidents les plus importants de ces dernières années figurent les
attaques contre
les entreprises énergétiques ukrainiennes et l'
épidémie de l'encodeur NotPetya . Dans un article, nous examinerons la relation entre ces événements.
La première panne de courant massive causée par une cyberattaque de l'histoire s'est produite en décembre 2015, en raison du
logiciel malveillant
BlackEnergy . Les spécialistes ESET ont
suivi l' activité du groupe ART à l'aide de BlackEnergy, avant et après cet événement. Après le black-out de 2015, le groupe a apparemment désactivé le travail actif avec BlackEnergy et est devenu ce que nous appelons maintenant les
TeleBots .
Il convient de noter ici que lorsque nous parlons du groupe ART, nous entendons des indicateurs techniques communs: similitude de code, infrastructure de réseau commun (C&C), chaînes d'exécution de logiciels malveillants, etc. En règle générale, nous ne participons pas directement à l'enquête et à l'identification des développeurs ou opérateurs. Le terme «groupe ART» n'a pas de définition claire et est souvent utilisé pour caractériser les paramètres des logiciels malveillants. Pour ces raisons, nous nous abstenons de spéculer sur la source des attaques, l'identité nationale ou étatique des assaillants.
Dans tous les cas, nous avons trouvé un lien entre les attaques BlackEnergy (visant les sociétés énergétiques ukrainiennes, ainsi que d'autres industries et sites de haut rang) et les campagnes du groupe TeleBots (principalement contre le secteur financier ukrainien).
En juin 2017, des entreprises du monde entier ont souffert de la
vipère Diskcoder.C (mieux connue sous le nom de Petya / NotPetya) - la nature massive de l'infection, apparemment, était une sorte d'effet secondaire. En étudiant l'incident, nous avons constaté que les entreprises infectées par la
porte dérobée du groupe TeleBots sont devenues le «patient zéro» de cette épidémie grâce au compromis du logiciel de comptabilité MEDoc, populaire dans les entreprises ukrainiennes.
La question est de savoir ce que l'
Industroyer a à voir avec cette histoire - un complexe malveillant complexe qui a provoqué la panne d'électricité à Kiev en décembre 2016. Immédiatement après la publication du rapport ESET, certaines sociétés de sécurité de l'information et certains médias ont suggéré qu'Industroyer avait également développé le groupe BlackEnergy / TeleBots (parfois aussi appelé Sandworm). Cependant, aucune preuve n'a été présentée à ce jour.
En avril 2018, nous avons enregistré une nouvelle activité du groupe TeleBots - une tentative de déploiement d'une nouvelle
porte dérobée Win32 / Exaramel . Notre analyse a montré que cette porte dérobée est une version améliorée de la porte dérobée principale d'Industroyer - qui était la première preuve.

Analyse de porte dérobée Win32 / Exaramel
La porte dérobée Win32 / Exaramel est initialement installée à l'aide d'un compte-gouttes. Selon les métadonnées de dropper, la porte dérobée a été compilée dans Microsoft Visual Studio immédiatement avant le déploiement sur un ordinateur compromis particulier.
Figure 1. Horodatage PE du compte-gouttes de porte dérobée Win32 / ExaramelAprès l'exécution, le compte-gouttes place le binaire Win32 / Exaramel dans le répertoire système Windows et démarre le service Windows avec le nom
wsmproav
avec la description «Windows Check AV». Le nom de fichier et la description du service Windows sont codés en dur dans le compte-gouttes.
Figure 2. Paramètres de registre de service Windows créés par la porte dérobée Win32 / ExaramelDe plus, le dropper écrit la configuration de la porte dérobée dans le registre Windows au format XML.
Figure 3. Configuration XML de Win32 / ExaramelLa configuration se compose de plusieurs blocs:
-
Intervalle - temps en millisecondes utilisé pour la fonction Sleep
-
Serveurs - liste des serveurs de commandes (C&C)
-
Vérifier - un site Web utilisé pour déterminer si un hôte a accès à Internet
-
Proxy - serveur proxy dans le réseau hôte
-
Stockage - le chemin utilisé pour stocker les fichiers destinés à l'exfiltration
Comme vous pouvez le voir sur la première ligne de la configuration, les attaquants regroupent les cibles en fonction des produits antivirus utilisés. Une approche similaire est utilisée dans le complexe Industroyer - en particulier, certains backdoors Industroyer ont également été déguisés en un service antivirus (déployé sous le nom
avtask.exe
) et ont utilisé la même approche pour le regroupement.
Un autre fait intéressant est que la porte dérobée utilise des serveurs C&C dont les noms de domaine imitent les domaines appartenant à ESET. En plus de
esetsmart[.]org
de la configuration ci-dessus, nous avons trouvé un domaine similaire
um10eset[.]net
, qui était utilisé par la version Linux récemment ouverte du logiciel malveillant TeleBots. Il est important de noter que ces serveurs contrôlés par des attaquants ne sont pas liés à l'
infrastructure réseau ESET légitime . À l'heure actuelle, nous n'avons pas trouvé qu'Exaramel utilise des domaines qui imitent l'infrastructure d'autres sociétés de sécurité de l'information.
Après le démarrage, la porte dérobée établit une connexion avec le serveur C&C et reçoit les commandes à exécuter dans le système. Voici une liste des commandes disponibles:
- Démarrage du processus
- Démarrage d'un processus à partir d'un utilisateur Windows spécifique
- Écriture de données dans un fichier à un chemin donné
- Copiez le fichier dans le sous-répertoire de stockage (Télécharger le fichier)
- Exécutez une commande shell
- Exécutez une commande shell à partir d'un utilisateur Windows spécifique
- Exécutez le code VBS à l'aide de
MSScriptControl.ScriptControl.1
Le code du cycle de commande et l'implémentation des six premières commandes dans Win32 / Exaramel est très similaire à la porte dérobée du progiciel Industroyer.
Figure 4. Comparaison du code de porte dérobée Win32 / Exaramel décompilé (à gauche) et Win32 / Industroyer (à droite)Les deux familles de logiciels malveillants utilisent un fichier de rapport pour stocker la sortie des commandes shell exécutées et des processus en cours d'exécution. Dans le cas de la porte dérobée Win32 / Industroyer, le fichier de rapport est stocké dans un dossier temporaire avec un nom aléatoire; dans Win32 / Exaramel, le fichier de rapport est appelé
report.txt
et son chemin vers le référentiel est spécifié dans le fichier de configuration de porte dérobée.
Pour rediriger la sortie standard (stdout) et l'erreur standard (stderr) vers le fichier de rapport, les deux portes dérobées définissent les paramètres
hStdOutput
et
hStdError
sur le descripteur de fichier de rapport. Il s'agit d'une autre similitude entre ces familles de logiciels malveillants.
Figure 5. Comparaison du code de porte dérobée Win32 / Exaramel et Win32 / Industroyer décompilé, respectivementSi les opérateurs de logiciels malveillants veulent exfiltrer des fichiers de l'ordinateur de la victime, ils n'ont qu'à copier ces fichiers dans un sous-répertoire du chemin de stockage de
data
spécifié dans la configuration. Avant d'établir une nouvelle connexion avec le serveur C&C, la porte dérobée compressera et cryptera automatiquement ces fichiers avant de les envoyer.
La principale différence entre la porte dérobée Industroyer et la nouvelle porte dérobée TeleBots est que cette dernière utilise le format XML pour la communication et les configurations au lieu du format binaire personnalisé.
Outils de vol de mot de passe malveillants
En collaboration avec Exaramel, le groupe TeleBots utilise certains des anciens outils, y compris un outil de vol de mot de passe (le nom interne est CredRaptor ou PAI) et Mimikatz légèrement modifié.
L'outil avancé de vol de mots de passe CredRaptor, utilisé uniquement par ce groupe depuis 2016, a été finalisé. Contrairement aux versions précédentes, il collecte les mots de passe enregistrés non seulement à partir des navigateurs, mais également à partir d'Outlook et d'un certain nombre de clients FTP. Voici une liste des applications prises en charge:
- FTP BitKinex
- Client FTP BulletProof
- FTP classique
- CoffeeCup
- Core FTP
- Cryer WebSitePublisher
- CuteFTP
- Gestionnaire FAR
- filezilla
- FlashFXP
- frégate3
- FTP Commander
- FTP Explorer
- Navigateur FTP
- Google Chrome
- Internet Explorer 7-11
- Mozilla Firefox
- Opéra
- Perspectives 2010, 2013, 2016
- SmartFTP
- Client FTP SoftX
- Total Commander
- TurboFTP
- Windows Vault
- WinSCP
- Client WS_FTP
Les améliorations permettent aux attaquants de collecter des données à partir des comptes des webmasters de sites Web et des serveurs de l'infrastructure interne. Ayant accès à ces serveurs, vous pouvez installer des portes dérobées supplémentaires. Assez souvent, ces serveurs ont un système d'exploitation autre que Windows installé, donc les attaquants doivent adapter les portes dérobées.
Lors de la réponse à l'incident, nous avons découvert la porte dérobée Linux de TeleBots -
Linux / Exaramel.A .
Analyse de porte dérobée Linux / Exaramel
La porte dérobée est écrite dans le langage de programmation Go et compilée en tant que binaire ELF 64 bits. Les attaquants peuvent déployer une porte dérobée dans le répertoire sélectionné sous n'importe quel nom.
Si la porte dérobée est exécutée par des attaquants avec la chaîne «none» comme argument de ligne de commande, elle essaie d'utiliser des mécanismes de persistance pour démarrer automatiquement après un redémarrage. Si la porte dérobée ne fonctionne pas sous le compte root, elle utilise le fichier
crontab
. Cependant, s'il est exécuté en tant que root, il prend en charge divers systèmes d'
init
Linux. Il détermine quel système d'
init
est actuellement utilisé en exécutant la commande:
strings /sbin/init | awk 'match($0, /(upstart|systemd|sysvinit)/){ print substr($0, RSTART, RLENGTH);exit; }'
Selon le résultat, la porte dérobée utilise les emplacements codés en dur suivants pour garantir la persistance (ci-après dénommé le système Init et son emplacement):
sysvinit - /etc/init.d/syslogd
upstart - /etc/init/syslogd.conf
systemd - /etc/systemd/system/syslogd.service
Au démarrage, la porte dérobée essaie d'ouvrir le fichier de configuration, qui est stocké dans le même répertoire que la porte dérobée, sous le nom
config.json
. Si le fichier de configuration n'existe pas, un nouveau fichier est créé. La configuration est chiffrée à l'aide de la clé
s0m3t3rr0r et de l'algorithme RC4.
Figure 6. Configuration JSON de porte dérobée Linux / Exaramel déchiffréeLa porte dérobée se connecte à C&C codé en dur (par défaut, 176.31.225 [.] 204 dans l'exemple que nous avons vu) ou au serveur C & C spécifié dans le fichier de configuration en tant
Hosts
. Les communications se font via HTTPS. La porte dérobée prend en charge les commandes suivantes:
App.Update - mise à jour vers la nouvelle version
App.Delete - auto-
suppression du système
App.SetProxy - définir les paramètres du serveur proxy dans la configuration
App.SetServer - mise à jour du serveur C&C dans la configuration
App.SetTimeout - définition de la valeur du délai d'expiration (intervalles entre les connexions au serveur C & C)
IO.WriteFile - téléchargement d'un fichier à partir d'un serveur distant
IO.ReadFile -
téléchargement d'un fichier depuis un disque local vers un serveur C & C
OS.ShellExecute - exécuter une commande shell
Conclusion
L'ouverture d'Exaramel montre que le groupe TeleBots reste actif en 2018, et les attaquants continuent d'améliorer les tactiques et les outils.
Les similitudes importantes entre le code Win32 / Exaramel et la porte dérobée principale d'Industroyer sont les premières preuves présentées publiquement reliant Industroyer au groupe TeleBots et, par conséquent, aux cybercampagnes NotPetya et BlackEnergy. Lors de l'établissement d'un lien entre les sources des cyberattaques, il convient d'envisager la possibilité d'une erreur ou d'une tromperie délibérée, mais dans ce cas, nous considérons cela comme improbable.
Il est à noter que les versions Win32 et Linux de la porte dérobée Exaramel ont été découvertes dans une organisation qui n'est pas liée à l'industrie. Les experts d'ESET ont signalé la découverte aux autorités d'enquête ukrainiennes, de sorte que l'attaque a été localisée et empêchée en temps opportun.
ESET continue de surveiller l'activité de ce cybergroupe.
Indicateurs de compromis (IoC)
Détection ESET
Win32/Exaramel trojan
Win32/Agent.TCD trojan
Linux/Agent.EJ trojan
Linux/Exaramel.A trojan
Win32/PSW.Agent.OEP trojan
Win32/RiskWare.Mimikatz.Z application
Win64/Riskware.Mimikatz.AI application
Hachage SHA-1
TeleBots de Backgroup Win32 / Exaramel Cybergroup65BC0FF4D4F2E20507874F59127A899C26294BC7
3120C94285D3F86A953685C189BADE7CB575091D
Outil de vol de mot de passeF4C4123849FDA08D1268D45974C42DEB2AAE3377
970E8ACC97CE5A8140EE5F6304A1E7CB56FA3FB8
DDDF96F25B12143C7292899F9D5F42BB1D27CB20
64319D93B69145398F9866DA6DF55C00ED2F593E
1CF8277EE8BF255BB097D53B338FC18EF0CD0B42
488111E3EB62AF237C68479730B62DD3F52F8614
Mimikatz458A6917300526CC73E510389770CFF6F51D53FC
CB8912227505EF8B8ECCF870656ED7B8CA1EB475
Linux / ExaramelF74EA45AD360C8EF8DB13F8E975A5E0D42E58732
Serveurs C et C
um10eset[.]net (IP: 176.31.225.204)
esetsmart[.]org (IP: 5.133.8.46)