GMER est un des meilleurs scanner rootkit. Voici donc un tutorial pour GMER démystifier le programme.
Quelques liens relatifs à Gmer et Rootkit :
DISLAIMER : GMER est un outil puissant...
Cette page est destinée aux personnes ayant un minimum de connaissance sur le fonctionnement de Windows. Si vous n'avez pas de connaissances, n'utilisez pas GMER.
Ce n'est pas la peine de scanner avec GMER et demander de l'aide sur le
forum pour analyser le rapport.
On utilise pas un programme si on ne comprend pas le rapport ou pour le plaisir
ou par excès de paranoïa.
L'adresse du site officiel de GMER est : http://www.gmer.net
Le téléchargement du programme se fait à partir du menu Files à
gauche.
GMER est disponible au format ZIP (gmer.zip) ou via un EXE avec un nom
aléatoire (Download EXE), ceci permet l'exécution sur des PC avec des
infections bloquant l'exécution de fichiers portant le nom GMER.

Avant toute utilisation de GMER, veuillez désactiver votre antivirus, antispyware sous peine de vous prendre un BSOD.
L'exécution de GMER se fait simplement en double-cliquant sur le fichier téléchargé. Le programme se lance alors... si un rootkit est détecté dès le lancement du programme, une popup vous en informe.

L'onglet Processes permet de lister les processus démarrés et éventuellement
afficher les processus considérés comme rootkités.
Les boutons :
Dans la partie basse GMER affiche les libraries et Thread (si le bouton
Libraries à droite est coché).
GMER ne permet pas de manipuler ces derniers, Process Explorer
permet cela, reportez-vous à la page virtumonde
VS Process Explorer





mais bien souvent cela ne fonctionne pas et GMER affiche un message d'erreur. La suppression d'un service appartenant à un rootkit ne peut se faire si ce dernier est actif sur le système (se reporter plus bas).


Le bouton Only Hidden permet d'afficher que les fichiers considérés comme rootkités (en rouge).

Le bouton Export permet d'exporter une clef vers un fichier reg.
En double-cliquant sur une clef, il est possible de modifier les valeurs, la
clef se grise et vous devez cliquer sur le bouton Save à droite pour
enregistrer les modifications.
NOTE : J'ai déjà planté un ordinateur en effectuant des modifications du registre Windows via GMER (voir la FAQ Microsoft : Comment faire pour récupérer Windows XP à partir d'un Registre endommagé qui empêche le démarrage du système). Avant de jouer avec GMER, il est conseillé de faire une copie du registre (dossier C:\WINDOWS\system32\config) ou un export via ERUNT (se reporter au tutorial ERUNT)

Le bouton Copy permet d'effectuer un copier/coller du contenu du rapport.

L'onglet CMD permet d'exécuter des commandes CMD lorsque l'onglet CMD.EXE est coché.
Tapez la commande dans la partie haute et cliquez dur Run à droite,
le résultat de la commande apparaît dans la partie basse de la fenêtre.
Le bouton Copy permet de récupérer le résultat dans un
copier/coller.

En cochant l'onget REGEDIT.EXE, il est possible d'exécuter des commandes reg pour modifier le registre Windows.

Dans la partie droite, vous pouvez choisir les éléments du système à scanner
(IE/EAT, Modules, processus, Registre etc). Notez que pour les fichiers, vous
pouvez déterminer les partitions à scanner. Eventuellement ne scanner que la
partition système pour gagner du temps.
Les informations sur le scan s'affichent alors, les éléments détectés comme rootkit apparaissent en rouge dans chaque section.
Le bouton Copy permet de récupérer le résultat pour effectuer un
copier/coller.
Le bouton Save permet l'enregistrement du rapport sur votre disque au
format texte.

