s backdoors présentation des backdoors. - x90re backdoors - objectif et plan lobjectif de cette...
TRANSCRIPT
's Backdoors
Présentation
des backdoors
- x90re backdoors -
Objectif et plan
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
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 IPrésentation du contexte
- x90re backdoors -
Description du contexte
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
- x90re backdoors -
Réseau de l’entreprise (1)
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
- x90re backdoors -
Réseau de l’entreprise (2)
INTERNETRéseau
de l’entrepri
se
FIREWALL
PROXY HTTP(S)
SERVEUR HTTP(S)
CONNEXIONS DOIVENT PASSER PAR
LE PROXY
CONNEXIONS DIRECTES SONT
INTERDITES
Partie IIPrésentation des backdoors
- x90re backdoors -
Deux clients, un serveur
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
- x90re backdoors -
Principe de communication
Méthode de communication s’apparente à du polling afin de ressembler à des requêtes web (principe détaillé plus loin)
Backdoor BlackMoonRequête
RéponseSLEEP
- x90re backdoors -
Les backdoors implémentent une interface standard sur laquelle viennent se brancher des « modules »
Modularité des backdoors (1)Module 1Module 2
Backdoor BlackMoon
- x90re backdoors -
Modularité des backdoors (2)
Les backdoors ont pour unique objectif d'établir une communication avec BlackMoon. 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 BlackMoon et chargées dans l'espace processus de la backdoor
- x90re backdoors -
Modularité des backdoors (3)
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
- x90re backdoors -
Modularité des backdoors (4)
Exemples de modules déjà développés : 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
- x90re backdoors -
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 (fwd) sont ajoutés entre la backdoor et BlackMoon
Notion de fwd (1)
- x90re backdoors -
Notion de fwd (2)
Principe avec un relais (fwd) :
Requête
RéponseBackdoor BlackMoonfwd
Requête
Réponse
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
- x90re backdoors -
Réponse
Réponse
Notion de fwd (3)
Généralisation avec N relais :
Backdoor BlackMoonfwd
fwd
fwd
fwd
fwd
fwd
Requête
Requête
Réponse
Requête
Réponse
Choisi un fwd au hasard
Requête
Requête
Requête
Réponse
Réponse
Choisi un fwd au hasard
Choisi un fwd au hasard
Forwarder éteint
Echec de la connection
Marque fwd
comme down
- x90re backdoors -
Notion de fwd (4)
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
- x90re backdoors -
Par défaut, les backdoors utilisent des canaux cachés dans HTTP pour communiquer
Comme pour les modules, il est possible de d’ajouter le support de nouveaux protocoles dynamiquement
Modularité du protocole (1)
- x90re backdoors -
Modularité du protocole (2)
Il existe une interface normalisée entre les backdoors et les modules protocoles
Backdoor
Module 1Module 2
BlackMoonHTTP Protocole
2
- x90re backdoors -
Modularité du protocole (3)
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
- x90re backdoors -
Communication via HTTP (1)
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
- x90re backdoors -
Communication via HTTP (2)
Principe de la communication par HTTP
Backdoor BlackMoon
GET http://www.server.com/options.html HTTP/1.1 GET /options.html HTTP/1.1
HTTP 200 OK…<HTML>…[REAL DATA XORED& ENCODED IN BASE64]…</HTML>
HTTP 200 OK…<HTML>…[REAL DATA XORED& ENCODED IN BASE64]…</HTML>
- x90re backdoors -
Communication via HTTPS
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
- x90re backdoors -
Communication via DIRECT
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)
- x90re backdoors -
Communication via JABBER
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
- x90re backdoors -
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
FWD et protocoles (1)
- x90re backdoors -
FWD et protocoles (2)
PROXY
Par exemple dans la chaîne suivante, la communication va passer par le proxy en HTTP(S), puis passer en JABBER, puis en DIRECT
JABBER
JABBERDIRECT
Backdoor BlackMoon
HTTP(S)
- x90re backdoors -
FWD et protocoles (3)
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)
- x90re backdoors -
FWD et protocoles (4)
La transformation protocole (client/serveur) vers protocole (client/serveur) est facile
3 connexions en entrée
3 connexions
en sortie
- x90re backdoors -
FWD et protocoles (5)
Dans le cas de protocoles client-client (JABBER), la connexion doit multiplexer les requêtes des backdoors en amont
3 connexions en entrée
JABBER
1 seule connexion en sortie
- x90re backdoors -
Les deux backdoors implémentent toutes les deux les interfaces module et protocole
Tous les modules et
les protocoles peuvent
donc se plugger sur
l’une et sur l’autre
Modularité conclusionModule 1Module 2
Backdoor(Fratus ou Parsifal)
HTTP Protocole2
- x90re backdoors -
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 configuration des navigateurs (Internet Explorer, Firefox, Netscape)
Présentation de Fratus
- x90re backdoors -
Parsifal s’exécute en tant que thread dans les processus de l’utilisateur
Elle adopte un comportement virale en mémoire
Tous les nouveaux processus lancés sont également infectés
Présentation de Parsifal (1)
- x90re backdoors -
Présentation de Parsifal (2)
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
- x90re backdoors -
Présentation de Parsifal (3)
Comme les connexions sont établies à partir de threads dans les navigateurs, Parsifal contourne le filtrage des firewalls personnels
- x90re backdoors -
Présentation de Parsifal (4)
Autres fonctionnalités: 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 POP3 Envoi d’une copie des mails en bcc
Partie III Démonstration
- x90re backdoors -
Démonstration
La démonstration est disponible sous forme d’une vidéo sur mon site perso :
http://benjamin.caillat.free.fr/backdoors.php
Partie IVConclusion
- x90re backdoors -
A venir
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