s Backdoors Prsentation des backdoors Objectif et plan
's Backdoors Présentation des backdoors
Objectif et plan n n L’objectif de cette présentation est de faire une démonstration des possibilités de backdoors avancées sous Windows Elle commence par une présentation de l’environnement et des backdoors, suivie d’une démonstration effectuée via une capture vidéo - x 90 re backdoors -
Avertissement --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
Partie I Présentation du contexte
Description du contexte n n 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 - x 90 re backdoors -
Réseau de l’entreprise (1) n L’architecture considérée sera une représentation simplifiée d’un réseau d’entreprise : n n n 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 - x 90 re backdoors -
Réseau de l’entreprise (2) PROXY HTTP(S) Réseau de l’entrepris e INTERNET FIREWALL CONNEXIONSDIRECTES DOIVENT PASSER SONT INTERDITES PAR LE PROXY - x 90 re backdoors - SERVEUR HTTP(S)
Partie II Présentation des backdoors
Deux clients, un serveur n Les backdoors sont des parties clientes se connectant sur une partie serveur n n Il existe deux backdoors (parties clientes) : Fratus et Parsifal Elles communiquent avec une partie serveur : Black. Moon - x 90 re backdoors -
Principe de communication n Méthode de communication s’apparente à du polling afin de ressembler à des requêtes web (principe détaillé plus loin) SLEEP Backdoor Réponse Requête - x 90 re backdoors - Black. Moon
n Les backdoors implémentent une interface standard sur laquelle viennent se brancher des « modules » Modularité des backdoors (1) Module 1 Module 2 Backdoor Black. Moon - x 90 re backdoors -
Modularité des backdoors (2) n n n Les backdoors ont pour unique objectif d'établir une communication avec Black. Moon. Les fonctionnalités réelles sont dans les modules Les modules sont des dlls qui exportent un ensemble standardisé de fonctions Elles sont uploadées depuis Black. Moon et chargées dans l'espace processus de la backdoor - x 90 re backdoors -
Modularité des backdoors (3) n Avantages n n 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 - x 90 re backdoors -
Modularité des backdoors (4) n Exemples de modules déjà développés : n n n n CMD = « cmd » distant FIF = Recherche récursive dans les fichiers GPW = Capture de mot de passe BNR = Banner fingerprint FWD = Ajoute la fonctionnalité forward SCAN = Scanner TCP (syn/cnt) / ICMP / UDP SNST = Effectue des screenshots - x 90 re backdoors -
n Adresse de la partie serveur communiquant peut être retrouvée : n n n Dans la backdoor elle-même Dans les. Notion logs du proxy de fwd (1) Pour éviter que la remontée à l’attaquant soit possible, des relais (fwd) sont ajoutés entre la backdoor et Black. Moon - x 90 re backdoors -
Notion de fwd (2) n Principe avec un relais (fwd) : Backdoor n n Réponse Requête fwd Réponse Requête Black. Moon Problème : l’attaquant n’a aucun lien et donc aucun contrôle sur le fwd => celui-ci peut s’arrêter à tout moment Il faut donc introduire une redondance - x 90 re backdoors -
Notion de fwd (3) n Généralisation avec N relais : Choisi Marque un Backdoor fwd au Requête Réponse comme hasard Réponse Requête down Echec de la connection Choisi un fwdfwd au Requête Réponse hasard fwd Choisi un fwdfwd au fwd Forwarder hasard Requête éteint Réponse fwd - x 90 re backdoors - Requête Réponse Black. Moon Réponse Requête
Notion de fwd (4) n n 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 La fonctionnalité de fwd est implémentée par un module; toute backdoor peut devenir un fwd - x 90 re backdoors -
n n Par défaut, les backdoors utilisent des canaux cachés dans HTTP pour communiquer Comme pour les modules, il est possible Modularité du protocole (1) de d’ajouter le support de nouveaux protocoles dynamiquement - x 90 re backdoors -
Modularité du protocole (2) n Il existe une interface normalisée entre les backdoors et les modules protocoles Module 1 Module 2 Backdoor HTTP Black. Moon Protocole 2 - x 90 re backdoors -
Modularité du protocole (3) n n 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 : n n HTTP (Hardcodé dans la backdoor) HTTPS DIRECT JABBER - x 90 re backdoors -
Communication via HTTP (1) n Communication dans des canaux cachés: n n n Backdoor => Black. Moon : données encodées (par XOR) dans les requêtes (GET/POST) Black. Moon => 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 - x 90 re backdoors -
Communication via HTTP (2) n Principe de la communication par HTTP Black. Moon Backdoor HTTP 200 OK … <HTML> … [REAL DATA XOREDHTTP/1. 1 GET http: //www. server. com/options. html & ENCODED IN BASE 64] … </HTML> HTTP 200 OK … <HTML> … [REAL DATA XORED GET /options. html HTTP/1. 1 & ENCODED IN BASE 64] … </HTML> - x 90 re backdoors -
Communication via HTTPS n n Ouverture d’une véritable connexion SSL Nécessite l’upload des librairies Open. SSL Supporte la communication via PROXY Des données inutiles sont ajoutées à la réponse pour conserver un rapport U/D faible - x 90 re backdoors -
Communication via DIRECT n n n 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) - x 90 re backdoors -
Communication via JABBER n n 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 - x 90 re backdoors -
n n Chaque protocole implémente la fonctionnalité de forward en plus de la fonctionnalité « client » Les forwarders capables de(1) FWD etsont protocoles désencapsuler des données d’un protocole vers un autre - x 90 re backdoors -
FWD et protocoles (2) n 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 Black. Moon PROXY HTTP(S) JABBER - x 90 re backdoors - DIRECT
FWD et protocoles (3) n n 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) - x 90 re backdoors -
FWD et protocoles (4) n La transformation protocole (client/serveur) vers protocole (client/serveur) est facile 3 connexions en entrée 3 connexions en sortie - x 90 re backdoors -
FWD et protocoles (5) n Dans le cas de protocoles client-client (JABBER), la connexion doit multiplexer les requêtes des backdoors en amont JABBER 1 seule connexion en sortie 3 connexions en entrée - x 90 re backdoors -
n n Les deux backdoors implémentent toutes les deux les interfaces module et protocole Tous les modules et Modularité conclusion Module 1 Module 2 les protocoles peuvent Backdoor donc se plugger sur (Fratus ou Parsifal) l’une et sur l’autre Protocole HTTP - x 90 re backdoors - 2
n n Fratus s’exécute en tant que processus séparé Elle récupère les paramètres de connexions au web via les fichiers de Présentation deconfiguration Fratus des navigateurs (Internet Explorer, Firefox, Netscape) - x 90 re backdoors -
n n n Parsifal s’exécute en tant que thread dans les processus de l’utilisateur Elle adopte un comportement virale en mémoire Présentation de Parsifal (1) Tous les nouveaux processus lancés sont également infectés - x 90 re backdoors -
Présentation de Parsifal (2) n n Parsifal récupère les paramètres de connexions au web en hookant certaines fonctions et en analysant les paramètres passés lors des appels. Elle n’est donc pas liée à l’utilisation d’un navigateur Une fois les paramètres obtenus, il existe plusieurs modes. Par défaut, elle lance un navigateur caché dans lequel elle s’exécute - x 90 re backdoors -
Présentation de Parsifal (3) n Comme les connexions sont établies à partir de threads dans les navigateurs, Parsifal contourne le filtrage des firewalls personnels - x 90 re backdoors -
Présentation de Parsifal (4) n Autres fonctionnalités: n n n Rootkits user-land (répertoire d’installation et clé de registre de redémarrage cachés) Logge les accès HTTP(S) de Internet Explorer Supporte les proxys avec authentification Récupération des mots de passe POP 3 Envoi d’une copie des mails en bcc - x 90 re backdoors -
Partie III Démonstration
Démonstration n n La démonstration est disponible sous forme d’une vidéo sur mon site perso : http: //benjamin. caillat. free. fr/backdoors. php - x 90 re backdoors -
Partie IV Conclusion
A venir n n n Continuer les tests Améliorer l’efficacité du transfert de données entre les fwd et Black. Moon Développer de nouveaux modules Ajouter de nouveaux protocoles (IRC) Tester avec d’autres firewalls personnels avancés - x 90 re backdoors -
Contact n Pour toutes questions/remarques: b. caillat@security-labs. org - x 90 re backdoors -
- Slides: 42