• img01
  • img02
  • img03
  • img04
  • img05
jeudi 27 février 2014

Rootkit

1.- INTRODUCTION:
 Il a été pensé dans le but de mieux comprendre le principe des Rootkits pour mieux les utiliser, aussi bien comme moyen de demeurer incognito que de moyen de protection...
Important: ma démarche n'est pas de permettre une utilisation malveillante de ce qui est expliqué ici ou de l'inciter. Mais comme dit le dicton: "mieux vaut prévenir que guérir", connaître et comprendre est le meilleur moyen de se protéger et d'agir.
Tout d'abord qu'est-ce qu'un Rootkit?
Un Rootkit est un programme au départ conçu pour permettre l'accès à un système le plus longtemps possible sans éveiller les soupçons d'un administrateur. Il peut pour cela utiliser différents "exploits" (essentiellement sous Unix/Linux). Mais il peut également servir comme moyen de défense, comme je vais le montrer plus bas.
Quel est le principe?
Conrairement à un programme classique, même furtif comme un troyen par exemple, le Rootkit se loge au coeur du système d'exploitation. Il agit comme un filtre qui intercepte une fonction (dénomination anglaise: "hook") avant qu'elle ne soit envoyée au programme qui lui est destiné. Sa position lui permet en fait d'intercepter les appels systèmes que les autres programmes utilisent, comme par exemple accéder aux fichiers du disque dur. En résumé: le Rootkit se positionne comme interface entre le système d'exploitation et les autres programmes, décidant de ce qu'ils peuvent voir ou faire.
Si par exemple une application tente de lister le contenu des répertoires contenant les fichiers du Rootkit, celui-ci sera en mesure de « censurer » la réponse en ne renvoyant pas au programme la liste de tous les fichiers. Le Rootkit peut agir de même avec la base de registre et la liste des processus actifs.
C'est exactement les fonctions proposées par le Rootkit d'Aphex (AFX), que nous allons détailler dans ce tutoriel pour comprendre le fonctionnement d'un Rootkit.
Son option supplémentaire par rapport à d'autres Rootkit windows, cacher une activité TCP/IP sous netstat, le conduit à être un bon compagnon pour cacher l'activité d'un utilisateur se connectant au PC d'une victime. Certains Rootkit
windows sont conçus dans un but un peu différent, comme permettre une activité ftp cachée (service ftp pirate) sur des serveurs windows. C'est le cas de "Hacker Defender", particulièrement conçu pour cela.
En tous les cas, un Rootkit bien programmé est quasiment indétectable car parfaitement transparent pour l'utilisateur d'un système d'exploitation.
Pour suivre et expérimenter ce tutoriel vous pouvez télécharger le Rootkit à cette adresse: http://iamaphex.cjb.net/
2.- PARAMETRAGE DU ROOTKIT AFX:
Le "AFX Windows Rootkit 2003" a été pensé pour se paramétrer comme un jeu d'enfant. Il se présente sous la forme de quatre fenêtres à configurer. Une fois cela fait, l'utilisateur peut générer un programme (option "generate") qui n'a plus qu'à être exécuté et qui correspondra à ses réglages. Avant de poursuivre, je dois préciser que certaines de mes observations (essentiellement concernant les processus) sont valables uniquement pour un OS NT comme Windows XP ou Windows 2000.
Détaillons les fonctions des quatre fenêtres:
- Dans la fenêtre "Processes" seront insérés les noms des processus que l'on souhaite cacher sur le PC où le Rootkit sera activé (ne pas oublier les .exe). Cela correspond à cacher sur un PC l'utilisation de programmes actifs qui peuvent être révélés en faisant "ctrl+alt+del" (ou "ctrl+alt+sup" selon les claviers).
- Dans la fenêtre "Files" seront insérés les noms des fichiers que son utilisateur souhaite cacher sur le PC où le Rootkit sera activé. Par exemple l'exécutable du Rootkit avec ses dlls. Pour les connaître voir désinstallation...
- Dans la fenêtre "Registry" seront insérés les noms des clés de registre que son utilisateur souhaite cacher sur le PC où le Rootkit sera activé. Par exemple la clé de registre du Rootkit. Pour la connaître voir désinstallation...
- La dernière fenêtre, appelée "Connections", propose un "hook" de la commande netstat. Pour résumer ses possibilités, le Rootkit peut cacher sur le PC une activité réseau révélée avec la commande netstat. Le paramétrage de cette fonction suit le protocole suivant: "*TCP*:[port de connexion à cacher sous netstat]*:*"
Voilà, une fois les réglages faits il ne reste plus qu'à générer l'exécutable avec la fonction "Generate".
3.- COMPLEMENTS CONCERNANT LE FONCTIONNEMENT DU ROOTKIT AFX:
1. Le Rootkit, une fois exécuté, va se copier dans le répertoire Windows/system (ou system32) ainsi que deux dlls: "iexplore.dll" et "explorer.dll". Le fichier qui s'est copié a pour but de recopier ou lancer les deux dlls à chaque démarrage. En fait ce sont les deux dlls qui sont la partie active du Rootkit.

