Retour

Tout ce que vous avez voulu savoir sur 

backorifice.gif (1301 octets)
(Cult of the Dead Cow Communications) 

Etude réalisée par Jean-Claude BELLAMY © 1998
Copie et diffusion de ce document autorisée

http://www.bellamyjc.net/

1. Définition de "Back Orifice" 
2. Origine et buts de "Back Orifice"
3. Composition de Back Orifice
4. Installation de Back Orifice

     

4.1.Serveur 
4.2 Client 
4.3 Principe de communication client/serveur 
4.4 Plates-formes des tests effectués ici 
5. Tests
6. Conséquences
7. Les parades

     

7.1.Préventives
7.2 Curatives
7.3 Outils d'éradication ou de surveillance
8. La rumeur...
9. Conclusion

1.Définition de "Back Orifice"

"Back Orifice" est une application client/serveur qui permet au logiciel client de surveiller, administrer, et effectuer à distance n'importe quelle action (réseau, multimédia, redémarrage, fichiers,…) sur la machine exécutant le serveur.

Actuellement (09/98 : version 4.00.1), le serveur ne peut s'exécuter que sous Windows 95/98.
Par contre, l'application cliente (en mode console ou en mode graphique) peut être lancée sous Windows 95/98 ou Windows NT, et même sous UNIX (interface console seulement).

On a coutume de remplacer "Back Orifice" par ses initiales ("BO"), mais cet usage est à éviter, car "BO" désigne avant tout le produit "Business Objects", outil servant à accéder, analyser et partager les informations contenues dans des bases de données, ce qui n'a évidemmment rien de commun avec "Back Orifice".


2.Origine et buts de "Back Orifice"

Cette application a été développée en 1998 par un groupe de "hackers" nommé "Cult of the Dead Cow" (cDc) et diffusée sur Internet très rapidement, dans le but (d'après leurs auteurs) de mettre en évidence les trous de sécurité existant dans Windows  95/98 (et donc de dévaloriser ce système. L'intention "anti-MicroSoft" est clairement affichée, comme en témoigne le nom même de "Back Orifice", évoquant la suite bureautique de Microsoft "Back Office").
Ce groupe n'est pas clandestin :

Il a été créé en 1984 et a adopté ce nom pour le moins étrange de "Culte de la Vache morte" par référence à une expression utilisée par Li Peng pour désigner (avec un certain mépris) le respect des Droits de l'Homme (Les hackers du cDc n'ont pas apprécié la rencontre de Bill Gates avec le président chinois en 1996).

Remarque importante : ce logiciel n'est pas un virus !

Au cours des tests décrits ici, Back Orifice a été soumis aux 2 principaux logiciels anti-virus :


3.Composition de Back Orifice

Il peut être obtenu depuis différents sites Internet :
Pour l'application client et serveur Windows (exécutables - le fichier compressé a une taille de 278 ko) :

Pour l'application cliente UNIX (source + makefile - le fichier compressé a une taille de 27 ko) :

