Autour du PC

Chevaux de Troie

Electronique

Trucs et astuces

Sécurité

 

CSS Valide !

Site optimisé en 1024x768



 

Les Rootkits

Nouvelles menaces

Il faut bien l'avouer, les menaces virales planant sur nos chèrs PC sont, et ceci en comparaison avec le debut des années 2000, en recules.Pourquoi ? A mon avis plusieurs raisons à cela:
- Les systèmes de plus en plus sécurisés, leurs failles comblés, les mise à jour effectuées.
- La prise de conscience des utilisateurs à utiliser un antivirus et un pare-feu.
- Les solutions de sécurité de la plupart des editeurs mettant sur le marché des packs "tout en un", regroupant, tenez vous bien, ni plus ni moins qu'un antivirus, un pare-feu, un anti-Spam, un anti-Spy, un anti-Phishing (anti hameçonnage)....et dans certains cas un anti rootkits. C'est cette derniere bête noire qui va être l'objet de cette page.

 Donc, face à tout ces outils, les developpeurs de code ont bien du mal à faire ingerer à nos micros quelques lignes de code malsain aussitôt détectées par les logiciels de protection.
 Qu'à cela ne tienne, les menaces à venir sont plus serieuses et dans la finalité plus graves. Fini le jeu du chat et la souris, les défis et le prestige d'avoir exploité telle ou telle faille, la motivation est aujourd'hui l'appat du gain.
 Les téléphones mobiles vont être de plus en plus victime de pratiques frauduleuses (smishing, vishing) ou de l'utilisation détournée du Bluetooth.
L'arrivé du Web 2.0 accompagné de ses nouvelles routines de code (JavaScript, Ajax,...) sont au rendez-vous, exploitant la vulnérabilité des navigateurs.

Inquiétant tout ça...mais revenons à la tendance actuelle: les Rootkits.

Qu'est-ce que l'on appelle RootKit

Un rootkits est un programme dont la spécialité est la furtivité, en effet il se rend invisible (au yeux de l'utilisateur, du sytème d'exploitation, des anti-virus...), il peut rendre invisible d'autres programmes de toutes sortes, masquer des clés et des valeurs dans la base de registres, masquer des connections reseau...

Le but final est d'ouvrir des portes (backdoor) et ceci en toute transparence.
Tous le monde est d'accord sur le fait qu'il est fortement déconseillé d'utiliser le PC (pour des tâches quotidiennes) sous un environnement Administrateur (pleins droits); une des raisons c'est que l'installation d'un Rootkit necessite des droits administrateur afin de modifier le noyau du système.

Comment ça fonctionne

Windows travaille sous deux modes differents: le mode utilisateur (user mode) et le mode noyau (kernel mode), la plupart des programmes travaillent en user mode.
Le kernel mode lui, est utilisé dans le dialogue avec les périphériques matériel.

Windows met à disposition des commandes permettant aux applications de fonctionner, ce sont les commandes API (Application Programming Interface), elles sont stockées dans le fichier système kernel32.dll.
Exemple: un utilisateur veut ouvrir un fichier (user mode),le processus se déroule ainsi:

- L'utilisateur demande l'ouverture d'un fichier
- Le user mode va utiliser la fonction OpenFile()
- Celle-ci va appeller une autre fonction NtOpenFile() situé dans le fichier Ntdll.dll
- Qui fera à son tour appel à la fonction ZwOpenFile() situé dans le fichier ntoskrnl.exe executé en kernel mode.

L'adresse de chaque fonction du noyau est consignée dans une table en mémoire appellé Table SSDT (System Service Descriptor Table).

Le Rootkit peut travailler soit en mode utilisateur en utilisant une dll ou en mode noyau grâce à l'utilisation d'un driver (.sys).

