Aller au contenu


RkUnhooker


  • Sujet fermé Ce sujet est fermé
6 replies to this topic

#1 Txon

Txon

    AïoligaToR

  • Administrateur
  • PipPipPipPipPipPipPipPipPip
  • 7 290 Messages :

Posté 07 juin 2007 - 14:42





== Les auteurs de RkUnhooker ==


Rootkit Unhooker © 2006-2007 est développé par des informaticiens anonymes connus sous des pseudonymes. "EP_X0FF" ("EvilPhantasy") et "MP_ART" ont assuré l'essentiel, mais ils ont été aidés par "< DnY >" et d'autres bénévoles. Majoritairement, ils se réclament de l'UG North.



== Description ==


L'essentiel de son développement s'est fait au second semestre 2006 et au début de 2007, mais il continue et la version 4.0 est prévue pour le deuxième semestre 2007.

Par rapport à d'autres anti-rootkits, RkU apporte une capacité supérieure de détection des fichiers cachés et des modifications effectuées dans le noyau grâce, entre autres, à ...
  • ses consultations « à bas niveau » des fichiers systèmes en leur état original sur le disque dur pour une comparaison avec les éléments en mémoire,
  • des recherches de crochets (hooks) effectués par les processus et drivers en cours d'exécution ...
    • dans de nombreuses tables de travail du système Windows, 'EAT', 'IAT', 'SSDT', 'GDT', 'IDT' ...
    • dans les 'IRP' (I/O request packets) et les 'ADS' (Alternate Data Stream).
  • la détection des 'inline hooks', quand un 'processus', 'driver' ou 'bibliothèque logicielle' modifie le 'code' d'un autre processus, driver ou bibliothèque logicielle, généralement en y remplaçant certaines instructions par des instructions de détournement vers un nouveau traitement – 'handler' - sous contrôle du rootkit, par le biais d'une fonction de rappel asynchrone (event handler - asynchronous callback subroutine).
  • la technique de détection de 'DKOH' dans les objets du noyau ... Kernel Object Hooking Rootkits (Greg Hoglund). Dans ce cas, la restauration du noyau en l'état original ne peut cependant pas (encore) être faite.
RkUnhooker offre plusieurs solutions pour analyser les intrusions et les réparer ...
  • Etablissement d'un rapport complet des crochetages détectés,
  • Possibilité de 'dump' d'un composant du système altéré en mémoire, pour une analyse approfondie (Core dump) - enregistrement sur le disque sous forme de fichier).
  • Restauration des éléments crochetés du 'noyau' : « décrochage » et remise en leur état original.
  • Broyage des fichiers malsains découverts.
Les principaux composants sont le corps du logiciel et « SSDT Hooks/Restore », « Stealth Engine » (détecteur de processus cachés), DnG (détecteur de drivers cachés), « FDetector » (détecteur de fichiers cachés) « ILHA » (analyseur de 'code hooks'), « C_Me » (mode console) « UpS » (mise à jour) et « xdf » (auto-protection).


Différents thèmes abordés ... Les mots entre ' ' sont généralement expliqués dans le lexique du Windows furtif.

…\…

"They who can give up essential liberty to obtain a little temporary safety, deserve neither liberty nor safety." (Benjamin Franklin)

#2 Txon

Txon

    AïoligaToR

  • Administrateur
  • PipPipPipPipPipPipPipPipPip
  • 7 290 Messages :

Posté 07 juin 2007 - 14:45

.../...

== Environnement, installation et précautions avant le lancement ==


RhUnhhoker fonctionne avec des processeurs x86 32 bits et les systèmes d'exploitation Windows 2000 SP4, Windows XP +SP1, SP2 et Windows 2003 +SP1. Depuis la version 3.7 il est également adapté à Windows Vista 32 bits et à Windows 2003 +SP2.

RkU peut fonctionner de manière habituelle mais avec des privilèges d'Administrateur ou au sein d'une machine virtuelle (Virtual PC, VMWare ...) ou en mode ligne de commande.

