Catégories
conférences

BotConf 2022 J1


Apres une version en ligne en 2020, la BotConf revient en physique en 2022 du fait du décalage de date lié au pic épidémique de décembre-janvier dernier. Voici le liveblogging du jour 1.



Qbot: tlp

Amber donc ni stream ni liveblogging.

Takedown du RTM Botnet – group-IB

Un dossier qui a commencé en 2019 entre 5 pays: Russie, Ukraine, Singapour, Roumanie et Bulgarie. Les pays russophones sont connus pour exporter beaucoup de malwares vers l’ouest, en 2008 Zeus à révolutionné le paysage du crimeware bancaire. Les malwares de ces groupes russophones sont d’abord testés à domicile avant d’être propagé ailleurs. De plus les membres de ces groupes passent d’un groupe à l’autre de façon régulière.

« Fox », un cybercriminel dont une des attaques a été investiguée par la police Russe. Il a oublié de désactiver son VPN et à passé une commande de pizza à son domicile. Malheureusement la police n’avait pas assez de preuves pour le mettre sous les verrous, et il a créé le botnet RTM.

La compromission commence par un classique phishing RTM avec un module de reconnaissance. Le module vérifie si la machine est liée ou non à une entreprise financière. Si c’est le cas, il dépose le coeur de RTM. Sinon il drop un stealer PONY. La recon se base sur des noms d’exe liés à certaines banques ou certains outils bancaires.

Le second stage est le module coeur, dont la rétro-conception est disponible sur le whitepaper d’ESET. Il s’agit d’un malware assez classique avec un système de modules pour faire du scan, etc… La finalité de l’attaque c’est de procéder à un transfert de fond. Pour ce faire, RTM utilise un TeamViewer modifié pour utiliser le PC de la victime ou du RDP. Une fois les hooks placés, le bot prend la main sur les opérations effectuées sur le logiciel comptable, rendant invisible les manipulations des cybercriminels.

Les configurations du C2 des premières versions de RTM sont stockées chiffrées sur des pages web de sites sociaux anciens comme livejournal. Les cybercriminels ont en suite utilisé Bitcoin pour transmettre les IPs des C2 aux bots. Les derniers octets de deux transactions Bitcoin servent à indiquer l’IP, ce qui, en monitorant la blockchain, permet de suivre les changements d’IP des C2. Les IP de C2 indiqués dans la blockchain ne sont que des proxy, et les backends en Allemagne n’ont jamais changé.

Les autorités Allemandes peuvent procéder à la saisie, mais pas le mettre à disposition des analystes. Il a donc fallu trouver une solution pour sinkholer le botnet correctement sans interagir avec les machines compromises. Ils ont mis en place un wallet Bitcoin pour envoyer au bots via une transaction une nouvelle IP de C2. Il a fallut 2 ans de collecte de preuves avant d’avoir assez d’éléments pour arrêter les cybercriminels.

Private clubs for hackers: How private forums shape the malware market

Un juriste qui étudie la cybercriminalité doit comprendre aussi les éléments techniques en plus de la criminalité. L’objectif de l’institut ARCE était d’observer les cybercriminels en action. Ils se sont intéressés aux « romance scam », et aux comportements criminels sur les forums. Cette étude s’est faite en partenariat avec l’université de Montreal.

Sur ces forums, ils échangent leur savoir faire, et servent à initier des échanges qui mènent à des transactions entre cybercriminels. Ce qui fait de ces forums un point d’observation privilégié de la cybercriminalité. Les orateurs ont donc commencé à analyser un forum public et un forum privé, et ils ont croisés les données sur les malwares proposés à la vente et les informations accessibles en source ouverte sur ces derniers. Les malwares sur forums privés était moins biens « documentés » que ceux sur les forums publics.

Les forums privés se distinguent principalement par un affichage plus ouvert des activités cybercriminelles, ainsi que par beaucoup de malwares mis à disposition gratuitement. Il y a un shift des forums, vers des canaux plus privés et selects.

Operation gambling puppet

L’investigation est partie d’un sample XNote connecté a l’opération drbcontrol. Ils ont trouvé des samples de différents malwares, trouvé les targets, etc ce qui à donné le talk actuel.

L’infection initiale commence par une application de messagerie sécurisée basée sur Electron. Le electron-main.js référence la charge utile malveillante. Après on a du PlugX avec du dll side loading. En fonction de la plateforme on peut aussi avoir un rat mac nommé oRAT. L’autre vecteur d’infection commence par une XSS sur un site légitime redirigeant vers un faux installeur Flash. La XSS contient du code d’affichage en chinois parlant d’une variante flash dépassée. En chine Adobe autorise des tiers à distribuer l’installeur Flash alors qu’il n’est plus supporté. Autre vecteur: un DMG avec les scripts d’install d’oRAT.

Le toolkit Windows est riche: Gobalt, Ghost, Plugx Cobaltstrike, Trochilus, Quasar RAT, AsyncRAT. Les nouveautés découvertes par Trend Micro vont faire l’objet de plus de détails.

Puppet Loader est une backdoor en 5 stages utilisant une version mal implémentée de RC4. Le coeur est dans un .BMP. L’implémentation de la fonction swap de RC4 et le chiffrement part en morceau au fur et a mesure.