Son boulot est de placer des crochets d'interception (hooks) sur les fonctions Ntdll.dll (utilisation de la dll) ou sur les fonctions noyau ntoskrnl.exe (utilisation du fichier .sys), ces crochets sont placés grâce à la modification de la table SSDT.
  Une fois interceptées, les fonctions sont redirigées par le Rootkit vers son emplacement mémoire à lui afin de modifier le resultat renvoyé aux programme appelant (ici l'ouverture d'un fichier).


ATTENTION

Le chapitre suivant met en evidence le comportement d'un rootkit dans des situations réelles. Si vous decidez de reproduire vous-même les manipulations décrites ci-dessous veillez à bien comprendre ce que vous faites ainsi que les conséquences d'eventuelles fausses manipulations, celles-ci pouvant entrainer l'impossibilité de redemarrer le système Windows.
De plus, la manipulation du fichier necessite la mise hors service de l'antivirus installé sur le PC.
Je ne pourrais donc être tenue responsable en cas de disfonctionnement de la machine ainsi que de l'utilisation finale ou détournée du fichier.

 


Démonstration dans la pratique

Note: la manip ne fonctionne pas sous Vista.

Ayant récuperé un Rootkit, j'ai testé son fonctionnement.

Je mets, et ceci à titre expérimentale, l'archive contenant le Rootkit ici. Le fichier est compressé, avant de le décompresser arrêter la protection residente de l'antivirus, dans tout les cas NE PAS EXECUTER le fichier avant d'avoir lu le disclamer ci-dessus.

Une fois decompressé on se retrouve avec un fichier root.exe de 24Ko

Aller c'est parti...

S'assurer d'être sous une session ayant des droits administrateur.
Créer un dossier dans le disque, pour se rapprocher d'une situation réelle on va le créer dans C:\windows et on va le nommer rpg7
Copier le fichier root.exe dans ce nouveau dossier

On se retouve donc dans la situation suivante: C:\Windows\rpg7\root.exe.

A l'interieur de ce dossier je copie un petit fichier banal de ma conception et ceci afin de mettre en evidence certaines fonctions du Rootkit, c'est le fichier ip21.exe (permettant de relever l'IP en cours) peu importe sa fonction c'est juste pour faire un exemple, il est disponible ici.

Aprés cette prépararion on va lancer la bestiole: menu démarrer/Executer et on va saisir C:\WINDOWS\rpj7\root.exe /i

On redémarre la machine...Apparamant tout semble correct...sauf que:

Allons dans le dossier Windows verifier la presence du fichier: le dossier rpg7 a disparu !
J'essais de lancer process explorer afin de verifier la presence de root.exe dans les processus , impossible de le lancer. Je lance alors le gestionnaire des tâches de Windows, il decide de s'ouvrir (au bout de la deuxième fois quand même) mais bien sûr pas de trace de root.exe.
Du coté de la liste des services: pas plus de resultat.

Je n'ai toujours aucune idée de la manière dont le Rootkit se lance au démarrage de Windows et ça m'inquiète un peu .

Essayons de lancer le petit fichier placé dans le dossier du Rootkit : démarrer/Executer , je tape donc C:\Windows\rpg7\ip21.exe : je m'en doutais il s'ouvre et pourtant aucune trace de lui dans le disque, par contre c'est un programme ayant accés vers l'exterieur, ayant une pare-feu celui-ci c'est manifesté (ça rassure).
Je lance une recherche des fichiers root.exe et ip21.exe mais aucuns resultats.

Je decide alors d'employer les grands moyens, un scan antiviral en ligne chez secuser :

No comments...

Par curiosité je vais faire apel aux services du Hijackthis , le rapport est d'autant plus inquiétant: RIEN !

Methode d'eradication

Heureusement pour nous il existe des outils permettant de traiter une infection Rootkit, j'ai utilisé pour ma part Gmer qui me semble assez complet et efficace.
Je decide donc de l'utiliser contre le root.exe.
La réaction ne se fait pas attendre, dés l'ouverture du logiciel:

Gmer est composé de plusieurs onglets, certains d'entre eux vont nous reveler l'existence de notre Rootkit:

Onglet Processes

Onglet Services

C'est bien ici que démarre le programme: en tant que service et bien sûr: en AUTO

Onglet Files

Le dossier est bien present dans WINDOWS...

En ouvrant rpg7 on decrouvre son contenu et on peut verifier le fichier hook.dll qui, comme décrit plus haut, sert au "crochetage" des fonctions API. Nous avons donc à faire à un Rootkit travaillant en User Mode.

Onglet Rootkit/Malware
Onglet de détection de tout codes louches et malsains:

Le processus root.exe en memoire (PID 948) et le service rpg7 en AUTO.

Utilisons Gmer pour mettre fin à tout ces petits désagréments
Aller dans l'onglet Services afin de faire péter le service rpg7, selectionner celui-ci, faire un clic droit et cliquer sur Delete.

Ben oui je suis sûr , ben oui je clique sur Oui...
Gmer me demande alors si je veux supprimer le fichier correspondant au service rpg7 (root.exe) on repond aussi oui...

Pour plus de sureté redémarrer la machine...

Continuons notre investigation

Dernier truc interessant: il doit rester encore le sous-dossier rpg7 avec dedans mon petit programme IP21, ce programme peut être supprimer de ce dossier car on en aura plus d'utilité.
Par contre on va y remettre le root.exe pour un dernier essai...

Je vais démontrer ici, la puissance de ce petit bout de code:

Note: la manipulation suivante necessite l'intervention dans la base de registres de Windows, donc comme je l'ai déja dit si la procedure n'est pas claire à vos yeux, bla bla bla...Enfin vous avez compris...

Ouvrir la base de registres (démarrer/Executer puis regedit), je vais y créer d'abord une clé dans HKEY_CURRENT_USER\Software nommée rpg7 (tiens,tiens...) puis une sous-clé Vempyr (pour l'exemple).