2. Concernant la fonction "Connections", il est à préciser que seul netstat sera hooké, donc un autre programme peut toujours révéler une connexion TCP/IP hookée sous netstat (pour autant que le programme n'utilise pas les fonction de netstat ;-)

3. Les fichiers cachés par le Rootkit sont parfaitement indétectables. Par exemple un antivirus ne sera pas capable, en faisant un scan du disque dur, de détecter les fichiers cachés. Il sera par contre capable, s'il tourne en monitoring, de détecter le lancement des deux dll du rootkit au démarrage si elles ne sont pas rendues indétectables.

4. Concernant un utilisateur de Firewall, en prenant l'exemple d'un troyen, qu'il soit caché par le Rootkit ne veut pas dire qu'un Firewall ne va pas avertir de la connection réseau de ce programme. L'utilisateur en sera averti (si le Firewall est bien paramétré bien sûr). A ce moment existe une faiblesse du Rootkit: un Firewall bien conçu va avertir de la connexion du troyen et pourra préciser le vrai nom du troyen ainsi que le répertoire où il se trouve... Si la connexion est acceptée, le troyen "redevient" transparent: le Firewall n'y voit que du feu et n'arrive pas à montrer le vrai processus actif du troyen (seulement un processus "svchost"). Bref, une fois la connexion acceptée, le troyen est transparent.

5. Enfin, un Rootkit peut parfaitement être détourné de sa fonction première pour être utilisé comme moyen de protection - ou à titre préventif. Il peut par exemple cacher un antivirus ou un Firewall pour empêcher d'être Killés par un...killer AV/FW. Cela fonctionne très bien (testé par l'auteur, comme les précédentes remarques), par exemple avec ZoneAlarmPro. A noter qu'un Killer AV bien programmé peut tout de même désinstaller un Antivirus comme Kaspersky malgré le Rootkit. En effet, concernant Kaspersky ce n'est pas seulement le processus qui doit être protégé mais le service (sous NT/2k/XP). Si le killer est prévu pour désactiver le service Kaspersky, le Rootkit ne peut rien faire. Cela concerne toutefois essentiellement Kaspersky, certainement un des plus coriace à killer proprement (hum).
Une autre utilisation préventive peut être simplement de cacher des programmes (passifs mais aussi actifs!) que l'on ne souhaite pas révéler à une personne réussissant à pénétrer son système...
Le Rootkit Aphex travaille en effet de manière totalement transparente pour l'utilisateur et bien fiable (sans bugs testé sur mon Windows XP).
4.- DESINSTALLATION DU ROOTKIT AFX:
Deux possiblités en fonction du "comment" il a été configuré:

1. Si le rootkit a été programmé pour rendre indétectable son inscription dans la base de registre ainsi que ses dlls et son exécutable, seule solution: démarrer avec une disquette MS-DOS pour le désinstaller (une autre possibilité plus pratique, pour les utilisateurs de multiboot, est de le désinstaller depuis un autre OS qui n'est pas affecté par le rootkit).

2. Si le Rootkit n'a pas été programmé pour être lui-même transparent vous pouvez le désinstaller depuis Windows (pour une désinstallation avec MS-DOS effacez les mêmes fichiers décrits ci-après puis relancez Windows pour désinstaller la clé dans la base de registre):
- Effacez le fichier exécutable généré qui s'est recopié dans le dossier system (Windows/system32 sous Windows XP/2k/NT). Il porte le même nom que l'exécutable lancé la première fois.
- Enlevez la clé du registre qui lance cet exécutable en procédant comme suit:
Exécuter regedit, aller dans "HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Run" et supprimer la clé lançant le nom de l'.exe.
- Les 2 dll "explorer.dll" et "iexplore.dll" sont placées dans le même répertoire système que l'exécutable mais ne peuvent être directement supprimée. Pour le faire de manière sûre, coupez-les (bouton droit, couper) et déplacez-les dans un autre répertoire. Puis redémarrez et supprimez-les définitivement.
5.- MISE A JOUR: EXEMPLE D'UTILISATION DETOURNEE D'UN ROOTKIT
Pour ceux intéressés à expérimenter (je suis sûr qu'il y en a) l'utilisation d'un rootkit détourné de sa fonction première, voici un package comprenant un killer de 5 processus (regedit, msconfig, iexplore, zapro, zonealarm (pour ceux qu'ils l'ont)) et un rootkit protégeant du killer. Toutes les explications sont dans le package.
Télecharger le Package ici

       Note: je garantis ces programmes comme ne contenant pas de backdoor, vers, virus.

0 comments:

Enregistrer un commentaire

Club Informatique : Trucs et Astuce

ABONNEZ-VOUS AUX MISES À JOUR

Obtenez des Tutoriels Pro directement
dans votre boîte de réception


Translate

Popular Posts

Contact

Fourni par Blogger.

Visiteurs

FrancistarAstuce © 2013 Designed by Premium Blog Templates Supported by Best Blogger Templates