Last update: 29/05/2007


EtatDéveloppement
Version2.00
Mise à jour18/11/2006

Projet x90re's backdoors
"x90re's backdoors" sont des backdoors furtives avancées pour Windows, développées dans le cadre d'une étude sur la problématique de filtrage des flux sortant.

Contexte : la problématique de filtrage des flux sortants
La quasi totalité des entreprises ont une infrastructure de connexion entre Internet et le réseau interne assurant un contrôle des flux. Elle s'articule autour d'équipements spécialisés (Firewall, Proxy,...) et d'architectures réseaux (DMZ, bascule,...).
L'intrusion depuis l'extérieur sur le réseau interne devient alors relativement délicate, car elle nécessite de prendre le contrôle successif de plusieurs équipements.

Une autre solution consiste à exploiter une erreur humaine pour qu'un programme de notre choix soit exécuté sur le réseau interne: Exécutable envoyé par mail (exploitation d'une faille de la messagerie ou social engineering) ou téléchargé sur Internet sur un faux site,...

En laissant de coté les cas de codes destructeurs, que peut alors faire la backdoor pour permettre à l'attaquant de récupérer des informations ?
Une architecture un peu sérieuse va interdire tout accès direct entre les postes internes et Internet. Les seuls protocoles autorisés seront en général HTTP, HTTPS via un proxy (avec ou sans authentification) et DNS via le serveur DNS de l'entreprise.
Mais cette infrastructure est-elle suffisante pour empêcher toute fuite d'informations ?

C'est dans le cadre de cette étude que j'ai développé deux backdoors pour Windows, visant à montrer que les architectures habituellement mise en oeuvre pour contrôler les flux sortants sont largement insuffisantes pour bloquer une backdoor.
Présentation très rapide des backdoors
Actuellement, ce projet comporte deux backdoors (qui sont des parties clientes) et un serveur sur lequel elles se connectent :
  • BlackMoon est le serveur sur lequel se connectent les backdoors
  • Fratus est la première backdoor : Elle s'exécute en tant que processus séparé.
  • Parsifal est la seconde backdoor : Elle s'exécute en tant que thread injecté dans les processus distants. Elle contourne donc le filtrage des FWs personnels, ainsi que les protections des firewalls avancés dans l'espace utilisateur (par exemple KERIO, Tiny Firewall) (cf démo).
La modularité des backdoors
Les backdoors offrent une double modularité :
  • Au niveau des fonctionnalités
    Les backdoors en elles-mêmes se contentent d'assurer une connectivité avec BlackMoon. Elles implémentent de plus une interface standard sur laquelle viennent se plugger des modules.
    Le développement d'une nouvelle fonctionnalité se fait alors simplement en développant un nouveau module.
    Actuellement, une petite dizaine de modules sont développés : cmd distant, scanner de port, recherche dans les fichiers, banner fingerprint, ...
  • Au niveau protocolaire
    Les backdoors intègrent de base une communication par canaux cachés au sein de HTTP. Elles implémentent de plus une interface standard sur laquelle viennent se plugger des modules "protocoles".
    Le développement d'un nouveau protocole de communication se fait alors simplement en développant un nouveau module "protocole".
    Actuellement, les protocoles implémentés sont : HTTP, "vrai" HTTPS, DIRECT (protocole propriétaire), JABBER
Les deux backdoors implémentent cette interface; les modules peuvent donc se plugger indépendamment sur l'une ou sur l'autre.

Fonctionnalités intrinsèques de Parsifal
Parsifal intègre quelques fonctionnalités supplémentaires permises par son mode de fonctionnement par injection de thread :
  • Rootkit user-land (fichiers, base de registres)
  • Vol de mot de passe runas
  • Vol de mot de passe POP
  • Envoi des mails au pirate en bcc
  • Supporte le passage par un proxy avec authentification "Basic"
La fonctionnalité de relais (forward)
Chaque backdoor peut se transformer en relais pour une backdoor en amont. Il est ainsi possible de construire un réseau maillé de backdoors permettant que les backdoors de niveau N ne connaisse que les backdoors de niveau N-1 et d'éviter ainsi une remontée rapide au pirate.
Ressources : exécutables disponibles
Ressources disponibles
Toutes les ressources du projet x90re's backdoors ne sont pas disponibles en libre téléchargement. Les tableaux suivant résument les éléments accessibles et ceux que je préfère pour l'instant garder privés.

Pour les backdoors :
Backdoor code source Version bridée (console) Version normale Version shellcodisée
Fratus Non disponible En ligne Non disponible Non disponible
Parsifal Non disponible N'existe pas Non disponible Non disponible
Pour les modules :
Module Description Code source Version dll Version shellcodisée
cmd Accès console distant Non disponible En ligne En ligne
cps Compression des fichiers transportés Non disponible En ligne En ligne
direct Support protocole DIRECT Non disponible En ligne En ligne
fif Recherche récursive de chaines Non disponible En ligne En ligne
fwd Fonctionnalité de relais Non disponible En ligne En ligne
https Support protocole HTTPS Non disponible En ligne En ligne
trash Téléchargement des pages trash Non disponible En ligne En ligne
License
L'ensemble des données (programmes et informations) fournis sur cette page et dans l'archive x90re_backdoors.zip sont fournis "tels quels" et sans aucune garantie.
Je ne donne aucune garantie à l’effet que les éléments et le contenu du site sont complets, justes, exacts, exhaustifs, fiables et à jours.
Je ne donne de plus aucune garantie à l’effet que les éléments ou contenus fournis peuvent convenir ou être adaptés à une situation particulière précise par un usager.
Je décline toute responsabilité face à une quelconque perte faisant suite à l'utilisation de ces informations ou programmes. Vous utilisez ces programmes à vos propres risques.
En utilisant ces programmes, vous reconnaissez de plus connaitre et comprendre leur nature (des backdoors) et leur objectif; Vous reconnaissez donc les téléchargez et utilisez en pleine connaissance de cause et en me dégageant de toute responsabilité.
Vous vous engagez de plus à ne pas modifier les exécutables, notamment pour obtenir des outils véritablement opérationnels.
Vous vous engagez à n'utiliser ces outils que dans un cadre strictement privé ou dans le cadre d'une relation contractuelle parfaitement définie dans laquelle le propriétaire de la machine ciblée aura été informé et aura approuvé l'utilisation de tels outils.
Vous vous engagez à ne pas utiliser ces outils dans un cadre ne respectant pas ces conditions
Cette archive contient la version console de Fratus, BlackMoon et les différents modules en version dll et shellcodisée.
Ressources : Documentation / vidéos (ancienne version)
Page de démo
Une démo présentant pas à pas l'utilisation de Fratus est décrite sur la page de démo de Fratus.
Page de vidéos
Des vidéos simulant une attaque "réaliste" sur une entreprise sont regroupées sur la page des vidéos de x90re's backdoors.
Powerpoint de présentation des backdoors
Ce powerpoint présente rapidement les backdoors : Présentation x90re Backdoors
Une remarque/un bug ?
Ce projet a été mis en ligne récemment, merci de me faire part de vos remarques/suggestions pour l'améliorer: Benjamin CAILLAT