Sogeti/ESEC Analyse d'un botnet venu du froid 1/47 Analyse d'un botnet venu du froid Damien Aumaitre - damien.aumaitre@sogeti.com Christophe Devaux - christophe.devaux@sogeti.com Julien Lenoir - julien.lenoir@sogeti.com Sogeti/ESEC
Sogeti/ESEC Analyse d'un botnet venu du froid 2/47 Sommaire 1 2 3 4
Sogeti/ESEC Analyse d'un botnet venu du froid 3/47 Plan Qu'est-ce qu'un botnet? Comment rejoint-on un botnet? Contexte de l'analyse 1 Qu'est-ce qu'un botnet? Comment rejoint-on un botnet? Contexte de l'analyse 2 3 4
Sogeti/ESEC Analyse d'un botnet venu du froid 4/47 Dénition Qu'est-ce qu'un botnet? Comment rejoint-on un botnet? Contexte de l'analyse Wikipedia : Le terme botnet désigne un ensemble de machines zombies qui sont exploitées de manière malveillante. Dénition Machines compromises à l'insu de l'utilisateur Un ou plusieurs serveurs de contrôle Piratés ou loués à un hébergeur bulletproof
Sogeti/ESEC Analyse d'un botnet venu du froid 5/47 À quoi ça sert? Qu'est-ce qu'un botnet? Comment rejoint-on un botnet? Contexte de l'analyse Déni de service distribué Spam Fraude aux clics Blackhat SEO (spam indexing) Vol d'informations personnelles
Sogeti/ESEC Analyse d'un botnet venu du froid 6/47 Caractéristiques Qu'est-ce qu'un botnet? Comment rejoint-on un botnet? Contexte de l'analyse Surface mouvante Fast ux DNS Peer to peer ou irc Protocole de communication chiré Exploitation professionnelle Algorithme de génération de noms de domaines (permet de reprendre le contrôle du botnet si les serveurs de contrôle sont fermés) Utilisation de composants réutilisables
Sogeti/ESEC Analyse d'un botnet venu du froid 7/47 Botnets les plus importants Qu'est-ce qu'un botnet? Comment rejoint-on un botnet? Contexte de l'analyse bots Conficker 9 000 000 Kraken 495 000 Srizbi 450 000 Rustock 150 000 Cutwail 125 000 Storm 85 000 spams (par jour) 10 000 000 000 9 000 000 000 60 000 000 000 30 000 000 000 16 000 000 000 3 000 000 000 apparition octobre 2008 avril 2008 juin 2007 juin 2008 mars 2007 janvier 2007
Sogeti/ESEC Analyse d'un botnet venu du froid 8/47 Plan Qu'est-ce qu'un botnet? Comment rejoint-on un botnet? Contexte de l'analyse 1 Qu'est-ce qu'un botnet? Comment rejoint-on un botnet? Contexte de l'analyse 2 3 4
Sogeti/ESEC Analyse d'un botnet venu du froid 9/47 Qu'est-ce qu'un botnet? Comment rejoint-on un botnet? Contexte de l'analyse Serveur de distribution de malwares "Candy-box" Clé USB Faux logiciel Spam Exploit BOTNET infection LANCEUR MALWARE BOTNET charge utile Machine saine Machine infectée Machine zombie TEMPS
Sogeti/ESEC Analyse d'un botnet venu du froid 10/47 Infection Qu'est-ce qu'un botnet? Comment rejoint-on un botnet? Contexte de l'analyse Plusieurs sources possibles Clés USB infectées Faux programmes (codecs, keygens,...) sur Internet Emails contenant un malware en pièce jointe Vulnérabilités (exploit pour MS08-067,...) L'installation du malware se déroule souvent en plusieurs étapes
Sogeti/ESEC Analyse d'un botnet venu du froid 11/47 Lanceur Qu'est-ce qu'un botnet? Comment rejoint-on un botnet? Contexte de l'analyse Caractéristiques Petit exécutable, chargé de télécharger le vrai malware Généralement il connait l'adresse de plusieurs Candy-box Plusieurs lanceurs peuvent être combinés (poupées russes) Avantage Utiliser un lanceur permet de modier facilement au cours du temps le malware qui infectera les machines (mécanisme de mise à jour)
Sogeti/ESEC Analyse d'un botnet venu du froid 12/47 Plan Qu'est-ce qu'un botnet? Comment rejoint-on un botnet? Contexte de l'analyse 1 Qu'est-ce qu'un botnet? Comment rejoint-on un botnet? Contexte de l'analyse 2 3 4
Sogeti/ESEC Analyse d'un botnet venu du froid 13/47 Analyse d'un PC portable infecté Qu'est-ce qu'un botnet? Comment rejoint-on un botnet? Contexte de l'analyse Récupération du malware Infection d'un poste sous contrôle Observation in-vivo du malware Originalité du malware Très artisanal Serveur de contrôle très récent (5 jours au commencement de l'analyse) Patriote
Sogeti/ESEC Analyse d'un botnet venu du froid 14/47 Patriotisme... Qu'est-ce qu'un botnet? Comment rejoint-on un botnet? Contexte de l'analyse
Sogeti/ESEC Analyse d'un botnet venu du froid 15/47 Plan globale 1 2 Psyche le spammeur Putmuk le voleur de comptes FTP Le banker FakeAlert le fournisseur de scarewares globale 3 4
Sogeti/ESEC Analyse d'un botnet venu du froid 16/47 Psyche le spammeur globale Rôle principal Envoyer du spam Actions S'enregistre en tant que service Windows Se cache en utilisant des techniques de rootkit (NtIllusion) Se connecte à un serveur de contrôle Fonctionnement A chaque démarrage de la machine, le malware met à jour sa conguration et lance une campagne de spam
Sogeti/ESEC Analyse d'un botnet venu du froid 17/47 Fonctionnement globale Ordinateur Zombie connexion configuration texte à envoyer courriels à spammer Contrôleur SPAMS résultats
Sogeti/ESEC Analyse d'un botnet venu du froid 18/47 Protocole de communication globale Protocole Protocole chiré (XOR avec Poshel-ka tina hui drug aver) Deux types de datagrammes (reçu et envoyé) Datagramme reçu Ordre Données chirées relative à l'ordre en question Datagramme envoyé Identiant de machine Identiant de session Données chirées en réponse à l'ordre précédent
Sogeti/ESEC Analyse d'un botnet venu du froid 19/47 Ordres reçus globale Ordres 0 : Ping 2 : Exécute un shellcode 6 : Reçoit le texte à spammer 7 : Reçoit le chier de conguration 8 : Reçoit une liste d'emails et de serveurs SMTP order number data size encrypted data
Sogeti/ESEC Analyse d'un botnet venu du froid 20/47 Ordre 6 : le texte à spammer globale
Sogeti/ESEC Analyse d'un botnet venu du froid 21/47 Statistiques globale Statistiques Environ 10 Go de log d'emails sur le serveur en 5 jours 1 Go = 34 000 000 emails uniques Débit 2 800 000 spams/heure
Sogeti/ESEC Analyse d'un botnet venu du froid 22/47 Putmuk le voleur de comptes FTP globale Rôle principal Déchire les mots de passes stockés par des clients FTP et les exltre Clients FTP ciblés VanDyke SecureFX Ipswitch WS FTP FTPWare CoreFTP FileZilla Rhino Software FTP Voyager Total Commander BulletProof FTP Client GlobalSCAPE CuteFTP...
Sogeti/ESEC Analyse d'un botnet venu du froid 23/47 globale Interface d'administration : 995 comptes en attente
Sogeti/ESEC Analyse d'un botnet venu du froid 24/47 globale Interface d'administration : vérication des comptes FTP
Sogeti/ESEC Analyse d'un botnet venu du froid 25/47 Le banker globale Rôle principal Récupérer des informations bancaires Browser Helper Object (plug-in) pour Internet Explorer BHO 3-en-1 Keylogger Hook des formulaires Injection de champs HTML sur des sites bancaires
Sogeti/ESEC Analyse d'un botnet venu du froid 26/47 globale Injection de champs sur les sites bancaires Source : Sergei Shevchenko ThreatExpert Blog
Sogeti/ESEC Analyse d'un botnet venu du froid 27/47 Exemple de données exltrées globale [http://www.nytimes.com/auth/login?uri=http://] USERID=KEYSREAD:moncompte [http://www.nytimes.com/auth/login?uri=http://] PASSWORD=KEYLOGGED:monpassword KEYSREAD:monpassword [http://www.nytimes.com/auth/login] The New York Times > Log In is_continue=true URI=http:// OQ= OP= USERID=moncompte PASSWORD=monpassword SAVEOPTION=YES Submit2=Log+In
Sogeti/ESEC Analyse d'un botnet venu du froid 28/47 globale Limbo : générateur de BHO banker Générateur du client (le malware) Génération automatique du malware à partir d'un chier de conguration Nombreuses fonctionnalités (Keylogger, injection HTML, capture de données,...) Application serveur Interface d'administration (PHP/MySQL) prête à déployer Collecte des informations exltrées Tri et mise en forme de ces données
Sogeti/ESEC Analyse d'un botnet venu du froid 29/47 Limbo 2 : Génération du malware globale
Sogeti/ESEC Analyse d'un botnet venu du froid 30/47 FakeAlert le fournisseur de scarewares globale Rôles Faire acheter à l'utilisateur un faux anti-virus Lui voler ses informations bancaires Moyens Simule une infection par plusieurs virus Modie l'achage de sites Web connus pour alerter d'une infection virale Simule des erreurs fatales Windows (Blue Screen Of Death)
Sogeti/ESEC Analyse d'un botnet venu du froid 31/47 Exemple globale
Sogeti/ESEC Analyse d'un botnet venu du froid 32/47 Exemple globale
Sogeti/ESEC Analyse d'un botnet venu du froid 33/47 Plan globale 1 2 Psyche le spammeur Putmuk le voleur de comptes FTP Le banker FakeAlert le fournisseur de scarewares globale 3 4
Sogeti/ESEC Analyse d'un botnet venu du froid 34/47 globale Évolution des protections des binaires Packer UPX UPX UPX / FSG Chiffrement du code Aucun XOR avec un octet Par portions XTEA Chiffrement des chaines XOR avec un octet XOR avec une chaine Opérations diverses avec une chaine Protection Anti-Debug simples Anti-Debug Anti-Dump Anti-Debug Anti-Dump Protection avancée Aucune Anti-Heuristique Anti-VM 2 SEMAINES
Sogeti/ESEC Analyse d'un botnet venu du froid 34/47 Plan globale 1 2 Psyche le spammeur Putmuk le voleur de comptes FTP Le banker FakeAlert le fournisseur de scarewares globale 3 4
Sogeti/ESEC Analyse d'un botnet venu du froid 35/47 Statistiques globale Des chires... 2 semaines d'observation 1 000 000 000 spams envoyés Environ 100 nouveaux comptes FTP par jour 2 nouvelles versions de Putmuk 6 mois de conception
Sogeti/ESEC Analyse d'un botnet venu du froid 36/47 globale Hébergé par Hivelocity (NOC4Hosts) "Candy-box" (xx.50.109.2) redirige malwares Log des comptes FTP (xx.199.248.58) Sites web piratés à partir des comptes FTP volés Sites web piratés pour vendre des pilules SPAMS ordinateur infecté Contrôleur Psyche (xx.50.120.87, xx.50.125.72,...) SPAMS HGNI Sites web piratés pour stocker les images Log des informations bancaires (xxx.51.231.110) ordinateur spammé
Sogeti/ESEC Analyse d'un botnet venu du froid 37/47 Plan Qui dirige? Bilan comptable 1 2 3 Qui dirige? Bilan comptable 4
Sogeti/ESEC Analyse d'un botnet venu du froid 38/47 Investigation Qui dirige? Bilan comptable Sources d'informations Les malwares Les serveurs de contrôle (log FTP, contrôleur spam,...) Internet
Sogeti/ESEC Analyse d'un botnet venu du froid 39/47 HGNI? Qui dirige? Bilan comptable Fig.: Contenu d'une table SQL sur le serveur de log FTP
Sogeti/ESEC Analyse d'un botnet venu du froid 40/47 HGNI? Qui dirige? Bilan comptable last du serveur de log FTP root pts/1 Thu Oct 30 23 :36-00 :47 (01 :11) maskalev.radiocom.net.ua root pts/0 Thu Oct 30 23 :10-01 :51 (02 :41) xx.xxx.xxx.xx root pts/0 Fri Oct 24 01 :27-03 :48 (02 :20) xx.xxx.xxx.xx reboot system boot Wed Oct 15 20 :31-22 :15 (29+02 :44) 2.6.18-6-486 root pts/0 Wed Oct 15 16 :56 - down (03 :33) xx.xxx.xxx.xx root pts/0 Tue Oct 14 14 :41-14 :52 (00 :11) maskalev.radiocom.net.ua root pts/0 Sun Oct 12 02 :45-02 :57 (00 :12) xx.xxx.xxx.xx root pts/0 Fri Oct 3 17 :45-20 :38 (02 :53) maskalev.radiocom.net.ua Bannière sur maskalev.radiocom.net.ua 220 This is internal hgni's ftp server
Sogeti/ESEC Analyse d'un botnet venu du froid 41/47 HGNI? Qui dirige? Bilan comptable
Sogeti/ESEC Analyse d'un botnet venu du froid 42/47 HGNI Qui dirige? Bilan comptable Qui est-il? Une personne (ou un groupe de personnes) nommée HGNI dirige le botnet Caractéristiques Compétences techniques limitées Recrute des développeurs sur le Russian Software Developer Network Prol de managers/investisseurs Contactable facilement par ICQ (ne se cache pas)
Sogeti/ESEC Analyse d'un botnet venu du froid 43/47 Plan Qui dirige? Bilan comptable 1 2 3 Qui dirige? Bilan comptable 4
Sogeti/ESEC Analyse d'un botnet venu du froid 44/47 Vente de spam Qui dirige? Bilan comptable
Sogeti/ESEC Analyse d'un botnet venu du froid 45/47 Qui dirige? Bilan comptable Bilan comptable Coûts Développement des malwares Salaires des développeurs Achat de Limbo Accès au distributeur de malwares Location des serveurs Sources de prots Vente de spam Vente de données condentielles Vente de faux anti-virus Utilisation d'informations bancaires volées
Sogeti/ESEC Analyse d'un botnet venu du froid 46/47 Ce botnet Plusieurs briques pour maximiser les prots Évolution rapide Artisanal mais plutôt ecace Serveurs de contrôle facilement identiables, mais toujours en ligne Investissement minimal Rapidement lucratif Nous ne sommes pas prêts d'en voir la n...
Sogeti/ESEC Analyse d'un botnet venu du froid 47/47 Avez-vous des questions?? Merci de votre attention