RogueKiller Documentation – Ceci est la documentation officielle des rapports de RogueKiller, un logiciel anti-malware disponible ici. La documentation est une aide concernant les modules de scan et les détections, et complète ce qui peut être trouvé dans ce tutoriel.

 

RÉPERTOIRE D’INSTALLATION
RogueKiller stocke des données dans %programdata%/RogueKiller.
Pour informations, les sous-répertoires sont les suivants. Vous n’êtes pas censé modifier quoi que ce soit à l’intérieur.

  • Logs: Contient les rapports
  • Quarantine: Contient la quarantaine
  • Debug: Contient les dumps MBR, et les crash dumps (s’il y en a)

 

SCAN
Le scan est déclenché par appui sur le bouton Démarrer le Scan. Le scan est un traitement n’apportant aucune modification sur le système, car il répertorie les anomalies rencontrées et les affiche. Une fois celui-ci terminé, un un rapport texte est disponible en cliquant sur le bouton Rapport.

 

COULEURS DE DETECTION
Avec RogueKiler, les couleurs de détections sont normalisées.

  • Rouge: Malware connu – Fort taux de détection
  • Orange: Malware possible – Possède souvent un chemin suspect, est taggé PUP (Potentially Unwanted Program)
  • Gris: Possible modification malicieuse – Souvent différent de la valeur système par défaut, ou est taggé PUM (Potentially Unwanted Modification)
  • Vert: Non détecté comme malware – Cela veut dire que l’objet est affiché juste pour information, mais n’est pas supposé être supprimé (sauf si vous le décidez)

 

NOMS DE DÉTECTIONS
PUMs (Potentially Unwanted Modification):

  • PUM.Dns [Possible détournement DNS: Merci de vérifier les IPs sur Google avant de supprimer. Si les IPs ne sont pas enregisrtées dans votre pays, supprimez les.]
    Example: [PUM.Dns] (X64) HKEY_LOCAL_MACHINE\System\ControlSet001\Services\Tcpip\Parameters\Interfaces\{E2BCE143-2E7F-4A16-B8B4-029B4F193911} | DhcpNameServer : 10.207.255.130 10.207.255.130 -> FOUND
  •  

  • PUM.DesktopIcons [Possible détournement des icônes du bureau. Ces lignes doivent être ignorées quand seulement des PUMs sont détectés, car elles résultent probablement d’une configuration utilisateur.]
    Example: [PUM.DesktopIcons] (X64) HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel | {20D04FE0-3AEA-1069-A2D8-08002B30309D} : 1 -> FOUND
  •  

  • PUM.Proxy [Possible configuration proxy non désirée. Si vous n’avez pas installé de proxy, ces lignes doivent être supprimées]
    Example: [PUM.Proxy] HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Internet Settings | ProxyEnable : 1 -> FOUND

 

SUPPRESSION
La suppression est déclenchée par appui sur le bouton Suppression. Au préalable il conviendra de vérifier les résultats du scan. Si vous avez des doutes, voir les sections suivantes sur les compléments d’analyse.

Si certaines choses vous paraissent anormales et ne doivent pas être supprimées, vous avez la possibilité de les décocher avant la suppression (et les signaler par mail). Contrairement au scan, la suppression fait des modifications sur le système, car c’est ce qui permet de supprimer les infections. Toutefois, tout élément modifié est d’abord copié en quarantaine.

Une fois la suppression terminée, un rapport texte est disponible en cliquant sur le bouton Rapport. Il se peut également que le programme demande à redémarrer le PC. Si c’est le cas, il faut le faire impérativement car certaines infections pourraient avoir le temps de se réactiver dans le cas contraire. Voici un exemple d’interface après une suppression:

 

PROCESSUS/SERVICES
Processus:
[Suspicious.Path] malware_proc.com — C:\temp\malware_proc.com[7] -> TUÉ [TermProc]
[Suspicious.Path] malware.exe — c:\temp\malware.exe[-] -> TUÉ [TermProc]
[Nom de détection] Nom du processus — Chemin du processus [Signature du fichier] -> Statut d’arrêt [methode]
 
DLLs:
[Suspicious.Path] rundll32.exe — C:\temp\inject.dll[-] -> DECHARGÉE
[Nom de détection] Nom du processus — Chemin du module[Signature du fichier] -> Statut de déchargement
 
Services:
[Tr.Attraps] (SVC) sshnas — C:\sshnas.exe[-] -> STOPPÉ
[Nom de détection] (SVC) Nom du service — Chemin du service [Signature du fichier] -> Statut d’arrêt

 

