1 / 50

x90re’s Backdoors

x90re’s Backdoors. Présentation des Backdoors. Objectif et plan. Contexte présentation Présentation des bkdrs Détection FWs persos Démonstration Conclusion.

shaman
Télécharger la présentation

x90re’s Backdoors

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. x90re’s Backdoors Présentation des Backdoors

  2. Objectif et plan Contexte présentationPrésentation des bkdrsDétection FWs persos DémonstrationConclusion • L’objectif de cette présentation est de faire une démonstration pratique des possibilités de backdoors avancées sous Windows issues d’un développement personnel • Elle commence par une présentation du contexte et des backdoors, suivie d’une démonstration effectuée via une capture vidéo Présentation de x90re’s backdoors – Benjamin CAILLAT

  3. Avertissement Contexte présentationPrésentation des bkdrsDétection FWs persos DémonstrationConclusion • La présentation, au cours de cette démonstration, de techniques de compromission a pour unique objectif de vous permette de mieux les appréhender pour mieux vous en protéger • Ces manipulations ont été faites dans un environnement de test privé et confiné • Pour mémoire toute tentative d’intrusion sur un réseau ou sur des machines ne vous appartenant pas est illégale Présentation de x90re’s backdoors – Benjamin CAILLAT

  4. Partie I Présentation du contexte

  5. Description du contexte > Contexte présentationPrésentation des bkdrsDétection FWs persos DémonstrationConclusion • On considère le cas d’attaques ciblées : l’objectif est la récupération de documents confidentiels sur le poste d’une entreprise • Cette présentation se concentre sur la partie évasion de données. L’introduction de la backdoor ne sera pas considérée. Ce seront des exécutables directement lancés sur les postes compromis Présentation de x90re’s backdoors – Benjamin CAILLAT

  6. Réseau de l’entreprise (1) > Contexte présentationPrésentation des bkdrsDétection FWs persos DémonstrationConclusion • L’architecture considérée sera une représentation simplifiée d’un réseau d’entreprise : • Un LAN de machines sous Windows • Les postes sont autorisés à accéder au web via un proxy • Les connexions directes vers l’extérieur sont interdites Présentation de x90re’s backdoors – Benjamin CAILLAT

  7. HTTP(S) DNS HTTP(S) POP(S) IMAP(S) SMTP SMTP HTTP(S) Réseau de l’entreprise (2) > Contexte présentationPrésentation des bkdrsDétection FWs persos DémonstrationConclusion • Architecture « classique » schématisée : Proxy HTTP(S) Internet Réseau de l’entreprise Serveurs mail Serveur web Présentation de x90re’s backdoors – Benjamin CAILLAT

  8. Partie II Présentation des backdoors

  9. Deux clients, un serveur > Contexte présentationPrésentation des bkdrsDétection FWs persos DémonstrationConclusion • Les backdoors sont des parties clientes se connectant sur une partie serveur • Il existe deux backdoors (parties clientes) : Fratus et Parsifal • Elles communiquent avec une partie serveur : BlackMoon • Cette partie commence par exposer des principes généraux communs aux deux backdoors, puis présentera leurs différences Présentation de x90re’s backdoors – Benjamin CAILLAT

  10. Réponse Requête BlackMoon Backdoor Principe de communication > Contexte présentationPrésentation des bkdrsDétection FWs persos DémonstrationConclusion • Méthode de communication s’apparente à du polling afin de ressembler à des requêtes web (principe détaillé plus loin) SLEEP Présentation de x90re’s backdoors – Benjamin CAILLAT

  11. Backdoor (Fratus ou Parsifal) BlackMoon Modularité au niveau fonctionneldes backdoors (1) > Contexte présentationPrésentation des bkdrsDétection FWs persos DémonstrationConclusion • Les backdoors implémentent une interface standard sur laquelle viennent se brancher des « modules » Module 1 Module 2 Présentation de x90re’s backdoors – Benjamin CAILLAT

  12. Modularité au niveau fonctionneldes backdoors (2) > Contexte présentationPrésentation des bkdrsDétection FWs persos DémonstrationConclusion • Les backdoors ont pour unique objectif d'établir une communication avec BlackMoon. Les fonctionnalités réelles sont déportées dans les modules • Les modules sont des dlls qui exportent un ensemble standardisé de fonctions • Elles sont uploadées depuis BlackMoon et chargées dans l'espace du processus contenant la backdoor Présentation de x90re’s backdoors – Benjamin CAILLAT

  13. Modularité au niveau fonctionneldes backdoors (3) > Contexte présentationPrésentation des bkdrsDétection FWs persos DémonstrationConclusion • Modularité comporte de nombreux avantages: • L’ajout de nouvelles fonctionnalités est rapide et facile • La taille de la backdoor reste faible • Il est possible d’uploader uniquement les modules requis sur l’hôte • Il suffit de connaître l’interface pour développer de nouveaux modules. Il est inutile de comprendre/d’avoir le code de la backdoor Présentation de x90re’s backdoors – Benjamin CAILLAT

  14. Modularité au niveau fonctionneldes backdoors (4) > Contexte présentationPrésentation des bkdrsDétection FWs persos DémonstrationConclusion • Exemples de modules existants : Présentation de x90re’s backdoors – Benjamin CAILLAT

  15. Notion de forwarder (1) > Contexte présentationPrésentation des bkdrsDétection FWs persos DémonstrationConclusion • Adresse de la partie serveur communiquant peut être retrouvée : • Dans la backdoor elle-même • Dans les logs du proxy • Pour éviter que la remontée à l’attaquant soit possible, des relais (forwarders) sont ajoutés entre la backdoor et BlackMoon Présentation de x90re’s backdoors – Benjamin CAILLAT

  16. Notion de forwarder (2) > Contexte présentationPrésentation des bkdrsDétection FWs persos DémonstrationConclusion • Principe avec un relais (forwarder ) : Proxy HTTP(S) fwd backdoor attaquant Internet Réseau de l’entreprise => Adresse hardcodée et loggée est celle du forwarder Présentation de x90re’s backdoors – Benjamin CAILLAT

  17. Notion de forwarder (3) > Contexte présentationPrésentation des bkdrsDétection FWs persos DémonstrationConclusion • La fonctionnalité de fwd est implémentée par un module ; toute backdoor peut devenir un fwd • Problème : l’attaquant n’a (et ne doit !) avoir aucun lien avec la machine fwd • Celle-ci peut donc s’arrêter à tout moment ! • Il faut donc introduire une redondance Présentation de x90re’s backdoors – Benjamin CAILLAT

  18. Requête Requête Requête Réponse Requête Echec de la connection Réponse Requête Réponse Réponse Réponse Réponse Requête Forwarder éteint Généralisation du conceptRéseau de forwarder (1) > Contexte présentationPrésentation des bkdrsDétection FWs persos DémonstrationConclusion Choisi un fwd au hasard Backdoor BlackMoon fwd fwd Marque fwd comme down Choisi un fwd au hasard Choisi un fwd au hasard fwd fwd fwd fwd Présentation de x90re’s backdoors – Benjamin CAILLAT

  19. Généralisation du conceptRéseau de forwarder (2) > Contexte présentationPrésentation des bkdrsDétection FWs persos DémonstrationConclusion • Chaque relais choisi aléatoirement le relais suivant • Le chemin reste établit pendant une durée limitée (30 s.) puis est reconstruit avec d’autres relais • Si un relais n’est plus disponible, il est écarté de la liste des relais valides Présentation de x90re’s backdoors – Benjamin CAILLAT

  20. Modularité au niveau protocolairedes backdoors (1) > Contexte présentationPrésentation des bkdrsDétection FWs persos DémonstrationConclusion • Par défaut, les backdoors utilisent des canaux cachés dans HTTP pour communiquer • Protocole HTTP est « harcodé » dans backdoors • Comme pour les modules, il est possible de d’ajouter le support de nouveaux protocoles dynamiquement Présentation de x90re’s backdoors – Benjamin CAILLAT

  21. HTTP HTTP ou Protocole 2 Modularité au niveau protocolairedes backdoors (2) > Contexte présentationPrésentation des bkdrsDétection FWs persos DémonstrationConclusion • Interface normalisée entre backdoors et modules protocoles Module 1 Module 2 Backdoor (Fratus ou Parsifal) BlackMoon HTTP Protocole 2 Présentation de x90re’s backdoors – Benjamin CAILLAT

  22. Modularité au niveau protocolairedes backdoors (3) > Contexte présentationPrésentation des bkdrsDétection FWs persos DémonstrationConclusion • Comme pour les modules, l’ajout d’un nouveau protocole se fait en uploadant une dll, qui sera ensuite chargée dans l’espace processus de la backdoor • Les protocoles actuellement supportés sont : • HTTP (Hardcodé dans la backdoor) • HTTPS • DIRECT • JABBER Présentation de x90re’s backdoors – Benjamin CAILLAT

  23. Communication via HTTP > Contexte présentationPrésentation des bkdrsDétection FWs persos DémonstrationConclusion • Communication dans des canaux cachés: • Backdoor => BlackMoon : données encodées (par XOR) dans les requêtes (GET/POST) • BlackMoon => Backdoor : données encodées (par XOR et base 64) et placées à un offset aléatoire dans la page HTML • Une URL est extraite de la page HTML et utilisée lors de la requête suivante • Trafic généré très proche d’un trafic wab Présentation de x90re’s backdoors – Benjamin CAILLAT

  24. Communication via HTTPS > Contexte présentationPrésentation des bkdrsDétection FWs persos DémonstrationConclusion • Ouverture d’une véritable connexion SSL • Nécessite l’upload des librairies OpenSSL • Supporte la communication via PROXY • Des données inutiles sont ajoutées à la réponse pour conserver un rapport U/D faible Présentation de x90re’s backdoors – Benjamin CAILLAT

  25. Communication via DIRECT > Contexte présentationPrésentation des bkdrsDétection FWs persos DémonstrationConclusion • Protocole simple sans canaux cachés • N’est pas un protocole standardisé, ne supporte donc pas les proxys. La communication doit être directe • Peut être utilisé dans un environnement non sécurisé (ordinateur utilisateur classique) Présentation de x90re’s backdoors – Benjamin CAILLAT

  26. Communication via JABBER > Contexte présentationPrésentation des bkdrsDétection FWs persos DémonstrationConclusion • Les données sont encodées en base 64 et envoyée d’un utilisateur à un autre via un message • Protocole plus fragile que les autres car la connexion n’est pas directe Présentation de x90re’s backdoors – Benjamin CAILLAT

  27. Forwarder et protocoles (1) > Contexte présentationPrésentation des bkdrsDétection FWs persos DémonstrationConclusion • Chaque protocole implémente la fonctionnalité de forward en plus de la fonctionnalité « client » • Les forwarders sont capables de désencapsuler des données d’un protocole vers un autre Présentation de x90re’s backdoors – Benjamin CAILLAT

  28. HTTP(S) DIRECT JABBER Forwarder et protocoles (2) > Contexte présentationPrésentation des bkdrsDétection FWs persos DémonstrationConclusion • Par exemple dans la chaîne suivante, la communication va passer par le proxy en HTTP(S), puis passer en JABBER, puis en DIRECT Backdoor Fwd Fwd BlackMoon PROXY JABBER Présentation de x90re’s backdoors – Benjamin CAILLAT

  29. Forwarder et protocoles (3) > Contexte présentationPrésentation des bkdrsDétection FWs persos DémonstrationConclusion • Pour les protocoles HTTP(S) et DIRECT, le FWD doit être accessible depuis Internet • L’utilisation de protocole client-client comme JABBER permet d’avoir des FWD sur des machines non accessibles depuis Internet (par exemple des machines cachées derrière du NAT) Présentation de x90re’s backdoors – Benjamin CAILLAT

  30. Forwarder et protocoles (4) > Contexte présentationPrésentation des bkdrsDétection FWs persos DémonstrationConclusion • La transformation protocole (client/serveur) vers protocole (client/serveur) est facile Présentation de x90re’s backdoors – Benjamin CAILLAT

  31. Forwarder et protocoles (5) > Contexte présentationPrésentation des bkdrsDétection FWs persos DémonstrationConclusion • Dans le cas de protocoles client-client (JABBER), la connexion doit multiplexer les requêtes des backdoors en amont JABBER Présentation de x90re’s backdoors – Benjamin CAILLAT

  32. Présentation de Fratus > Contexte présentationPrésentation des bkdrsDétection FWs persos DémonstrationConclusion • Fratus s’exécute en tant que processus séparé • Elle récupère les paramètres de connexion dans la configuration du navigateur par défaut • Internet Explorer: API wininet.dll, registry • Netscape, Firefox: • fichier “pref.js” stocké dans un répertoire de nom aléatoire • Nécessité d’une recherche récursive • Ne fonctionne pas en cas de PAC Présentation de x90re’s backdoors – Benjamin CAILLAT

  33. WriteProcessMemory Processus 1 Processus 2 Mémoire virtuelle Mémoire virtuelle VirtualAllocEx Threads Threads CreateRemoteThread Présentation de Parsifal (1) > Contexte présentationPrésentation des bkdrsDétection FWs persos DémonstrationConclusion • Parsifal s’exécute en tant que thread dans les processus de l’utilisateur Présentation de x90re’s backdoors – Benjamin CAILLAT

  34. Présentation de Parsifal (2) > Contexte présentationPrésentation des bkdrsDétection FWs persos DémonstrationConclusion • Récupération des paramètres de connexion en hookant certaines fonctions push ebp mov ebp, esp mov eax, [ebp+4] inc eax … ret jmp [hook_code] … code analyse … call [header] … code analyse … ret push ebp mov ebp, esp mov eax, [ebp+4] jmp [suite_func] push […] push […] call [func] … Présentation de x90re’s backdoors – Benjamin CAILLAT

  35. Présentation de Parsifal (3) > Contexte présentationPrésentation des bkdrsDétection FWs persos DémonstrationConclusion • Méthode très puissante : • Récupération des paramètres de connexion • Supporte authentification « Basic » sur le proxy • Indépendant de l’application / méthode de configuration de cette application • Processus initial contenant la backdoor ne s’exécute qu’un temps très court • Connexions initiées à partir applications autorisées à accéder au web => bypass firewalls personnels Présentation de x90re’s backdoors – Benjamin CAILLAT

  36. Présentation de Parsifal (4) > Contexte présentationPrésentation des bkdrsDétection FWs persos DémonstrationConclusion • Parsifal adopte un comportement virale en mémoire • Lors du lancement, tous les processus sont infectés • Tous les nouveaux processus lancés sont également infectés lors du lancement Présentation de x90re’s backdoors – Benjamin CAILLAT

  37. Test accès BlackMoon Accès web iexplore.exe caché Accès BlackMoon Présentation de Parsifal (5) > Contexte présentationPrésentation des bkdrsDétection FWs persos DémonstrationConclusion • Résumé du principe de fonctionnement Parsifal explorer.exe iexplore.exe winword.exe notepad.exe Présentation de x90re’s backdoors – Benjamin CAILLAT

  38. Présentation de Parsifal (6) > Contexte présentationPrésentation des bkdrsDétection FWs persos DémonstrationConclusion • Parsifal intègre d’autres fonctionnalités : • Rootkit user-land : en hookant certaines fonctions cache certains répertoires / clés de registre • Log des données intéressantes (URLs, cookie, données) des requêtes HTTP et HTTPS générées par Internet Explorer • Capture et log des mots de passe POP3 • Ajout d’un destinataire en copie cachée des mails envoyés en SMTP Présentation de x90re’s backdoors – Benjamin CAILLAT

  39. Partie III Détection par des firewalls personnels

  40. Principe des firewalls personnels (1) > Contexte présentationPrésentation des bkdrsDétection FWs persos DémonstrationConclusion • FW perso ~ contrôle des flux par application • Plusieurs types de firewall personnel • FW personnel Windows XP SP2 • FW personnel de base • FW personnel avancé Présentation de x90re’s backdoors – Benjamin CAILLAT

  41. Principe des firewalls personnels (2) > Contexte présentationPrésentation des bkdrsDétection FWs persos DémonstrationConclusion • Fonctions avancées • Contrôle d’intégrité des programmes • Contrôle de l’appel de certaines fonctions pour éviter les injections : • WriteProcessMemory • VirtualAllocEx • CreateRemoteThread • ... Présentation de x90re’s backdoors – Benjamin CAILLAT

  42. Détection des backdoors par les firewalls personnels (1) > Contexte présentationPrésentation des bkdrsDétection FWs persos DémonstrationConclusion • Détection de Fratus et Parsifal (*) : Repose sur réponse de l’utilisateur (**) : Passe malgré la protection !!?? (*) (*) (**) Présentation de x90re’s backdoors – Benjamin CAILLAT

  43. Détection des backdoors par les firewalls personnels (2) > Contexte présentationPrésentation des bkdrsDétection FWs persos DémonstrationConclusion • Exemple de Kerio : Module anti-injection • Module spécial pour éviter injection de code • Lors appel de certaines fonctions, analyse en mode noyau si adresse retour est bien dans un module chargé • Or notre code injecté = portion de mémoire allouée par VirtualAllocEx = code hors des modules chargés • Belle popup « injection detectée » • Alors, protégé ? Présentation de x90re’s backdoors – Benjamin CAILLAT

  44. Détection des backdoors par les firewalls personnels (3) > Contexte présentationPrésentation des bkdrsDétection FWs persos DémonstrationConclusion • Et non ! Appel de la fonction de vérification en noyau faite dans l’espace utilisateur ! push ebp mov ebp, esp mov eax, [ebp+4] inc eax … ret jmp [fw_hook_code] jmp [header] … int 2Eh … analyse code retour - saut [ERREUR] - jmp [header] push ebp mov ebp, esp mov eax, [ebp+4] jmp [suite_func] push […] push […] call [func] … Présentation de x90re’s backdoors – Benjamin CAILLAT

  45. Détection des backdoors par les firewalls personnels (4) > Contexte présentationPrésentation des bkdrsDétection FWs persos DémonstrationConclusion • Exemples : • Kerio 4.2.3 • Tiny Firewall 2005 Professional • Securepoint 3.6 • Norton Personal Firewall 2006 • Conclusion : • Parsifal bypass la majorité des firewalls personnels • Cas ZoneAlarm ? Présentation de x90re’s backdoors – Benjamin CAILLAT

  46. Partie IV Démonstration

  47. Démonstration > Contexte présentationPrésentation des bkdrsDétection FWs persos DémonstrationConclusion • La démonstration est disponible sous forme d’une vidéo sur mon site perso : http://benjamin.caillat.free.fr/backdoors.php Présentation de x90re’s backdoors – Benjamin CAILLAT

  48. Partie V Conclusion

  49. A venir > Contexte présentationPrésentation des bkdrsDétection FWs persos DémonstrationConclusion • Continuer les tests • Améliorer l’efficacité du transfert de données entre les fwd et BlackMoon • Développer de nouveaux modules • Ajouter de nouveaux protocoles (IRC) • Tester avec d’autres firewalls personnels avancés Présentation de x90re’s backdoors – Benjamin CAILLAT

  50. Contact > Contexte présentationPrésentation des bkdrsDétection FWs persos DémonstrationConclusion • Pour toutes questions/remarques: b.caillat@security-labs.org ou x90re@yahoo.fr Présentation de x90re’s backdoors – Benjamin CAILLAT

More Related