BlackMoon - Benjamin Caillat

publicité
's Backdoors
Présentation
des 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
- x90re 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


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)
PROXY
HTTP(S)
Réseau de
l’entrepris
e
INTERNET
FIREWALL
CONNEXIONS
CONNEXIONSDIRECTES
DOIVENT
PASSER
SONT INTERDITES
PAR LE PROXY
- x90re backdoors -
SERVEUR
HTTP(S)
Partie II
Présentation des 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)
SLEEP
Backdoor
Réponse
Requête
- x90re backdoors -
BlackMoon

Les backdoors implémentent une interface
standard sur laquelle viennent se brancher
des « modules »
Modularité
des
backdoors
(1)
Module 1 Module 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 lesNotion
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 BlackMoon
- x90re backdoors -
Notion de fwd (2)

Principe avec un relais (fwd) :
Backdoor


Réponse
Requête
fwd
Réponse
Requête
BlackMoon
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 -
Notion de fwd (3)

Généralisation avec N relais :
Choisi
Marque
un
Backdoor
fwd
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
fwd
- x90re backdoors -
Requête
Réponse
BlackMoon
Réponse
Requête
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
Modularité
du protocole
(1) de
d’ajouter le support de nouveaux protocoles
dynamiquement
- x90re backdoors -
Modularité du protocole (2)

Il existe une interface normalisée entre les
backdoors et les modules protocoles
Module 1 Module 2
Backdoor
HTTP
BlackMoon
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
BlackMoon
Backdoor
HTTP 200 OK
…
<HTML>
…
[REAL DATA XOREDHTTP/1.1
GET http://www.server.com/options.html
& ENCODED IN BASE64]
…
</HTML>
HTTP 200 OK
…
<HTML>
…
[REAL
DATA XORED
GET /options.html
HTTP/1.1
& 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
capables de(1)
FWD etsont
protocoles
désencapsuler des données d’un protocole
vers un autre
- x90re backdoors -
FWD et protocoles (2)

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
BlackMoon
PROXY
HTTP(S)
JABBER
JABBER
- x90re backdoors -
DIRECT
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
JABBER
1 seule
connexion
en sortie
3 connexions
en entrée
- x90re backdoors -


Les deux backdoors implémentent toutes
les deux les interfaces module et protocole
Tous les modules et
Module 1 Module 2
Modularité
conclusion
les protocoles
peuvent
Backdoor
donc se plugger sur
(Fratus ou Parsifal)
l’une et sur l’autre
Protocole
HTTP
- x90re backdoors -
2


Fratus s’exécute en tant que processus
séparé
Elle récupère les paramètres de
connexions
au web via les
de
Présentation
defichiers
Fratus
configuration des navigateurs (Internet
Explorer, Firefox, Netscape)
- x90re backdoors -



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
- 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
- x90re backdoors -
Partie III
Démonstration
Démonstration


La démonstration est disponible sous forme
d’une vidéo sur mon site perso :
http://benjamin.caillat.free.fr/backdoors.php
- x90re backdoors -
Partie IV
Conclusion
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
- x90re backdoors -
Contact

Pour toutes questions/remarques:
[email protected]
- x90re backdoors -
Téléchargement