En usage ordinaire, il consomme très peu de ressources et convient donc à pratiquement tous les PCs. Il faut cependant noter que lors de certains scans (à la recherche sur le disque de fichiers cachés) il peut utiliser jusqu'à une centaine de Mo.

== ==


RkU requiert une installation très légère qui s'effectue en automatique dans un répertoire RkUnhooker situé à la racine du disque système, où son exécutable est généré avec un nom et une longueur aléatoires (ex. CpbE4r07nMp8ntDh7 / 7ljXeke) pour éviter les attaques nominatives perpétrées par certains malwares contre les utilitaires de défense.
Dans ce répertoire où se trouve également l'utilitaire de désinstallation, il est possible d'ajouter les fichiers ".dll" d'interface et ".chm" d'aide en français.

RkUnhooker place le driver rkhdrv40.sys (anciennement rkhdrv31.sys) dans le répertoire %SystemRoot%\System32\Drivers et implante ses clés dans le Registre Windows (HKLM 'Legacy' et 'Services'). Ce driver s'exécute en mode noyau ('ring0').

A chaque changement de version il faut commencer par une désinstallation de l'ancienne avant d'installer la nouvelle.

== ==


Dans un environnement système complexe, il peut y avoir des conflits entre les logiciels surtout quand chacun veut prendre l'ascendant sur les autres pour le contrôle du PC.
  • En présence d'outils actifs de défense du noyau ou du registre de Windows, Rootkit Unhooker pourrait ne pas fonctionner normalement et peut-être ne même pas être lancé.
  • Avec certains firewalls (Jetico en particulier), il sera nécessaire d'autoriser spécifiquement RkU qui, autrement, ne pourrait pas exécuter un "OpenProcess".
  • En cas de problème, vous devrez vérifier votre système et essayer de neutraliser ou même désinstaller le logiciel de sécurité qui s'oppose au fonctionnement de RkU.
Sous peine de risquer un 'BSoD', il ne faut pas 'déboguer' RkUnhooker avec des outils comme RR0D, SoftICE, Syser debugger ou WinDbg ... Il ne faut lui appliquer aucun outil de rétro-ingénierie.

== ==


Avant d'utiliser RkUnhooker ...
  • L'utilisateur doit impérativement savoir quels logiciels installés sur son PC sont en fonction. En effet, RkUnhooker va détecter tous les logiciels actifs et surtout des crochetages « sains » et des fichiers cachés par bon nombre d'entre eux.
  • En cas de doute sur l'authenticité d'un des logiciels ou d'un 'service Windows', il faut effectuer des vérifications complémentaires avant d'agir, se méfier des fausses alertes.
  • Pour éviter de nombreuses confusions possibles, il est préférable d'interrompre la connexion à Internet et de procéder à la désactivation des logiciels de sécurité (firewall, antivirus etc.) ainsi que celui des logiciels et services volontairement installés. Au besoin, il est possible d'utiliser pour cela le module [Démarrage] de Seem et de procéder à un redémarrage du système.
…\…

"They who can give up essential liberty to obtain a little temporary safety, deserve neither liberty nor safety." (Benjamin Franklin)

#3 Txon

Txon

    AïoligaToR

  • Administrateur
  • PipPipPipPipPipPipPipPipPip
  • 7 290 Messages :

Posté 07 juin 2007 - 14:47

.../...

== Modules de détection des crochets et intrusions ==