REGISTRE
Valeurs de registre:
[Suspicious.Path] (X64) HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run | test : C:\temp\malware.exe -> TROUVÉ
[Shell.HJ] HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon | Shell : c:\temp\malware.exe -> TROUVÉ
[Nom de détection] (X64) [Vue 64 bits] (Vide) [Vue 32 bits] Clé de Registre | Valeur de Registre : Donnée de Registre -> Statut
 
Clés de registre:
[Rogue.BlueFlare] HKEY_CLASSES_ROOT\CLSID\{19090308-636D-4E9B-A1CE-A647B6F794BF} -> TROUVÉ
[Suspicious.Path] HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\catchme -> TROUVÉ
[ZeroAccess] HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\userinit -> TROUVÉ
[Nom de détection] Clé de registre -> Statut

 

TACHES
[Suspicious.Path] task_test.job — C:\WINDOWS\system32\rundll32.exe (« C:\temp\malware.dll, blabla ») -> TROUVÉ
[Nom de détection] Dossier \ Nom de la tâche — Cible de la tâche (Paramètres) -> Statut

 

FICHIER HOSTS
Le fichier hosts est un fichier de configuration Windows, permettant d’effectuer des redirections de noms de domaines vers des IPs définies. On l’utilise principalement pour interdire l’accès à une adresse internet, ou pour associer une adresse textuelle (ex: http://test.com) vers une adresse IP du réseau local (ex: 192.168.1.12). Voici quelques exemples de redirections Hosts légitimes:

127.0.0.1 localhost (ligne par defaut dans le fichier hosts)
127.0.0.1 www.malware_website.com (empêche l’accès a des sites dangereux)
192.168.1.12 my_local_website (associe une adresse textuelle à une IP du réseau local)

Les malware peuvent utiliser le fichier Hosts pour rediriger des adresses web légitimes vers des serveurs vérolés, et ainsi infecter de nouveaux utilisateurs. Voici un exemple de lignes malware:

123.456.789.10 www.google.com (redirige un site bien connu vers une adresse IP inconnue – le serveur vérolé)
165.498.156.14 www.facebook.com (redirige un site bien connu vers une adresse IP inconnue – le serveur vérolé)

[C:\WINDOWS\system32\drivers\etc\hosts] 127.0.0.1 localhost
[C:\WINDOWS\system32\drivers\etc\hosts] ::1 localhost
[C:\WINDOWS\system32\drivers\etc\hosts] 123.456.789.000 www.facebook.com [Hj.Hosts] -> TROUVÉ
[C:\WINDOWS\system32\drivers\etc\hosts] 123.456.789.000 www.google.com [Hj.Hosts] -> TROUVÉ
[Chemin du fichier hosts] Ligne de hosts [Nom de détection (si malicieux)] -> Statut (Si malicieux)

Ces lignes doivent être supprimées.

 

FICHIERS/DOSSIERS
Fichiers:
[Suspicious.Startup][Fichier] netc.exe — C:\Documents and Settings\tigzy\Menu Démarrer\Programmes\Démarrage\netc.exe -> TROUVÉ
[Nom de détection][Type] Nom du fichier — Chemin du fichier -> Statut
 
Raccourcis:
[Suspicious.Path][Fichier] malware.exe.lnk — C:\Documents and Settings\tigzy\Menu Démarrer\Programmes\Démarrage\malware.exe.lnk [LNK@] C:\temp\malware.exe -> TROUVÉ
[Nom de détection][Type] Nom du raccourci — Chemin du raccourci [@LNK] Chemin de la cible -> Statut
 
Dossiers:
[Tr.Karagany][Repertoire] shed — C:\Documents and Settings\tigzy\Application Data\Adobe\shed -> TROUVÉ
[Nom de détection][Type] Nom du dossier — Chemin du dossier -> Statut
 
Jonctions/Reparse point:
[ZeroAccess][Jonction] $NtUninstallKB1111abc$ — C:\WINDOWS\$NtUninstallKB1111abc$ [JUNCTION@ a0000003] >> \??\C:\Windows\temp -> TROUVÉ
[Nom de détection][Type] Nom du fichier — Chemin du fichier [JUNCTION@ Tag de la jonction] >> Cible de la jonction -> Statut

Cette notation permet de déterminer si un fichier est signé/vérifié ou manquant

  • [7] Le fichier est signé et vérifié (la signature digitale existe et est valide)
  • [-] Le fichier n’est pas signé, ou sa signature digitale est invalide
  • [x] Le fichier n’existe pas

 

ANTIROOTKIT
L’Antirootkit regroupe toutes les informations provenant du module TrueSight, le driver kernel de RogueKiller. Ce driver est surtout utilisé pour la recherche de rootkits dans le noyau Windows. La recherche concerne plusieurs sections:

System Service Dispatch Table (SSDT) – Montre les APIs détournées.
Shadow SSDT (S_SSDT) – Montre les APIs détournées.
Inline SSDT – Montre les APIs détournées par hot patching.
IRP hook – Montre les drivers dont les fonctions majeures sont détournées.
IAT/EAT hooks – Montre les processus avec des DLLs contenant du code injecté.

Important: Les modifications système listées par l’antirootkit sont uniquement pour information. Elles ne peuvent pas être cochées pour suppression car elle ne représentent pas une menace, juste une conséquence provenant d’un malware éventuel. La suppression d’un tel élément serait inutile et dangereuse pour la stabilité du système.

 
Les détournements du Kernel (non légitimes) sont également listés dans le rapport, Dans la section Antirootkit. On y retrouve le nom de l’API, l’adresse et le nom du driver détournant cette dernière.

¤¤¤ Antirootkit ¤¤¤
SSDT[119] : NtOpenKey @ 0x80624BA6 -> HOOKED (\??\C:\WINDOWS\TEMP\rqmqbqga.sys @ 0xF783E562)
SSDT[57] : NtDebugActiveProcess @ 0x80643B3E -> HOOKED (Unknown @ 0x89C30200)
SSDT[68] : NtDuplicateObject @ 0x805BE010 -> HOOKED (Unknown @ 0x89C302F0)
SSDT[277] : NtWriteVirtualMemory @ 0x805B43D4 -> HOOKED (Unknown @ 0x89C306D0)
IRP[IRP_MJ_CREATE] : Unknown -> HOOKED ([MAJOR] atapi.sys @ 0xB7DF3B40)
IRP[IRP_MJ_CLOSE] : Unknown -> HOOKED ([MAJOR] atapi.sys @ 0xB7DF3B40)
IRP[DriverStartIo] : Unknown -> HOOKED ([MAJOR] atapi.sys @ 0xB7DF1864)

 
Hooks EAT/IAT:
[IAT:Addr] (explorer.exe) ntdll.dll – NtOpenProcess : C:\windows\SYSTEM32\injected.dll @ 0xabc12345
[EAT:Addr] (iexplore.exe) ntdll.dll – NtCreateProcess : C:\windows\SYSTEM32\injected.dll @ 0x6cd6640e
[Type de table:Type de hook] (Nom du processus) Nom du module original – Nom de fonction : Chemin du module détour @ Adresse fonction de détour
 
Hooks SSDT/Shadow SSDT:
[SSDT:Addr(Hook.SSDT)] NtEnumerateKey[71] : C:\RegHider.sys @ 0xf8ddd480
[SSDT:Addr(Hook.SSDT)] NtEnumerateValueKey[73] : C:\RegHider.sys @ 0xf8ddd406
[SSDT:Addr(Hook.SSDT)] NtLoadKey[98] : Unknown @ 0xf8d76f02
[Type de table:Type de hook] Nom de fonction : Chemin du module détour @ Adresse fonction de détour
 
Filtres Kernel:
[Filter(Root.Filter)] \Driver\atapi @ \Device\Harddisk0\DR0 : \Driver\atapi @ Unknown (atapi.sys)
[Filter(Kernel.Filter)] \Driver\disk @ Unknown : \Driver\malware_driver @ \Device\malware_device (\SystemRoot\system32\DRIVERS\malware.sys)
[Filter(Root.Keylogger)] \Driver\kbdclass @ Unknown : \Driver\keylog @ \Device\keylogdev (\SystemRoot\system32\DRIVERS\keylogger.sys)
[Filter(Nom de détection)] Nom du driver @ Nom de la device : Nom du driver détour @ Nom de la device détour (Chemin du module détour)
 
Hooks IRP:
[IRP:Addr(Hook.IRP)] atapi.sys – DriverStartIo[28] : \SystemRoot\system32\DRIVERS\atapi_hook.sys@ 0x817fe31b
[IRP:Type de hook(Nom de détection)] Nom du driver – Nom de l’IRP[Index d’IRP] : Chemin du module détour @ Adresse de la fonction détour

 

MBR
Le MBR liste et affiche les informations concernant le(s) Master Boot Record (MBR) du PC. Ce dernier est le premier secteur physique d’un disque dur, contenant à la fois des informations sur la taille et la localisation des différentes partitions logiques ainsi que le code chargé de lancer le système d’exploitation d’un disque bootable.

Certains malware appelés Bootkits, comme TDSS, MaxSST ou Stoned modifient soit le code (bootstrap) pour lancer leurs propres composants, soit la table des partitions pour booter sur une partition fantôme et ainsi effectuer des traitements avant le lancement du système d’exploitation (et des antivirus!).

RogueKiller permet de détecter et supprimer les bootkits, même lorsqu’ils masquent leur présence. Plusieurs indicateurs montrent la légitimité d’un MBR: Le bootstrap est connu, et légitime. Ensuite, la lecture à différents niveaux d’abstraction retourne les même résultats (ce qui signifie que le MBR n’est pas masqué).

  • Voici un exemple de rapport sain. Le bootstrap (BSP) est légitime (Windows XP), et la lecture User, LL1 et LL2 renvoient les mêmes résultats.
¤¤¤ MBR Verif: ¤¤¤+++++ PhysicalDrive0: VBOX HARDDISK +++++
— User —
[MBR] c708b764ca9daa4f8f33e4e8b3b517da
[BSP] f4eb87199eee8a432bb482bb55118447 : Windows XP MBR Code
Partition table:
0 – [ACTIVE] NTFS (0x07) [VISIBLE] Offset (sectors): 63 | Size: 4086 Mo
User = LL1 … OK!
User = LL2 … OK!
  • Voici un exemple de rapport présentant un MBR infecté. Le bootstrap (BSP) est légitime (Windows 7), mais la méthode LL1 renvoit quelque chose de différent. Enfin et surtout, il existe une partition fantôme masqué par le rootkit (MaxSST).
¤¤¤ MBR Verif: ¤¤¤+++++ PhysicalDrive0: Hitachi HDS721032CLA362 +++++
— User —
[MBR] a1e2c1a0c1fb3db806dcbb65fdbf8384
[BSP] 0dc0d942fc9152dc059c7e021d2ad3db : Windows 7 MBR Code
Partition table:
0 – [ACTIVE] NTFS (0x07) [VISIBLE] Offset (sectors): 2048 | Size: 100 Mo
1 – [XXXXXX] NTFS (0x07) [VISIBLE] Offset (sectors): 206848 | Size: 305129 Mo
User != LL1 … KO!
— LL1 —
[MBR] 501fcd9f60449033a7b892d424337896
[BSP] 0dc0d942fc9152dc059c7e021d2ad3db : Windows 7 MBR Code [possible maxSST in 2!]
Partition table:
0 – [XXXXXX] NTFS (0x07) [VISIBLE] Offset (sectors): 2048 | Size: 100 Mo
1 – [XXXXXX] NTFS (0x07) [VISIBLE] Offset (sectors): 206848 | Size: 305129 Mo
2 – [ACTIVE] NTFS (0x17) [HIDDEN!] Offset (sectors): 625113088 | Size: 10 Mo
  • Voici un autre exemple de rapport présentant un MBR infecté. Le bootstrap (BSP) est infecté avec le rootkit MaxSST.
¤¤¤ MBR Check: ¤¤¤+++++ PhysicalDrive0: ST9500325AS +++++
— User —
[MBR] 318e94ac5cf893f8e2ed0643494e740e
[BSP] 07a9005ccf77d28c668138e4d4a42d65 : MaxSS MBR Code!
Partition table:
0 – [XXXXXX] FAT32-LBA (0x1c) [HIDDEN!] Offset (sectors): 2048 | Size: 13000 Mo
1 – [ACTIVE] NTFS (0x07) [VISIBLE] Offset (sectors): 26626048 | Size: 119235 Mo
2 – [XXXXXX] EXTEN-LBA (0x0f) [VISIBLE] Offset (sectors): 270819328 | Size: 344703 Mo
User = LL1 … OK!
User = LL2 … OK!

En cas d’infection MBR, il est possible de restaurer le MBR en cochant la ligne correspondante dans l’onglet MBR avant la suppression.

+++++ PhysicalDrive0: VBOX HARDDISK +++++ [Numéro de disque physique, Nom du disque]
— User — [Méthode de lecture (Utilisateur, LL1, LL2)]
[MBR] c708b764ca9daa4f8f33e4e8b3b517da [MBR hash (MD5)]
[BSP] f4eb87199eee8a432bb482bb55118447 : Windows XP MBR Code [Bootstrap hash (MD5), Nom de détection du bootstrap]
Partition table: [Table des partition]
0 – [ACTIVE] NTFS (0x7) [VISIBLE] Offset (sectors): 63 | Size: 4086 MB [Windows Vista/7/8 Bootstrap | Windows Vista/7/8 Bootloader]
[[Partition statut (ACTIVE ou non)] Format (Nombre du format de fichiers) [Visible ou Hidden[Caché]) Emplacement sur le DD en secteurs | Taille en Mo] [Bootstrap detection, Bootloader detection]
User = LL1 … OK [User = LL1 chaque méthode à retourné la même chose, ce qui est attendu]
User = LL2 … OK [User = LL2 chaque méthode à retourné la même chose, ce qui est attendu]

 

NAVIGATEURS WEB
RogueKiller peut inspecter les configurations des navigateurs, ainsi que leurs extensions, et les afficher.

Les lignes de configuration sont affichées uniquement si détectées comme malware, tandis que toutes les extensions le sont. Concernant les extensions, seuls celles détectées comme malware sont affichées dans le rapport texte, ou celles que vous avez supprimé (si rapport de supression).

Important: Il est très important de comprendre que toutes les extensions listées ne sont pas forcément malware, vous n’êtes pas supposé toutes les cocher et les supprimer, merci de tenir compte des couleurs et des noms de détection.

 
Config:
[PUM.Proxy][FIREFX:Config] 7n6s6tn6.default : user_pref(« network.proxy.http », « 127.0.0.1 »); -> TROUVÉ
[PUM.Proxy][FIREFX:Config] 7n6s6tn6.default : user_pref(« network.proxy.http_port », 1045); -> TROUVÉ
[PUM.Proxy][FIREFX:Config] 7n6s6tn6.default : user_pref(« network.proxy.type », 1); -> TROUVÉ
[Nom de détection][Navigateur:Type] Utilisateur : Ligne de configuration -> Statut
 
Extensions:
[PUP][IE:Addon] System : MixiDJ V30 Toolbar [{1122b43d-30ee-403f-9bfa-3cc99b0caddd}] -> FOUND
[Nom de détection][Navigateur:Type] Utilisateur : Nom d’extension [ID d’extension] -> Statut

 

MODULE HONEY
RogueKiller est capable de lire les Ruches Windows en mode Offline, et désinfecter les dossiers de démarrage:

  1. Désinfecter un système d’exploitation présent sur un disque externe.
  2. Désinfecter une machine lancée depuis un live CD PE (ex: OTLPE)

Concrètement, cela est pratique dans le cas de rootkits masquant/protégant leurs clés de registre, ou lorsqu’un PC est inaccessible en raison d’un malware bloquant toute les actions (ransomwares).

Voici une démonstration du mode PE effectuée sur un PC infecté par le malware Gendarmerie, et lancé depuis un live CD OTLPE:

 

LIGNE DE COMMANDES (Premium seulement)
Pour automatiser le traitement et faciliter le déploiement sur un grand nombre de postes, RogueKiller fournit une interface en ligne de commandes. Voici la liste des commandes:

-autoscan (lancement automatique du scan après le prescan)
-autoaccepteula (acceptation automatique de l’EULA, le passage de ce flag implique avoir déjà lu l’EULA auparavant et être d’accord avec)
-autodelete (suppression auto, tout sera supprimé hors Proxy, DNS, hosts – équivalent au clic sur le bouton suppression)
-noremove (ignore les détections. Ignore toutes les détections à la fin du scan)
-nodriver (disponible dans la version gratuite) (pas de chargement du driver, et donc pas de recherche de rootkits côté kernel)
-nopop (disponible dans la version gratuite) (supprime les ouvertures de pages web, pour une exécution silencieuse)
-nothirdparty (disponible dans la version gratuite) (supprime toute les interactions avec des logiciels tierces (notepad, navigateur web, …) pour éviter de relancer certains infections)
-showlegithooks (montre les hooks légitimes qui sont normalement masqués)
-register [email] [clé] (S’enregister avec votre email/clé de licence Premium)
-portable-license [chemin_licence_portable] (Technicien Premium seulement, spécifie où se trouve le fichier se licence portable)
-pupismalware (spécifie que toutes les détections PUPs seront traitées comme malware)
-pumismalware (spécifie que toutes les détections PUMs seront traitées comme malware)
-autoupdate (ne demande pas lorsque le logiciel est périmé, et télécharge directement la nouvelle version si l’updater est présent)
-externalrules [chemin_fichier_dossier_regles] (charge un fichier/dossier de règles dans le scanner externe, voir ici.)
-reportpath [chemin_du_rapport] (disponible dans la version gratuite) (specifie un chemin où sauvegarder le rapport de scan)
-reportformat [txt|json|html] (choisir un format de rapport dans la liste donnée: soit txt, json ou html. Le choix par défaut est json)
-vtupload [on|off] (forcer le choix pouur l’upload VirusTotal)

 

Le scanner externe permet de charger des règles de détection personnalisées dans le moteur de RogueKiller.
Se référer à la page dédiée.