Back Orifice a été téléchargé 35 000 fois dans les 4 premières heures et 100 000 fois après 21 jours (à l'heure actuelle plus de 200 000 fois)!
Une fois décompressé (version Windows) , "Back Orifice" se compose des fichiers suivants :
 

Nom

Taille (ko)

Implantation

Interface

Rôle

BOGUI.EXE

284 160 

Client

Graphique

Application cliente en mode graphique, permettant d'envoyer des commandes vers la station serveur

BOCLIENT.EXE

57 856 

Client

Console

Application cliente en mode texte, permettant d'envoyer des commandes vers la station serveur

BOCONFIG.EXE

28 672 

Client

Console

Module de configuration de l'exécutable serveur (nom, mot de passe, n° de port IP)

FREEZE.EXE

33 280 

Client

Console

Compresseur de fichiers

MELT.EXE

29 184 

Client

Console

Décompresseur de fichiers

BOSERVE.EXE

124 928 

Serveur

Néant

Application serveur lancée en tâche de fond sur la station Windows 95/98

BO.TXT

15 184 

Client

 

Documentation générale

PLUGIN.TXT

914 

Client

 

Documentation sur les extensions possibles


4.Installation de Back Orifice

4.1.Serveur

Il suffit d'exécuter le fichier exécutable BOSERVE.EXE

Cette exécution peut être effectuée :

Lors de sa première exécution, BOSERVE.EXE va procéder aux 2 opérations suivantes :

Conséquences :
La clé désignée ci-dessus contient la liste de toutes les applications lancées au démarrage de Windows, avant même l'ouverture d'une session utilisateur. Or l'éditeur de stratégies système "PolEdit" (fourni avec Windows) ne trouve aucune trace de Back Orifice (rubrique "Registre /Ordinateur local/ Système/ Programmes à exécuter/ Exécuter services" qui sert à afficher et/ou éditer la listes des services).
Cette anomalie s'explique simplement par le fait que Back Orifice, renommé en " .exe", est un service sans nom puisque inscrit dans la valeur par défaut de la clé de la BDR.
Seul un examen approfondi de la BDR à l'aide de regedit peut repérer Back Orifice (et à la condition de connaître son nouveau nom " .exe")

Ce que "voit" Poledit (6 entrées) :

Ce qu'il y a dans la BDR (7 entrées) :


L'analyse approfondie du module exécutable BOSERVE.EXE (à l'aide du logiciel SCANBIN conçu par l'auteur de ce rapport) a donné les résultats suivants :

Informations générales
======================
Dernière mise à jour : 03/08/98
Taille fichier : 124 928 octet(s)
Type de module : exécutable WINDOWS (32 bits) : Windows Graphic User Interface
Description Fichier :
Version logiciel : 4, 0, 0, 1
Nom Compagnie :
Copyright : Copyright © 1998
Nom interne :
Nom de fichier initial :
Nom de produit :
Version de produit : 4, 0, 0, 1
Langues : Indépendant de la langue
Module utilisé : 0 fois
ATTENTION !
Ce fichier fait appel aux API des librairies suivantes :
KERNEL32: LoadLibrarya
KERNEL32: GetProcAddress
=> Les listes des DLL et Imports peuvent donc être incomplètes

DLL utilisées
=============
Appels directs
--------------------------------------------------------------
dll-32 advapi32.dll 27/05/97 247 056 octet(s) (API avancées Windows 32)
dll-32 avicap32.dll 11/08/96 71 440 octet(s) (Classe de fenêtre de capture AVI Microsoft)
dll-32 gdi32.dll 27/05/97 165 648 octet(s) (DLL client de GDI)
dll-32 kernel32.dll 27/05/97 381 200 octet(s) (DLL cliente pour API Windows)
dll-32 mpr.dll 27/05/97 59 152 octet(s) (DLL de routeur de fournisseurs multiples)
dll-32 user32.dll 27/05/97 331 024 octet(s) (DLL client de l'API USER de Windows)
dll-32 winmm.dll 11/08/96 152 848 octet(s) (DLL API MCI)
dll-32 wsock32.dll 11/08/96 21 264 octet(s) (DLL Socket 32-bits Windows)
dll-32 svrapi.dll 14/03/98 32 768 octet(s) (32-bit common Server API library)

Ressources
==========
1 ressource type "DLL" ID= 102
1 ressource type "Icône" (code=0003)ID= 1
1 ressource type "Groupe d'icônes" (code=000E) ID= 101

Fonctions importées (extrait)
=============================
ADVAPI32 86 GetUserNameA
ADVAPI32 201 RegDeleteKeyA
ADVAPI32 225 RegQueryValueExA
ADVAPI32 236 RegSetValueExA
...
KERNEL32 98 ExitProcess
KERNEL32 99 ExitThread
KERNEL32 204 GetDiskFreeSpaceA
KERNEL32 376 LoadLibraryA
KERNEL32 381 LoadResource
KERNEL32 396 MapViewOfFile
KERNEL32 398 MoveFileA
KERNEL32 591 WriteFile
...
MPR 27 WNetAddConnectionA
MPR 32 WNetCancelConnectionA
MPR 41 WNetEnumCachedPasswords
...
SVRAPI 13 NetSessionEnum
SVRAPI 15 NetShareAdd
SVRAPI 16 NetShareDel
SVRAPI 17 NetShareEnum
...
USER32 16 CallNextHookEx
USER32 196 ExitWindowsEx
USER32 526 SetWindowsHookExA
USER32 558 UnhookWindowsHookEx
...
WSOCK32 2247 GetDeviceCaps

On notera les points particuliers suivants :

Informations générales : DLL102.DLL
===================================
Dernière mise à jour : 12/09/98
Taille fichier : 8 192 octet(s)
Type de module : Librairie de liens dynamiques WINDOWS (32 bits)

DLL utilisées
=============
Appels directs
--------------------------------------------------------------
dll-32 kernel32.dll 27/05/97 381 200 octet(s) (DLL cliente pour API Windows)
dll-32 msvcrt40.dll 11/08/96 65 024 octet(s) (DLL forwarder de librairie runtime Microsoft)
dll-32 user32.dll 27/05/97 331 024 octet(s) (DLL client de l'API USER de Windows)

Fonctions exportées
===================
0 _ConsoleHookProc@12
1 _KeyHookProc@12

Back Orifice fait appel à des API très importantes de Windows. Par exemple on dénote :

4.2 Client

Il suffit d'exécuter (sous Windows) l'un des deux programmes BOCLIENT.EXE (mode console) ou BOGUI.EXE (mode graphique).

 
4.3 Principe de communication client/serveur

Le client et le serveur échangent des paquets cryptés en UDP/IP (donc un mode non connecté) et utilisent par défaut le port n° 31337 .
Ce n° peut être modifié à l'aide d'un utilitaire (boconfig.exe) appliqué sur le module serveur avant téléchargement vers le serveur. Il suffit ensuite que l'application cliente connaisse le hostname ou adresse IP du serveur, ainsi que le n° de port retenu.
Dans le cas où le serveur n'a pas d'adresse IP statique (adresse dynamique attribuée par un serveur DHCP), il a été prévu dans l'application cliente une procédure de balayage de plages d'adresses IP, effectuant alors une série de "ping" jusqu'à ce que le serveur réponde.
Un nombre très important de commandes est disponible. Certaines sont des commandes TCP/IP encapsulées. On a recensé et testé ici seulement les principales.
Pour plus de détails sur le protocole utilisé, veuillez consulter le site consacré à "NOBO"

4.4 Plates-formes des tests effectués ici

Plate-forme cliente :
PC sous Windows NT4 server (Pentium II 333 – 256 Mo de RAM)
L'interface graphique BOGUI.EXE (278 ko) a été utilisée (très ergonomique au demeurant)

Plate-forme serveur :
PC sous Windows 98 (Pentium 133 – 32 Mo de RAM)


5.Tests

les adresses IP apparaissant dans les captures d'écran suivantes appartiennent à un réseaulocal protégé par un coupe-feu et ne sont donc pas accessibles depuis Internet

"System Info" 

Affiche les caractéristiques principales du serveur : 

  • Processeur 
  • Système d'exploitation
  • Mémoire vive
  • Disques durs

"File view" 

Affiche le contenu de n'importe quel fichier texte (dans l'exemple ci-contre, le fichier "notes.ini")

"HTTP Enable" 

Back Orifice serveur contient un serveur HTTP, dont on peut choisir le n° de port. Ici, on a retenu 8181. 

Il est alors possible d'explorer les répertoires depuis n'importe quel navigateur Web par l'URL http://cli53gl:8181

"Process list" 

Affiche la liste de tous les processus actifs sur le serveur.

"Reg list values" 

Affiche la liste des valeurs contenues dans une clé de la base de registres. Dans l'exemple ci-contre, on affiche la liste des services. 

"System dialogbox" 

Permet d'afficher sur le serveur une boite de dialogue avec le titre et le message que l'on veut. 

"System Passwords" 

Une des fonctionnalités les plus étonnantes (et dangereuses) : Back Orifice affiche en clair TOUS les mots de passe réseau mémorisés par le système ! 

(ces mots de passe ont été masqués dans l'exemple ci-contre!)

Les autres commandes existantes sont :


6.Conséquences

Elles sont évidentes : Si le serveur Back Orifice a été introduit sur une station Windows 95/98 dans un but malintentionné, toute station dotée du client Back Orifice pourra TOUT faire à distance sur cette machine (suppression de fichier, capture de mot de passe, exécution de n'importe quel programme,…)

Donc les conséquences peuvent être très graves !

Mais il faut noter que l'utilisation d'outils de télémaintenance tout à fait "officiels" comme "PCAnyWhere", "Carbon Copy", "LapLink", … peuvent de la même façon perturber le fonctionnement d'une machine s'ils sont mal utilisés.

Cette situation est due au fait qu'il n'y a aucune sécurité réelle dans Windows 95/98 , à l'opposé de Windows NT et de tout système UNIX. Une fois que l'on a pu accéder par exemple au "menu démarrer", il n'y a pas de contrôle d'exécution par rapport à l'utilisateur en cours (Par exemple, sous Windows NT, l'accès à la base de registre est réservée aux administrateurs, de même, sous UNIX, seul le compte "root"' peut modifier les fichiers de configuration situés dans le répertoire /etc)


7.Les parades

Elles sont assez simples à mettre en œuvre, comme on va le voir.

7.1.Préventives

7.2 Curatives

Comme on a pu le voir précédemment, Back Orifice serveur est constitué d'un seul fichier (BOSERVER.EXE, renommé en " .exe"), et d'une clé dans la Base de Registres. Donc pour enlever Back Orifice de sa machine, il suffit de :

7.3 Outils d'éradication ou de surveillance

Indépendamment des anti-virus habituels, différents outils (offciiels ou non) ont été développés soit pour éradiquer Back Orifice, soit pour averir l'utilisateur qu'il est "espionné" par Back Orifice (liste non exhaustive!) :

Antigen

Cet utilitaire gratuit sert à détecter, nettoyer et détruire Back Orifice. Il utilise une interface graphique pour guider l'utilisateur dans cette tâche. C'est un produit de Fresh Software.
Il est disponible à l'adresse suivante :
http://www.arez.com/fs/antigen/

Back Orifix

Ce logiciel est diffusé gratuitement sur Internet depuis le 1er septembre 1998. Il  émane de l'entreprise canadienne "GroupAxion". Son but est de supprimer Back Orifice. Back Orifix effectue une recherche complète de Back Orifice, affiche le fichier le concernant puis le supprime. Par contre, il ne restaure pas la Base de registres, ce qui est un oubli important.
Il est disponible à l'adresse suivante :
http://www.groupaxion.com/BOrifix/telechargement.html
Remarque : dans un document intitulé "GroupaXion - Back OrifiX - Communiqué", GroupAxion a eu tendance a dramatiser un peu la situation. Par exemple, on a pu relever les passages suivants :
"Jusqu'à la mise au point du logiciel de protection Back OrifiX, la manière la plus rapide et la plus simple de se débarrasser de [Back Orifice] était de réinstaller Windows ".
On peut heureusement se dispenser de cette opération, pour le moins radicale, par une simple suppression de fichier et modification d'une clé de la BDR
"Il reste également invisible lorsque vous accédez aux commandes " Control-alt-delete" qui fournit la liste des programmes en cours d'utilisation"
Il est exact que le pseudo-gestionnaire de processus de Windows 95/98 ne "voit" pas Back Orifice, par contre n'importe quel outil sérieux donnant la liste des processus l'affichera.
Exemple obtenu avec "SCANBIN" (extrait)

Liste des modules actifs (12/09/1998 16:32:45)
Modules exe-32
...
1 c:\fisc\flash\flshstat.exe
1 c:\program files\mcafee\virusscan\vshwin32.exe
1 c:\windows\explorer.exe
1 c:\windows\flexicd.exe
1 c:\windows\system\ .exe
1 c:\windows\system\inetsrv\inetinfo.exe
1 c:\windows\system\mprexe.exe
...

BOFreeze

Cet utilitaire gratuit a un rôle défensif. Il ne prémunit pas contre l'infiltration de Back Orifice et ne le supprime pas, par contre il peut avertir l'utilisateur d'une "attaque" de Back Orifice. Il  identifie les paquets UDP arrivant sur le PC, les décrypte et détecte la chaîne caractéristique de Back Orifice qui est   *!*QWTY? .
Ensuite il retourne au client Back Orifice des paquets volontairement malformés afin de le bloquer complètement.
Il est disponible à l'adresse suivante :
http://members.xoom.com/wzc/bof/main.html

NOBO

Cet utilitaire gratuit sert à détecter une attaque de Back Orifice. Il ne prémunit pas contre l'infiltration de Back Orifice et ne le supprime pas.Il engistre les paquets UDP arrivant sur le PC et les stocke dans un fichier journal.
Il est disponible à l'adresse suivante :
http://web.cip.com.br/nobo/nobo_en.html


8.La rumeur...

Il circule depuis quelque temps sur Internet une rumeur comme quoi un poste (Windows 95/98) infecté par Back Orifice (=serveur) et/ou un poste client se connecterai(en)t à l'insu des utilisateurs vers le serveur http://www.netninja.com (qui existe réellement d'ailleurs).

Cela me semble de la plus haute fantaisie, et donc relever effectivement de la rumeur comme on a trop tendance à en voir circuler sur Internet..

Pour étayer cela, les test suivants ont été effectués  :

  1. Analyse dans le détail des exécutables "boserve.exe" (le serveur = le cheval de Troie), "bogui.exe" (le client), ainsi que de la DLL intégrée dans une ressource de boserve.exe. Les vidages hexadécimaux complets des fichiers (122 ko et 278 ko) ont été étudiés. Toutes les ressources (stringtable, data,..) ont été analysées.

Rien qui puisse ressembler à une adresse IPn'a été détecté (encore que cela soit hautement improbable, car rien n'est plus mouvant qu'une adresse IP), ni à un hostname. Cela n'est cependant pas une preuve absolue, le hostname pouvant éventuellement être crypté.

De plus, en ce qui concerne le client, l'analyse est beaucoup plus simple et claire, puisque les sources (UNIX) sont disponibles. Même l'algorithme de cryptage de la magic string "*!*QWTY?" y figure ! Et on peut affirmer que rien ne fait référence à une quelconque connexion occulte.

  1. (Ré)installation de BOSERVE sur une machine sous Windows 98 (= délibérément infectée par Back Orifice), ainsi que BOGUI sur une autre machine sous Windows NT 4. Pour être sûr que ces deux exécutables ne fassent pas appel à des DLL "non référencées", ils ont été lancés en "exécution contrôlée" (à l'aide de Scanbin)

A l'aide d'un analyseur de trafic réseau installé sur une 3ème machine appartenant au même sous-réseau, on a capturé  l'intégralité des datagrammesIP entrants et sortants des 2 machines concernées par Back Orifice .On a pu ainsi reconnaître les datagrammes UDP sur le port 31337, transitant entre client et serveur, mais à aucun moment il n'y a eu de connexion vers d'autres machines.

  1. Le seul lien que l'on ait pu trouver entre Back Orifice et NetNinja est un plugin ("SpeakEasy"), disponible sur le site Netninja.
    Ce plug-in permet de se connecter sur un serveur IRC, canal #BO_OWNED, avec un nom aléatoire. A partir de là, il annonce périodiquement l'adresse IP du serveur Back Orifice.

C'est peut-être là l'origine de cette rumeur !

L'information :
"Sur NetNinja, on trouve un outil pour Back Orifice permettant de communiquer son adresse IP"
a du être peu à peu déformée en :
"Back Orifice communique son adresse IP à NetNinja"


9.Conclusion

"Back Orifice" est un logiciel REMARQUABLE, de par ses possibilités et sa compacité. Il est totalement excessif de qualifier le cDc de "cybercriminels" (ne pas confondre "hacker" et "cracker"). Il peut avoir des conséquences très graves s'il est utilisé à des fins malsaines, toutefois il ne faut pas céder à la panique. Et cela pour deux raisons principalement :

  1. Back Orifice n'est pas un virus (il ne se multiplie pas insidieusement en infectant d'autres fichiers)
  2. Back Orifice peut s'enlever facilement

Mais inversement, il ne faut pas non plus négliger ce danger potentiel, comme a pu le faire Microsoft, qui a fait preuve d'une désinvolture certaine :

D'autre part, Microsoft a objecté que "…computers running Windows 95 and Windows 98 are not vulnerable if the computer is not connected to the outside world …". Or on peut très bien envisager le cas, (au sein d'une entreprise, d'une université,...) d'un employé, étudiant,... malintentionné "espionnant" les machines de ses collègues ou condisciples !

On peut espérer que cette mise en défaut JUSTIFIEE de la sécurité de Windows95/98 incitera donc MicroSoft à réagir, et à fournir auprès des utilisateurs de son système les outils correctifs qui s'imposent. En particulier, le système utilisé par Windows 95/98 de cache des mots de passe en clair est à revoir le plus rapidement possible !

Par ailleurs, il est urgent que TOUS les éditeurs de logiciels anti-virus actualisent rapidement leurs bases de signatures (si cela n'est pas déjà fait bien sûr). (p.ex. McAfee a été en retard sur Norton)


Retour haut

Retour

Dernière mise à jour :