Rappel ... Les listes établies portent sur l'ensemble des éléments en mémoire, qu'ils appartiennent à des logiciels désirés (firewall, antivirus, Alcohol\Daemon Tools, Skype etc.) ou à des malwares.
  • SSDT Détecteur de crochetages/Restaurateur (SSDT Hooks Detector/Restorer)
    RkU vous montre l'état de la 'SSDT' (table d'adressage des 'APIs') , quelles fonctions (également appelées 'services' dans la terminologie de Microsoft) sont crochetés, et permet de les décrocher. Quand RkU « décroche » une fonction, il la restaure, remplace l'adresse du crochet par l'originale.
    Paramètres particuliers à la SSDT ... Menu [Setup] -> [Paramètres] (Settings) ...
    • [Montrer seulement les fonctions crochetées] (Show Only Hooked Function) ... conseillé pour aller au plus vite, réduire la liste à l'essentiel.
    • [Mode Simple] (Simple Mode) ... lister seulement les crochetages effectués depuis un 'handler' (séquence de traitement d'un crochetage) situé hors du 'noyau'.
    ...
  • 'Shadow SSDT' ... « Shadow System Services Table »
    'Shadow Table' est un nom donné par Microsoft pour la liste des fonctions de sous-systèmes qui agissent sur les fenêtres Windows, les messages et les graphiques alors que la SSDT 'de base' est destinée aux fonctions qui opèrent avec les fichiers, les processus, le Registre etc. La « Shadow System Services Table » regroupe donc un jeu de fonctions qui concernent l'interface graphique (GDI32.dll) et utilisateur (USER32.dll).
  • Détecteur de processus cachés (Hidden Processes Detector)
    Cette liste comporte des processus ordinaires mais aussi ceux qui sont invisibles des utilitaires ordinaires comme Task Manager, Process Explorer etc.
    L'indication [Inaccessible en mode utilisateur] correspond à des fichiers protégés contre des attaques en mode utilisateur (ring3).
    De nombreuses fonctions sont disponible pour un processus sélectionné, depuis l'arrêt simple ou son « arrêt forcé » (/!\ Attention /!\) jusqu'au broyage du fichier sur le disque, en passant par une possibilité de "dump". L'arrêt forcé utilise la technique © PVASE (Process Virtual Address Space Erasing)
    ...
  • Détecteur des drivers cachés (Hidden Drivers Detector)
    Tous les 'drivers' (fichiers .sys) et bibliothèques logicielles (fichiers .dll) chargés en mémoire sont listés. Pour ce type de détection sept techniques sont utilisées dont la © Stealth Walker technology et un © KMSE (Kernel Memory Scanning Engine).
    Les éléments cachés des utilitaires ordinaires sont identifiés dans une colonne particulière et vous noterez en passant que RkU comme les autres logiciels « sains » ne cherche pas à cacher le sien. Dans la colonne [References] les modules entre [ ] correspondent à la détection des crochets 'IRP' (I/O request packets).
    Les fonctions disponibles portent essentiellement sur la copie, 'dump' d'un driver sélectionné et sur son éventuel broyage sur le disque.
    ...
  • Détecteur des fichiers cachés (Hidden Files Detector)
    La recherche s'effectue « à bas niveau » sur le disque et une comparaison est faite avec la liste obtenue de manière classique. Elle peut s'avérer très longue sur des disques de forte capacité. Il faut être patient ou limiter en un premier temps la recherche à la partition système. Pour ce scan, RkU génère des "services temporaires" de nom et longueur aléatoires (ex. EF80215DEF8021 / 5E87C1805E).
    • Le scan peut être interrompu avec l'affichage d'un message système de Windows. Dans ce cas, le problème peut venir du disque lui-même. Il est conseillé de vérifier l'état de celui-ci, en utilisant par exemple la fonction chkdsk /f /r /x
    • Dans les versions récentes, une nouvelle technique inspirée par le FileReg de IceSword a été implantée. Dans certains cas, elle peut provoquer un 'BSoD'. En cas de problème, il est possible et conseillé de revenir à la technique de détection utilisée dans les versions précédentes. Pour cela (et pour cela seulement) ... Paramètre particulier pour ce système ... Menu [Setup] -> [Paramètres] (Settings) ... cocher l'option [Utiliser le 'Standard DiskIO'].

    ...
…\…

"They who can give up essential liberty to obtain a little temporary safety, deserve neither liberty nor safety." (Benjamin Franklin)

#4 Txon

Txon

    AïoligaToR

  • Administrateur
  • PipPipPipPipPipPipPipPipPip
  • 7 290 Messages :

Posté 07 juin 2007 - 14:50

.../...

== Modules de détection des crochets et intrusions ... suite ==

  • 'Stealth Code' (Stealth Code Detector)
    Ce module en est au début de son développement et correspond à des 'codes' particulièrement bien cachés. Le mot 'stealth' (furtif) est employé dans un sens proche de celui des ports d'un PC , profondément caché ou invisible.
    La liste doit être vide. Tout élément qui est détecté et listé dans ce module est réputé malsain ou c'est un « faux positif » (en relation avec l'antivirus de Kaspersky etc.).
  • 'Code Hooks' (Code Hooks Detector)
    L'expression 'Code Hooks' correspond aux crochets effectués dans les APIs de Windows par injection d'instructions particulières, différentes des originales. RkU peut détecter cette méthode furtive en vérifiant l'intégrité du 'code' en mémoire. Pour cela, il compare l'image en mémoire avec les originaux du système, y compris pour les drivers des disques et du réseau. RkU peut restaurer en mémoire le 'code' original lu sur le disque.

    /!\ Attention /!\ : dans certains cas ceci peut entraîner un 'BSoD' (écran bleu de la mort) et/ou un redémarrage du PC.
    Catégories de crochetages détectés :
    • Inline - existent en mode noyau (KernelMode) et en mode utilisateur (User Mode). Le processus ou le driver intrus injectent leur propre 'code' dans le corps de la fonction crochetée, provoquant un renvoi vers leur 'handler'. Cette technique peut également s'appliquer aux drivers sans détournement d'adresse : c'est le 'IRP inline hooking'.
      Difficulté de détection – variable, de moyenne à très difficile.
    • EAT et IAT - Des rootkits peuvent crocheter la table 'EAT' (le plus souvent en mode noyau) et la table 'IAT' (le plus souvent en mode utilisateur). Le processus ou le driver intrus remplace l'adresse des fonctions par la sienne en modifiant la 'Export Table' et/ou la 'Import Table'.
      Difficulté de détection – variable, de très facile à facile.
    • Syscall - 'System Call' (Appel système), instruction (ou interruption) spéciale utilisée par le système opératoire pour les transferts du mode utilisateur vers le mode noyau. L'intrus remplace l'adresse de destination par celle de son 'handler'. Ce type de crochetage peut être combiné avec le 'Inline'.
      Difficulté de détection – variable, de très facile à moyenne.
    • D'autres types de crochets sont également détectés comme ceux effectués par la technique du DKOH.

    Dans le cas ci-dessus les crochetages trouvés par le scan sont dus à "SchimEng.dll", une bibliothèque logicielle de Windows, "Skype.exe" du logiciel de téléphonie sur IP de même nom, "IsDrv120.sys" driver de IceSword et "inspect.sys" driver du firewall Comodo.
  • Rapport (Report)
    L'établissement d'un rapport peut servir à une analyse complète de chacun des crochetages à tête reposée. Il sera aussi le bienvenu pour ceux qui veulent aider au tri entre les divers crochets pour déterminer ceux qui proviennent d'intrus indésirables.
    Plusieurs options sont possibles dont un choix du(des) type(s) de crochet à détecter et une sélection du(des) disque(s) à scanner à la recherche de fichiers cachés.
    ... ... ...