oRAT est écrit en golang et utilise de l’AES-GCM pour la com. Les commandes passent par des URLs façon REST. XNote a déjà fait l’objet de publications. Il n’est pas connu pour servir à des fins d’espionnage.

En s’appuyant sur leur télémétrie et du monitoring, ils ont trouvé de nombreuses victimes dans le monde des paris. Ils ont trouvé 12 familles, ce qui signifie 12 backends de c2 derrière Cloudflare. Certains domaines sont utilisés par plusieurs familles de malwares.

Fingerprinting Bot Shops: Venues, Stealers, Sellers

Vue haut niveau sur les vendeurs de bots, leur écosystème, leurs évolutions. Les logs des infostealers sont revendus, qui servent pour alimenter des fraudes, etc…
L’écosystème du bruteforce comme raidforums n co parlent d’account shops pour causer de la revente de login/pass. Les logs issues d’un infostealer finissent dans les « Bot Shops ». En effet les login pass ne suffisent pas pour l’accès initial (hello mfa). Il faut donc que les cybercriminels collectent des informations plus poussées pour usurper l’identité des utilisateurs. D’où l’évolution des credentials vers les « logs » d’un utilisateur pour émuler son empreinte système ce qui permet de contourner le MFA en faisant croire que la machine est « de confiance ». Une victime et ses logs sont du coup revendus plus d’une fois pour différents usages: réseaux sociaux, banque, etc…

Ces fournisseurs d’info-stealer sont appellés « cloud providers » et donnent accès à des botnets avec de nombreux logs. Les malwares sont revendus sur des forums comme XSS et Exploit. La compétition est féroce, et les fonctionnalités riches.

Pour faire de l’argent à partir de ces logs, les cybercriminels disposent de différentes stratégies. Si vous achetez un bot, vous pouvez exploiter une victime de façon régulière, à chaque transaction par exemple. Les likes des réseaux sociaux peuvent être revendus, tout comme l’abonnement à certains comptes ou l’émission de messages. Le prix du bot dépend du niveau de qualité des ressources disponibles à monétiser. Les accès a des outils d’administration a distance ou des canaux slack/teams dans des entreprises se revendent bien auprès des groupes de ransomwares.

Le stealer genesis contient de nombreux moyens de collecte pour répondre aux fingerprints mis en oeuvre pour détecter la fraude et empêcher l’usurpation d’identité. Il fournissent un plugin Chromium pour usurper l’identité d’un individu et s’en servir comme d’un proxy. Les stealers récupèrent des « data points » qui consistent en des résultats des API HTML donnant accès à des informations sur le navigateur et le PC d’une personne. Les éditeurs d’infostealers ont parfois des problèmes avec certaines protections et doivent donc produire des mises à jour et faire du patch-management.

How to eavesdrop on Winnti in a live environment using virtual machine introspection

L’instrumentation de machine virtuelle (VMI) permet de poser des hooks n’importe ou dans le système sans que ça soit visible au niveau kernel (cf Icebox par Thalium, ou le projet de Matthieu Taral sur KVM). C’est un peu comme un debugger sous stéroïde qui permet d’observer ce qu’on veux. Le problème c’est de gérer l’OS sous-jacent.

Les orateurs ont donc implémenté leur solution sur leur outil de virtualisation maision [https://github.com/cyberus-technology/hedron] (merci Vlad pour lien).

Winnti est un malware d’APT qui utilise un driver pour gérer les communications avec son serveur de C&C. Le worker récupère ses ordres depuis une région mémoire partagée avec le driver. L’analyse se fait en 3 temps, l’identification du process SvcHost infecté, l’analyse détaillée de ce process, et la récupération des informations de communication.

Evolution of the Sysrv mining botnet

Les malwares IoT sont de plus en plus codés en Go. Sysrv est un botnet codé en Go, et les auteurs se sont appuyé sur Ghidra pour reverser le bestiau et il a servi de cas d’étude pour leur projet.
Au début le mining se faisait via un script ldr.sh ou ldr.ps1 en fonction du type de système. De nombreuses modifications ont été ajoutés au script de mining au fil du temps. Il utilise XMRig pour le minage, mais le fichier de configuration diffère d’une version à l’autre.

Les binaires Go pour être portables sont très gros parcequ’ils embarquent toutes leurs dépendances. Pour réduire cette taille, les binaires sont strippés de leur nom de fonction. Ce qui à pour effet de bords de rendre le reverse engineering plus difficile. Pour la récupération des noms de fonctions, on peut utiliser redress [https://github.com/goretk/redress]. Pour chaque fonction, il y a une table de métadonnées qui peut aider à retrouve les noms des fonctions. Par exemple on retrouve les offsets des fonctions C correspondantes.

La récupération des chaines des caractères peut s’avérer difficile avec un binaire Go. Les chaines en Go sont dans des structures « string » et tout est concaténé avec aucun nullbyte pour les terminer. Une fois les chaines reconstruites on peut s’appuyer dessus pour retrouver le fichier de configuration du mineur. [https://cujo.com/reverse-engineering-go-binaries-with-ghidra/] Lorsqu’il y a des nullbytes dans un blob Go, Ghidra les splits et il faut gérer cette énooorme chaîne incomplète.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.