Pikabot est un cheval de Troie récemment découvert, et avec la mise à jour Sophos NDR de juin, nous avons ajouté un modèle d’apprentissage automatique supplémentaire pour détecter le modèle de trafic chiffré des communications Pikabot suspectes. Cette capacité de détection a déjà été déployée sur les capteurs Sophos NDR et aucune mise à jour supplémentaire n’est requise.
Comment fonctionne Pikabot ?
En tant que cheval de Troie, Pikabot est modulaire, et comporte deux composants principaux : un chargeur (loader) et un module principal (core module). Le module principal exécute la majorité des fonctions du malware, tandis que le chargeur aide à mener à bien ses activités malveillantes 1.2.
Pikabot fonctionne comme une porte dérobée (backdoor), permettant ainsi un accès à distance non autorisé aux systèmes compromis. Il reçoit des commandes d’un serveur C2 (command-and-control), qui peuvent aller de l’injection de shellcode arbitraire, de DLL ou de fichiers exécutables jusqu’à la distribution d’autres outils malveillants tels que Cobalt Strike. Cette capacité signifie que Pikabot pourrait être un acteur puissant dans des attaques en plusieurs étapes.
Les commandes qu’il peut exécuter sont diverses, comme notamment l’exécution de commandes shell, la récupération et l’exécution de fichiers EXE ou DLL, l’envoi d’informations système supplémentaires, la modification de l’intervalle d’enregistrement (check-in interval) C2 et même une commande “destroy” qui n’est actuellement pas implémentée 1.
Distribution
Les premières analyses ont conduit les chercheurs à croire que Pikabot était distribué par le cheval de Troie Qakbot. Cependant, une étude plus approfondie a révélé que les méthodes de distribution de Pikabot étaient, tout simplement, identiques à celles de Qakbot. Les méthodes de distribution exactes restent quelque peu mystérieuses, mais des parallèles clairs avec les campagnes Qakbot connues ont été identifiés 1.
Le mode opératoire de Pikabot
La structure modulaire de Pikabot lui permet de mener diverses activités malveillantes. Bien que le composant chargeur ait des fonctionnalités limitées, le module principal est véritablement l’endroit où l’action réelle se produit. Pikabot déploie un injecteur pour exécuter des tests d’anti-analyse avant de déchiffrer et d’injecter la charge virale du module principal. Si l’un de ces tests échoue, Pikabot interrompt son exécution, rendant ainsi difficile pour les chercheurs d’analyser et de comprendre ses actions.
En termes de techniques d’anti-analyse, Pikabot vérifie la présence de ‘debuggers’, de points d’arrêt (breakpoints) et d’informations système. Il utilise des outils publics comme ADVobfuscator pour l’obfuscation des chaînes et dispose de nombreuses méthodes pour détecter les environnements sandbox, le débogage et d’autres tentatives d’analyse.
La charge virale du module principal est intelligemment chiffrée et stockée dans des images PNG. Ces images sont déchiffrées à l’aide d’une clé hardcodée de 32 octets, et les données déchiffrées sont ensuite traitées à l’aide d’AES (mode CBC). La charge virale est ensuite injectée dans un processus spécifique tel que WerFault, Pikabot définissant certains indicateurs pour protéger le processus injecté des binaires Microsoft non signés 2.
Découvertes intéressantes
L’une des caractéristiques intrigantes de Pikabot est sa capacité à s’arrêter automatiquement si la langue du système est le géorgien, le kazakh, l’ouzbek ou le tadjik. Cette caractéristique suggère que les auteurs peuvent délibérément éviter les systèmes dans des régions géographiques spécifiques. De plus, Pikabot semble en être aux premiers stades de développement, comme le suggère son numéro de version (0.1.7) trouvé dans sa communication initiale avec le serveur C2 2.
Il existe également des similitudes frappantes entre Pikabot et une autre famille de malware, Matanbuchus. Les deux sont écrits en C/C++, utilisent une décomposition chargeur/composant principal, emploient JSON+Base64+crypto pour le trafic et utilisent largement des chaînes hardcodées. Ces similitudes suggèrent un lien potentiel entre les deux familles de malware 1.
Infrastructure C2 Pikabot
Avec la mise à jour Sophos NDR de juin 2023, nous avons ajouté un modèle CNN pour détecter Pikabot et avons déjà découvert un certain nombre de nouveaux serveurs C2 :
IP | PORT | Virus Total | JARM |
192[.]9[.]135[.]73 | 1194 | Link | 21d19d00021d21d21c21d19d21d21dd188f9fdeea4d1b361be3a6ec494b2d2 |
185[.]87[.]148[.]132 | 1194 | Link | 21d19d00021d21d21c21d19d21d21dd188f9fdeea4d1b361be3a6ec494b2d2 |
45[.]154[.]24[.]57 | 2078 | Link | 21d19d00021d21d21c21d19d21d21dd188f9fdeea4d1b361be3a6ec494b2d2 |
45[.]85[.]235[.]39 | 2078 | Link | 21d19d00021d21d21c21d19d21d21dd188f9fdeea4d1b361be3a6ec494b2d2 |
129[.]153[.]135[.]83 | 2078 | Link | 21d19d00021d21d21c21d19d21d21dd188f9fdeea4d1b361be3a6ec494b2d2 |
193[.]122[.]200[.]171 | 2078 | Link | 21d19d00021d21d21c21d19d21d21dd188f9fdeea4d1b361be3a6ec494b2d2 |
104[.]233[.]193[.]227 | 2078 | Link | 21d19d00021d21d21c21d19d21d21dd188f9fdeea4d1b361be3a6ec494b2d2 |
94[.]199[.]173[.]6 | 2222 | Link | 21d19d00021d21d21c21d19d21d21dd188f9fdeea4d1b361be3a6ec494b2d2 |
132[.]148[.]79[.]222 | 2222 | Link | 21d19d00021d21d21c21d19d21d21dd188f9fdeea4d1b361be3a6ec494b2d2 |
38[.]54[.]33[.]239 | 2222 | Link | 21d19d00021d21d21c21d19d21d21dd188f9fdeea4d1b361be3a6ec494b2d2 |
144[.]172[.]126[.]136 | 2222 | Link | 21d19d00021d21d21c21d19d21d21dd188f9fdeea4d1b361be3a6ec494b2d2 |
129[.]80[.]164[.]200 | 32999 | Link | 21d19d00021d21d21c21d19d21d21dd188f9fdeea4d1b361be3a6ec494b2d2 |
129[.]153[.]22[.]231 | 32999 | Link | 21d19d00021d21d21c21d19d21d21dd188f9fdeea4d1b361be3a6ec494b2d2 |
REMARQUE : Les informations VirusTotal pour les détections Sophos sont retardées.
Billet inspiré de Deep dive into the Pikabot cyber threat, sur le Blog Sophos.