…\…

"They who can give up essential liberty to obtain a little temporary safety, deserve neither liberty nor safety." (Benjamin Franklin)

#5 Txon

Txon

    AïoligaToR

  • Administrateur
  • PipPipPipPipPipPipPipPipPip
  • 7 290 Messages :

Posté 07 juin 2007 - 14:52

.../...

== Paramètres et fonctions ==



Menu [Fichier] (File)
  • [Rapport rapide] ... Dans tous les modules de RkU, cette fonction permet un enregistrement immédiat d'un rapport qui contient la liste établie dans un fichier au format ".txt".
  • [Montrer le panneau de débogage] ... Possibilité de sélection des diverses techniques de détection ... /!\ Attention /!\ laissez les paramètres standards si vous ne savez pas à quoi correspond chacun d'eux.


Menu [Language] (Langage)
La mise en place de l'interface française requiert bien entendu le téléchargement préalable de son fichier ".zip" et son extraction. Le fichier "local.dll" doit être placé dans le répertoire d'installation de RkUnhooker à la racine du disque système. L'expression française requérant plus de caractères que l'anglaise, il se peut que le colonage déborde de la taille de la fenêtre standard. Il suffit alors d'étirer celle-ci.



Menu [Setup] -> [Paramètres]
  • Les paramètres propres à la SSDT et la détection de fichiers cachés ont déjà été décrits dans les paragraphes correspondants.
  • [Utiliser le mode étendu] (Use Extended Mode) ... Mode étendu pour l'ensemble des fonctions (nécessite un redémarrage du système) ... Permet un fonctionnement de RkUnhooker en mode sans échec.
  • Gestion des couleurs
    Permet de choisir vraiment à la convenance de chacun la couleur du fond d'écran et celle du texte en fonction d'une palette de couleurs complète.

