BOTCONF 2017 - J1
Edit: Le WriteUp de @xme
How to Compute the Clusterization of a Very Large Dataset of Malware with Open Source Tools for Fun & Profit?
Autre problème, c’est les Packers, il faut filtrer pas mal d’informations peu fiables pour ne pas perturber le clustering et trier les malwares par version de compilateur, ou encore sur l’ordre des sections.
Get Rich or Die Trying
Autre bestiole, un programme VB6 packé, un « stealer » qui communique avec un C&C sur un site web compromis. La on est sur un niveau d’attaque beaucoup plus faible que le précédent.
3ème exécutable, packé avec du .NET, et qui propage le keylogger Hawkeye. Pour le C&C il utilise soit smtp, soit http ou ftp. Dans le cas présenté, c’est SMTP qui était utilisé pour envoyer les e-mails sur un serveur contrôlé par l’attaquant. Et du coup dans le binaire, on retrouve les codes d’accès à la boite e-mail de contrôle, et en ouvrant la boite e-mail, on découvre qu’ils ont infecté leur propres machines ! En creusant un peu plus, on fini par trouver la machine de l’attaquant, des screenshots de son compte facebook etc…
Monitoring of a transient P2P Botnet
Analyse d’un Bot IOT à l’aide d’un HoneyPot. Le bot se propage en bruteforçant des accès sur les machines victimes.
RetDec
Un outil de décompilation de binaires capable de produire du LLVM. https://retdec.com/
A Silver path; ideas for improving lawful sharing of cybercrime evidence with law enforcement
L’immunité assurée à un membre des forces de l’ordre sur la protection de la vie privée par exemple, lui permet de mener à bien une enquête qui collecte les information personnelles d’un botherder. Mais si cette information est obtenue en commettant un cybercrime rend les choses beaucoup plus compliqués sur un plan juridique.
Dans la GDPR, il y à un élément qui viens justifier le partage d’information obtenue de façon « illégale » au sens de la GDPR, c’est si cette tâche est d’intérêt public: Article 6(1)(e). Mais du coup c’est quand même dépendant de l’implémentation par les états.
tracking botnets with bots
Extraire les configuration des malwares de façon automatique, imiter leurs protocoles de c&c en python pour en récupérer les mises à jour, les scripts de « webinject » qui sont injectés dans les interfaces de gestion de comptes en ligne, etc… Un gros travail de fond pour procéder au tracking des botnets. Le problème, c’est quand les bots ont une configuration dépendante de la localisation géographique. Dans ce cas il faut faire en sorte de sortir les communication du bot émulé sur divers vps un peu partout dans le monde pour obtenir les versions locales des configurations.
Autre soucis, les C&C qui se sont fait partiellement sinkholé, ou qui reposent sur du .onion. Lorsqu’il s’agit du botnet P2P, il faut pouvoir découvrir tout les pairs possibles. Pour ce faire, les orateurs stockent dans une bdd les pairs déjà découverts.
Coté légal, un des soucis c’est que faire du DDoS est illégal dans certains pays, et même si on fait ça depuis une sandbox à des fins d’analyse, on à pas de « joker » juridique qui viens protéger ceux qui analysent ces malwares. Pareil pour le Spam, etc… du coup on met en place des filtres, des limitation de débit etc… ce qui provoque la détection du bot sandboxé, et le blacklist/banissement de ce dernier, supprimant de fait les information qu’on peut en obtenir au fil du temps.
Socks as a service: Botnet Discovery
Ce qu’il y a de bien avec une ip, c’est qu’elle est sous la responsabilité de quelqu’un, et qu’on peut donc la « coller » sur une carte. Lorqu’on défend, et qu’on souhaite interragir avec un botnet ou un exploit kit, utiliser un proxy peut être utile pour contourner les blacklists ou les contrôle de géolocalisation IP. C’est un peu comme Netflix avec les contenu et les utilisateurs qui cherche à apparaitre comme étant des US pour avoir accès à plus de contenu. Autre exemple avec les télphones mobiles dont les bots communiquent seulement sur les range IP correspondant à des téléphones, et toute ip hors de ces blocks est immédiatement « suspecte ».
Lorsqu’on loue un proxy, l’opérateur peux demander à quoi va servir le proxy, et en fonction des usages, adapter la rotation ip entre les proxy, etc… Du coup les prix varient en fonction des usages et de la localisation géographique du point de sortie. Certains proxy sortent sur des datacenter, d’autres depuis des IP résidentielles. D’autres proxy sont librement postés sur pastebin et divers forums de pirates. Lorsqu’on regarde de près la répartition géographique de ces proxy ouverts, un grand nombre sont disponibles aux US.
Certains acteurs du marché noir revendent sur plusieurs plateformes, et créent une « illusion » de prix élevé sur l’ensemble de ces plateformes, ce qui complique l’analyse du coût de ces proxy. Grosso modo, le proxy coûte 2$ par jour, et on est pas vraiment sûr que ça durera dans le temps, ni qu’on pourra ressortir sur le même endroit. Autre type de proxy revendu sur le marché noir, c’est les « backconnect encore appellé Bastion. Les points de sorti aux US valent plus cher que les autres. Ces services offrent aussi du support sur WeChat & QQ, et supportent Alipay, indiquant la clientelle ciblée par ce service. Pour les plateformes « mobiles », les services de proxy offrent carrément de la ré-écriture de headers pour éviter que le user-agent ne trahisse l’utilisateur du proxy.
Exemple avec un bot qui se propage depuis des instances WordPress. Il dispose d’urls très spécifiques. Il utilise google pour rechercher d’autres instances à compromettre, et collecte en suite un maximum d’informations sur la cible afin de faciliter le bruteforce. Quand on regarde la répartition des blogs infectés, on en trouve partout chez des hébergeurs.
Example of automated takedown of IoT Botnets
Pour la récupération automatique, on automatise de cassage du XOR en testant des clefs connues, puis on grep les DNS dans les strings du binaire. Autre technique: rechercher les constantes du binaire pour des IP hardcodés. Pour ce faire, l’orateur à automatisé le reverse engineering avec r2pipe. Si ça ne fonctionne pas, l’orateur recycle un vieux raspberry pi comme sandbox.
The new era of Android banking botnets.
Les malwares bankaires android était souvent associés avec des malwares bancaires pour contourner les authentifications double facteur par SMS et cie. L’installation se faisait souvent par social-engineering. Ces applications sont peu voir pas obfusqués et disposent d’un mécanisme simple d’envoie de SMS pour diffuser le code 2FA.
Les nouveaux malwares android, eux sont reconfigurables à la volée comme les malwares bancaires qu’on trouve sous windows. Ces malwares sont généras avec du code d’obfuscation type code mort, et une génération de faux certificat à partir d’une liste de prénoms et de noms. Ces nouveaux malwares sont propagés via des sms incitant les victime à installer « un dispositif de sécurité anti fraude ». Certains utilisent des hash correspondant aux applications ciblés, et ils ne s’activent que si l’appli ciblée est présente. Du coup pour identifier les appli en question il faut une putain de liste de noms d’applications.
Hunting down Gooligan
1er malware qui volait des credentials OAuth. OAuth est un mécanisme d’authentification pour les applications. Twitter, google, facebook utilisent OAuth pour fournir des accès à un compte. C’est un standard de fait. SnapPea est le premier malware de ce genre. Ghostpush est connu pour sa capacité à rester persistant entre les reboot et même quand le mobile se fait flasher. Gooligan innove par le fait qu’il collecte les token OAuth.
Gooligan est propagé dans les Apk exsitant qui sont repacké avec le malware dedans. La payload de l’APK va charger dynamiquement un rootkit qui va rooter le téléphone, et obtenir des moyens de persistance. Il va en suite infecter le processus GooglePlay. La payload est souvent dans une image embarqué comme ressource de l’APK. L’image contiens une clef XOR. Dans la payload, on récupère un exploit pack Kingroot. Une fois le périphérique rooté, le malware déploie un système de persistance en posant des fichiers dans la partition système qui n’est pas accessible par l’utilisateur. On retrouve le binaire SU, très connu des adeptes du « rooting » Android. Ces techniques sont utilisés aussi par GhostPush. Le playstore se fait injecté via une librairie partagée. Le code injecté écoute pour des évènements type power, network, screen. Via ces events, il à de grande chances d’être appellé. Une fois appellé, il télécharge un DEX contenant la logique de fraude. Ce malware utilise des techniques publiés sur github pour l’injection et décrites sur des blogs chinois. Les samples embarquent des IP de C&C basés en chine.
Pour gagner de l’argent, ils revendent de bonnes notes sur le play store, et injectent des pubs. Pour l’App boosting, ils utilisent le token OAuth qui sert uniquement à la communication entre le Play Store et le téléphone. Avant les pirates qui faisait du « boosting » mettaient en place de fausses installations Android, mais elles sont maintenant bien détectés. D’ou leur changement de tactique pour le Boosting en volant les tokens. A son exécution, le malware ballance toute les infos qu’il à sur le téléphone, et ces informations servent à « forger » une fausse identité de téléphone. Ces fausses requêtes passent par des téléphones infectés mais non rootés parceque le kit n’était pas fonctionnel sur des versions d’Android plus récentes. Autre technique: générer du click sur des pubs injectés. Le gros dse victimes se situe dans les pays émérgents dont l’Inde parceque les téléphones ne sont pas à jour.
Pour le takedown, Les orateurs ont travaillé avec ShadowServer pour sinkholer les domaines qui servaient à la collecte des des tokens. Puis les token affectés ont été révoqués, et les utilisateurs prévenus. Les notifications était traduites pour que ça soit compréhensible pour les utilisateurs, et sur plusieurs canaux pour être sûr de les joindre. Puis mettre en place les pages d’aide et de support pour répondre aux questions des victimes.