Voici quelques exemples de logs, encore une fois GMER peut afficher des
informations sur des éléments légitimes puisque le rapport ne se contente pas
de lister des éléments néfastes mais afficher les éléments chargés dans le
système et surtout la manière dont ils se chargent... GMER peut donc lister des
éléments néfastes comme des éléments légitimes.
Il convient donc d'effectuer une recherche sur le nom de fichier sur Google par
exemple (voir le sujet Mieux Utiliser
les moteurs de recherche), si vous avez un doute:
Exemple de SSDT Hook (les API apparaîssent à droite) :
SSDT \SystemRoot\System32\DRIVERS\avpe32.sys ZwCreateProcess
SSDT \SystemRoot\System32\DRIVERS\avpe32.sys ZwCreateProcessEx
SSDT \SystemRoot\System32\DRIVERS\avpe32.sys ZwOpenProcess
SSDT \SystemRoot\System32\DRIVERS\avpe32.sys ZwOpenThread
SSDT \SystemRoot\System32\DRIVERS\avpe32.sys ZwQueryDirectoryFile
SSDT \SystemRoot\System32\DRIVERS\avpe32.sys ZwQuerySystemInformation
Certains programmes de sécurité peuvent effectuer des hook comme vsdatant.sys (ZoneAlarm), klif.sys (Kaspersky) etc.
Exemple de Devices...... ci-dessous des devices attachées aux drivers runtime2.sys (malware)
---- Devices - GMER 1.0.12 ----
Device \FileSystem\Ntfs \Ntfs IRP_MJ_CREATE [F82048FE] runtime2.sys
Device \FileSystem\Ntfs \Ntfs IRP_MJ_DIRECTORY_CONTROL [F820498A]
runtime2.sys
Device \Driver\Tcpip \Device\Ip IRP_MJ_DEVICE_CONTROL [F8D6EA92] runtime.sys
Device \Driver\Tcpip \Device\Tcp IRP_MJ_DEVICE_CONTROL [F8D6EA92]
runtime.sys
Device \Driver\Tcpip \Device\Udp IRP_MJ_DEVICE_CONTROL [F8D6EA92]
runtime.sys
Device \Driver\Tcpip \Device\RawIp IRP_MJ_DEVICE_CONTROL [F8D6EA92]
runtime.sys
Device \Driver\Tcpip \Device\IPMULTICAST IRP_MJ_DEVICE_CONTROL [F8D6EA92]
runtime.sys
... et ici légitime vsdatant.sys étant le driver de
ZoneAlarm
Device \Driver\Tcpip \Device\Ip IRP_MJ_CLOSEIRP_MJ_READ [BA437E90]
vsdatant.sys
Device \Driver\Tcpip \Device\Ip IRP_MJ_INTERNAL_DEVICE_CONTROL [BA437E90]
vsdatant.sys
Device \Driver\Tcpip \Device\Tcp IRP_MJ_CLOSEIRP_MJ_READ [BA437E90]
vsdatant.sys
Device \Driver\Tcpip \Device\Tcp IRP_MJ_INTERNAL_DEVICE_CONTROL [BA437E90]
vsdatant.sys
Device \Driver\Tcpip \Device\Udp IRP_MJ_CLOSEIRP_MJ_READ [BA437E90]
vsdatant.sys
Device \Driver\Tcpip \Device\Udp IRP_MJ_INTERNAL_DEVICE_CONTROL [BA437E90]
vsdatant.sys
Device \Driver\Tcpip \Device\RawIp IRP_MJ_CLOSEIRP_MJ_READ [BA437E90]
vsdatant.sys
Device \Driver\Tcpip \Device\RawIp IRP_MJ_INTERNAL_DEVICE_CONTROL [BA437E90]
vsdatant.sys
Device \Driver\Tcpip \Device\IPMULTICAST IRP_MJ_CLOSEIRP_MJ_READ [BA437E90]
vsdatant.sys
Device \Driver\Tcpip \Device\IPMULTICAST IRP_MJ_INTERNAL_DEVICE_CONTROL
[BA437E90] vsdatant.sys
Device \Driver\AFD \Device\Afd IRP_MJ_CREATE [BA431B50] vsdatant.sys
Device \Driver\AFD \Device\Afd IRP_MJ_CLOSEIRP_MJ_READ [BA431B50]
vsdatant.sys
Device \Driver\AFD \Device\Afd IRP_MJ_INTERNAL_DEVICE_CONTROL [BA431B50]
vsdatant.sys
Inline Hook (en mode userland) faite par l'infection Haxdoor :
User code sections :
.text C:\WINDOWS\gmer.exe[504] ntdll.dll!LdrLoadDll 7C9161CA 5 Bytes JMP
00010016
.text C:\WINDOWS\gmer.exe[504] USER32.dll!GetDlgItemTextA + 2 77D8AC08 5 Bytes
JMP 000102B3
.text C:\WINDOWS\gmer.exe[504] WS2_32.dll!gethostbyname + 2 71A54FD6 5 Bytes
JMP 00010C14
.text C:\WINDOWS\gmer.exe[504] WININET.dll!InternetConnectA 771B44DB 5 Bytes
JMP 00010F44
.text C:\WINDOWS\gmer.exe[504] WININET.dll!HttpOpenRequestA + 2 771B4AC7 5
Bytes JMP 000110B9
.text C:\WINDOWS\gmer.exe[504] WININET.dll!InternetOpenA + 2 771B6D2C 5 Bytes
JMP 00011042
.text C:\WINDOWS\gmer.exe[504] WININET.dll!HttpSendRequestA + 2 771B76BA 5
Bytes JMP 10001000 C:\WINDOWS\system32\bmtdhh.dll
Exemple de log avec une librairie bmtdhh.dll cachée (hidden) chargée dans divers processus :
---- Processes - GMER 1.0.11 ----
Process C:\WINDOWS\system32\winlogon.exe (*** hidden *** ) 484
Library C:\WINDOWS\system32\bmtdhh.dll (*** hidden *** ) @
C:\WINDOWS\system32\winlogon.exe [484] 0x10000000
Library C:\WINDOWS\system32\bmtdhh.dll (*** hidden *** ) @ C:\WINDOWS\gmer.exe
[504] 0x10000000
Library C:\WINDOWS\system32\bmtdhh.dll (*** hidden *** ) @
C:\WINDOWS\system32\cmd.exe [672] 0x10000000
Library C:\WINDOWS\system32\bmtdhh.dll (*** hidden *** ) @
C:\WINDOWS\system32\spoolsv.exe [1108] 0x10000000
Service considéré comme rootkité, le type de démarrage est indique entre [ ] :
---- Services - GMER 1.0.11 ----
Service C:\WINDOWS\system32\bmtdhk.sys [BOOT] bmtdhk <-- ROOTKIT !!!
Fichiers considérés comme rootkités :
---- Files - GMER 1.0.11 ----
File C:\WINDOWS\system32\bmtdhh.dll
File C:\WINDOWS\system32\bmtdhk.sys <-- ROOTKIT !!!
File C:\WINDOWS\system32\klgcptini.dat
File C:\WINDOWS\system32\rd.dll
File C:\WINDOWS\system32\rd.sys
File C:\WINDOWS\system32\st889.dat
spdt (Daemon Tools, Alchohol 120% etc)
Le cas spXX.sys où X sont des lettres aléatoires avec le service spdt - Les
programmes Dameon Tools, Alcohol 120% etc installent un driver commençant par
sp et un driver aléatoire.
Beaucoup de scanner rootkit d'éditeur de sécurité détectent ce dernier comme
étant un rootkit alors qu'il est tout à fait légitime.
Voici un rapport GMER complet : http://www.malekal.com/fichiers/GMER/GMER_spdt.txt
Dans le rapport ci-dessus le driver est spjp.sys et le driver aléatoire est
ascafl5y.SYS
On reconnait facilement ces derniers aux devices relatifs au SCSI :
---- Devices - GMER 1.0.15 ----
Device \Driver\sptd \Device\1875799320 spjp.sys
Device \Driver\ascafl5y \Device\Scsi\ascafl5y1Port3Path0Target0Lun0 82D171F8
Device \Driver\ascafl5y \Device\Scsi\ascafl5y1 82D171F8
En outre pour la partie Registry du scan GMER nous indique clairement entre parenthèses que le service spd appartient à Daemon Tools.

Vous aurez donc aussi les fichiers de vos applications en cours d'exécution. Cela peut donner un rapide aperçu de ce qui tourne sur la machine et donc les malwares comme le montre la capture ci-dessus (pour un oeil averti).
L'avantage est que le scan dure 15s contrairement à un scan complet GMER mais permet tout de même de lister une bonne partie voire la totalié des malwares en cours d'exécution.