Console Mode
Voir -> The command line in windows
Démarrer / exécuter / et taper cmd -> [OK]
Dans la fenêtre qui s'ouvre, indiquer ensuite le nom du programme RkUnhooker tel qu'il a été généré avec le paramètre -console
Exemple : 4DB28FF328.exe -console
Pour l'instant cinq commandes seulement sont disponibles ...
  • help Affiche la liste des commandes avec un bref descriptif,
  • start Ferme la console et continue le chargement de RkUnhooker,
  • exit Ferme la console et quitte RkUnhooker,
  • forcesafemode Configure le driver de RkUnhooker pour être lancé en mode sans échec. Ceci peut être utilisé quand RkUnhooker n'a pas été préalablement configuré en mode sans échec et que Windows ne peut pas démarrer normalement.
  • check Provoque un contrôle d'intégrité interne de RkUnhooker.
…\…

"They who can give up essential liberty to obtain a little temporary safety, deserve neither liberty nor safety." (Benjamin Franklin)

#6 Txon

Txon

    AïoligaToR

  • Administrateur
  • PipPipPipPipPipPipPipPipPip
  • 7 290 Messages :

Posté 07 juin 2007 - 14:53

.../...

== Paramètres et fonctions ... suite ==



Menu [Outils (Tools)]
  • [Broyer/Copier un fichier] (Wipe/Copy File)
    Cet outil permet de rechercher et sélectionner un fichier [Chercher] (Browse) et de le copier [Copie directe du fichier] (Direct File Copying) (pour sauvegarde ou analyse séparée) ou de le broyer (remplacement des valeurs existantes par des « 0 ») [broyage du contenu du fichier] (Direct File Wiping). [Confirmer] (Do operation) déclenche l'action choisie. Notez qu'il n'est pas possible de revenir en arrière si la décision de détruire le fichier sélectionné est prise.
  • [Détection de machine virtuelle]
    Au moins une des conceptions théoriques des rootkits implique « d'envelopper » le système d'exploitation de la victime dans une machine virtuelle. Cet outil permet de détecter un rootkit virtuel ou une machine virtuelle grâce à un calcul du temps écoulé entre deux instructions de bas niveau du CPU afin de déterminer si le système d'exploitation qui les gère fonctionne directement sur le PC ou dans une machine virtuelle. Pour parvenir à ce type de détection, Rootkit Unhooker utilise l'instruction RDTSC ...
    Cliquer sur [Analyse] (Analyze), le résultat doit être[Pas de machine virtuelle (VM) présente] (No VM present) et le nombre de 'tacts' doit être le plus bas possible.
    ... ... ...
  • ['Dump' de zone mémoire] (Dump memory zone)
    Contrairement aux autres fonctions de 'dump' disponibles, celle-ci porte sur une zone étendue du noyau et non sur un module particulier. Deux paramètres doivent être précisés : l'adresse de début (par exemple celle du noyau lui-même ou celle d'un module repéré lors d'un scan) et la longueur du 'dump' avec un maximum de 256 Mo. Ensuite, il suffit de choisir [Dump] pour que s'ouvre la fenêtre de dialogue qui permet de préciser un emplacement sur le disque.
  • Fonctions de notification (Notify Routines)
    Ces fonctions sont décrites dans l'étude réalisée par Thomas Garnier -> Vue d'ensemble des méthodes de traçage sous Windows.
    Notify Routines ...

