BotConf 2024
Quelques notes publiables en passant :) tous les talks n'étant pas TLP:CLEAR⚪ pour l'instant, voici les quelques Talks partageables 😄. Cette année la BotConf à lieu à Nice, sous un soleil brillant.
Unplugging PlugX: Sinkholing the PlugX USB worm botnet
Lors d'une investigation, ils ont observé une IP jointe par le binaire en 2020, jusqu'au sinkholing en 2023. Le sinkholing consiste à détourner le serveur ou le nom de domaine du serveur de Command & Control. Sekoïa a donc réussi à obtenir un VPS avec l'IP jointe par le PlugX USB. Ils ont mis en place un Frontend à pas cher pour éponger les requêtes PlugX qui ont des headers HTTP spécifiques. Pour éviter de se faire éclater le serveur, Ils ont du mettre en place du rate-limiting, et trouver un moyen de dissocier les scanners de l'internet, des requêtes des malwares PlugX.
Ils ont collecté 2,5 millions d'IP uniques sur plus de 170 pays, ce qui représente une sacré quantité d'infections. Le Niger, l'Inde et la Chine sont majoritaires. C'est pas un gros Botnet, mais après 4 ans c'est un beau morceau.
La question suivante c'est quels sont les objectif du MOA derrière ce malware USB. Le malware ayant 4 ans, il faut se repositionner dans les enjeux politiques de l'époque.
Afin d'éviter que quelqu'un reprenne la main sur le Botnet, il vaut mieux dégager les malwares des machines infectées. Pour dégager le ver, il faut virer le malware de la machine ET de la clef USB ou du support infecté.
Les orateurs ont forgé des réponses HTTP permettant de désinstaller le malware. Mais cela ne permet pas de dégager l'infection de la clef USB. Pour faire le ménage, il faut enoyer une charge maison basée sur quelques bouts du code de PlugX pour nettoyer la clef USB avant désinstallation.
Il existe 3 autres serveurs de C2 PlugX, et l'un deux fait tourner un InetSim, du coup il y a d'autres personnes qui Sinkhole ce malware.
Eastern Asian Android Assault – FluHorse.
Les orateurs sont tombés sur un malware Android basé sur Flutter, un langage multi-plateforme de Google. Flutter est un langage de programmation asynchrone assez performant, et qui fournit des moyens d'analyse et de debug. Le problème c'est que le runtime de Flutter est difficile à analyser. Les orateurs ont utilisé reFlutter pour récupérer les symboles de debug et faciliter le reverse-engineering.
Evasions Fest of Korean Android Financial Menace – FakeCalls
Le malware FakeCall est poussé par des sites de phishing, c'est un malware type trojan, qui se fait passer pour une autre application. Le malware est "droppé" par le biais d'une GUI modifiée demandant à l'utilisateur d'installer une autre application. La backdoor permet de streamer les deux caméras du téléphone. Le 1er stage d'installation est soit sur Google Drive, soit sur un serveur. Une fois les clefs de déchiffrement récupérées, les serveurs de C&C sont joignables. Il y en a un pour le streaming, et un pour les commandes. Ces campagnes ont engendré près de 600 M$ de pertes financières. Les organismes Koréens sont les principales victimes. Plus de détails sur le site de CheckPoint & Kaspersky.
LightSpy2: feature-rich mobile surveillance tool set
LightSpy est un malware IoS découvert par Kaspersky, avec dans les URLs le chiffre 963852741 qui est un pattern tapé sur le keypad. Les serveurs sont hébergés dans un ASN et utilisent le port 52202. En utilisant Censys, l'orateur à pu récupérer un .jar qui contient la encore dans son URL le fameux 963852741. L'orateur à trouvé une douzaine de serveurs avec des campagnes sur plusieurs années. La charge utile est chiffrée avec un XOR.
L'orateur à fait tourner la backdoor CORE avec les serveurs C2 qu'il avait, et après analyse du fonctionnement, a écrit un script pour collecter toutes les payloads qu'il a pu trouver en ligne sur les serveurs. Le malware fait notamment un fingerprint du téléphone. Le malware permet de charger des modules, certains pour des applis de chat, d'autre pour exécuter des commandes. Le plus intéressant, c'est le module "bill" qui permet au malware de s'authentifier au travers de WeChat pour pouvoir placer des paiements.
A force de creuser, l'orateur est tombé sur un malware macOS déposé via une RCE Safari. Dans le script shell post-exploitation, on retrouve le pattern 963852741. La fonction de déchiffrement entre macOS et Android est la même. De même que les principes de fonctionnement entre le core, les plugins et le serveur de C&C.
Les attaquants n'ayant pas assez sécurisé leurs interfaces WEB d'admin, l'orateur à pu y accéder. Il contenait des périphériques iOS & macOS assez vieux. Les données présentés dans l'interface correspondent avec les plugins découverts par l'orateur.
C'est un TA actif depuis 2014, sur tout type d'OS, et vise la région Asie/Pacifique.
Rhadamanthys: The new stealer making WAVs in the eCrime landscape
Un Stealer basé sur un loader PE32/64 en .NET qui charge un shellcode. Il contiens la config, un id, des flags de config et l'addresse du C2. Le Loader a pour job de gérer l'anti-analyse, et le déchiffrement de la configuration. Il faut passer par plusieurs passes de déchiffrement pour obtenir l'ID et la Conf. Le C2 répond avec une image ou un fichier son qui contiens le shellcode qui lance le stealer, qui lui-même communique avec le C2.
Les composants du Stealer ont leur propre système de modules "à part".
La partie son encodée dans la 2ème moitié du fichier .wav est un shellcode qui déchiffre un blob aes+lzma. Sans clef de session, il n'est pas possible de déchiffré le code du stealer. Il y a des clefs de déchiffrement un peu partout.