Puis une valeur dans une clé déja existente par exemple HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run (c'est un des endroit d'où l'on peut executer des programmes au démarrage de Windows), la valeur va être de type chaîne, on va l'appeler rpg7\vempyr et ajouter comme données par exemple calc.exe (la calculatrice de Windows, ben oui faut bien qu'elle serve des fois )

Ce qui donne ceci:


On relance le Rootkit : menu démarrer/Executer : C:\WINDOWS\rpj7\root.exe /i

On redemmarre la machine...
La calculatrice se lance: ce qui prouve que notre clé fonctionne.
Allons voir ce qui c'est passé au niveau de nos clés, j'ouvre le registre:

La clé HKEY_CURRENT_USER\Software\rpg7\Vempyr n'y est plus...
J'ouvre la clé HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run , la valeur rpg7\vempyr permettant de lancer la calculatrice n'est pas visible non plus et pourtant la calculatrice s'est bien lancé au démarrage.
Concernant ce démarrage, Hijackthis ne trouve pas de calc.exe, l'utilitaire msconfig non plus d'ailleurs

Ca fait peur , hein ?

Je vais lancer Gmer pour y voir un peu plus clair:
Gmer me signal un vilain code dans mon système, normal c'est nous qu'on y a mis

Je me jette sur l'onglet Registry et là, je vais explorer mes clés, et voilà:

Les clés sont bien presentes.

Aller, on dégage le Rootkit comme indiquer plus haut et on supprimer les clés d'essais.

Conclusions

Assez terrible ces petits morceaux de codes, attention donc à mettre vos Anti-virus à jour, les pare-feu peuvent rendre de grands services. Par contre cette manip à encore prouver que l'installation ou le Scan en ligne d'un anti-virus APRES l'installation du Rootkit s'avère infructueux face à ce type d'infection.

Le code utilisé dans cette page, n'est pas de moi mais est simple à éradiquer (avec quand même un outil dédié), il ne fonctionne pas sous Windows Vista qui lui est basé sur l'architeture d'un noyau plus recent (NT6), par contre il est à parier que ce genre de code se ballade sur la toile dans des versions plus offensive et fonctionnant sur des systèmes actuels.
Donc prudence...

Vempyr...