Menu [Action].
Suivant le module utilisé une ou plusieurs des actions sont possibles et les autres sont désactivées.
  • /!\ Attention /!\ Plusieurs fonctions sont particulièrement délicates à utiliser ...
    • [Provoquer un 'BSoD' immédiat] (Do immediatly BSoD) Provoque un « écran bleu de la mort » ... à n'utiliser qu'en cas d'extrême urgence, découverte d'un rootkit-malware particulièrement dangereux ...
    • Les fonctions comprenant une possibilité de décrochetage global [TOUT] (ALL) vont essayer de rectifier TOUS les crochetages, y compris ceux des logiciels désirés qui seraient listés.
    • La fonction [Arrêt forcé] (Force Kill) seule ou associée à une autre fonction peut provoquer un 'BSoD' et/ou un redémarrage du système, surtout si elle est appliquée à un 'code' protégé contre les tentatives d'effacement de la mémoire ou de modification sur le disque.
    • Les rootkits-malwares qui font l'objet d'un BSoD (volontaire ou non) devront être neutralisés en mode sans échec ou, mieux, à partir d'un système de secours : multiboot, système créé avec UBCD ou UBCD4WIN etc.
  • Dump
    Dans l'interface française, le mot « Dump » n'a pas été traduit. Dans le cas présent il s'agit d'une forme de 'Core dump' qui est un enregistrement (généralement sur le disque) d'une partie de ce qui se trouve en mémoire à un moment donné. Lorsque une bibliothèque logicielle, un driver ou un processus en mémoire est crocheté, il est possible de l'enregistrer en l'état pour faire une analyse détaillée du crochet mis en place et définir s'il est lié à un rootkit malsain ou non. Une fonction réservée en principe aux initiés mais que les débutants peuvent utiliser pour faire étudier le cas par le support de Rootkit Unhooker.
…\…

"They who can give up essential liberty to obtain a little temporary safety, deserve neither liberty nor safety." (Benjamin Franklin)

#7 Txon

Txon

    AïoligaToR

  • Administrateur
  • PipPipPipPipPipPipPipPipPip
  • 7 290 Messages :

Posté 07 juin 2007 - 15:00

.../...


== Techniques de développement ==


Pour faire progresser son HIDS, l'équipe de Rootkit Unhooker imagine des méthodes de contournement PoC puis les met en pratique dans des rootkits de démonstration inoffensifs que chacun peut utiliser pour vérifier l'efficacité de ses défenses : RkU Test Rootkit et Unreal (voir annexe). RkUnhooker est alors amélioré pour contrer ces méthodes d'intrusion.

L'équipe de RkU est à l'origine de plusieurs techniques de détection sous © copyright. Elle développe également des petits utilitaires annexes comme Process Walker, un détecteur de processus en mode console qui inclut les nouvelles méthodes de détection sous Windows XP SP2 ou Window (voir annexe).



== Liens ==
  • arrow.gif RkU version 3.7 >>> RkU3.7.300.502.zip <<< pour installation après la désinstallation de toute version antérieure
  • arrow.gif Fichier de francisation (actuellement pour la v3.7) >>> local_3.7_fr.dll <<< à renommer local.dll et à mettre dans le répertoire d'installation de RkU 3.7
  • Autres développements par l'équipe de Rootkit Unhooker ...
  • Exemple de détection d'un rootkit par RkU (fr - Malekal)
  • arrow.gif Mini lexique des mots et expressions utilisés dans l'environnement des rootkits. Les mots entre ' ' de ce sujet devraient y avoir une explication.
Fin provisoire ...

Ce dossier sera complété en fonction de vos demandes de précisons ou de l'évolution de RkU.

Veuillez faire part de vos réflexions et poser vos questions dans le sujet réservé à cet effet ...
>>> ICI <<<


@+
"They who can give up essential liberty to obtain a little temporary safety, deserve neither liberty nor safety." (Benjamin Franklin)



0 utilisateur(s) en train de lire ce sujet

0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)

Partenaires :