Le sample que j'ai upload dans ce repo provient de https://github.com/hoangcuongflp/Stuff/tree/ee100760a05f524ff73837222d80f1dd12da3cee/WindowsRegistryRootkit-master/src
Qu'est-ce qu'est un rootkit ?
Programme qui effectue le raccordement du système ou modifie la fonctionnalité du système d'exploitation
Masquer les fichiers, processus, autres objets pour masquer sa présence
Intercepte et modifie le flux d'exécution normal
Peut contenir des composants en mode utilisateur et en mode noyau
Certains rootkits peuvent être installés en tant que pilotes de périphérique
Types: rootkits en mode utilisateur et en mode kernel
Rootkits en mode utilisateur ?
Fonctionne dans le Ring 3
Accrochage dans l'espace utilisateur ou l'espace application
Quelques techniques courantes du mode utilisateur Rootkit:
Accrochage IAT (Import Address Table)
Accrochage API en ligne
Rootkit doit effectuer des correctifs dans l'espace mémoire de chaque application en cours d'exécution
Fonctionne dans le Ring 0
Accrochage ou modification du système dans l'espace noyau
Quelques techniques de rootkit en mode noyau:
Accrochage SSDT (System Service Descriptor Table)
DKOM (Direct Kernel Object Manipulation)
Accrochage IDT (Interrupt Descriptor Table)
Installation en tant que pilotes de périphérique
Accrochage IRP du pilote
Cycle d'appel de fonction sous Windows
La capture d'écran ci-dessous montre le cycle de vie de l'API sur le système Windows
Niveaux de hook / modification sur Windows
La capture d'écran ci-dessous montre des tableaux et des objets que le Rootkit peut accrocher / modifier pour masquer sa présence
La théorie et les techniques du rootkit seront traitées en profondeur dans un autre repo. Cette session se concentre sur l'analyse des rootkits.
Exécution du sample mader.exe
L'exécution du sample supprime un pilote et le charge en tant que service du kernel
Le malware fait une requête DNS et télécharge des fichiers supplémentaires
Kernel Callbacks (rappels du kernel)
Rootkit utilise des rappels pour surveiller l'activité de création de processus
Rootkit modifie les pointeurs dans le SSDT pour se protéger contre la suppression ou la suppression
Soumission de rootkit à VirusTotal
VirusTotal confirme le Rootkit après avoir vidé et soumis le pilote de la mémoire
Exécution du sample prolaco.exe
Prolaco.exe dépose deux fichiers sur «Googlxe.exe» et «Rundll45.exe» sur le système de fichiers
Désactive les produits de sécurité
Empêche les produits de sécurité de fonctionner en recherchant les produits de sécurité et en supprimant leur valeur de clé de Registre
Le malware envoie des spams d'invitation à certaines organisations
L'identifiant de processus 1080 envoie le spam, mais les rootkits cachent ce processus de la liste des processus en utilisant la technique DKOM
Masque le processus de l'outil de sécurité
Masque le processus à partir de l'explorateur de processus
Détecter le processus caché
La comparaison de la liste des processus à l'aide du plugin «pslist» et «psscan» de Volatility montre le processus caché prolaco.exe (pid 1080)
Vider le processus caché de la mémoire et le soumettre à VirusTotal confirme la présence d'un processus caché malveillant
Exécution du sample darkmegi.exe
Le sample supprime un pilote et appelle également les processus rundll32 et iexplore
Permet au DNS d'interroger et de télécharger des fichiers supplémentaires
Sets Callbacks (définit les rappels)
Définit les kernel callbacks sur montior pour un chargement d'image / DLL
Le pilote crée un périphérique et accepte les codes de contrôle des programmes en mode utilisateur
L'examen des objets périphérique et pilote montre l'adresse de base et l'adresse de la routine DriverEntry
A savoir que le rootkit est tiré d'un sample sur github, l'auteur se trouve dans les citations cherchez-les.
L'examen de la routine DriverEntry montre la présence d'une DLL «com32.dll»
Vidage de la DLL de la mémoire
La DLL vidée de la mémoire, qui a été chargée par rundll32.exe
Vidage du pilote de périphérique
Dumping du conducteur après avoir déterminé l'adresse de base du conducteur
Soumission de DLL et de pilote
VT confirme le composant Rootkit après avoir soumis les échantillons
Résultats de VT pour le pilote sous-jacent
Résultats de VT pour le sous-programme DLL
Exécution du sample carberp.exe
L'exemple crée des fichiers .tmp et appelle explorer.exe et svchost.exe
Un logiciel malveillant effectue des activités DNS et http
Soumet des informations sur le processus
Soumet les informations de processus sur le système au serveur de commande et de contrôle
Correctifs SYSCALL dans ntdll.dll pour masquer sa présence
Hooks API appelle pour voler des données http, les fonctions de hook pointent vers un emplacement inconnu
Vidage de l'exécutable incorporé qui a été déterminé en examinant la fonction d'accrochage.
VirusTotal confirme l'exécutable en tant que composant de Carberp