Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
SwishDbgExt — Extension de débogage pour la réponse aux incidents et la criminalistique numérique | Kitploit
Outils/GitHubGitHub/magnetforensics/swishdbgext
Criminalistique MémoireRétro-ingénierieDébogueursAnalyse de MalwareCriminalistique NumériqueRéponse aux Incidents
GitHubmagnetforensics/swishdbgext

SwishDbgExt

Extension de débogage pour la réponse aux incidents et la criminalistique numérique

Voir le dépôt
40197il y a 7 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Site web

#SwishDbgExt

SwishDbgExt est une extension de débogage Microsoft WinDbg qui étend l'ensemble des commandes disponibles de Microsoft WinDbg, mais corrige et améliore également les commandes existantes. Cette extension a été développée par Matt Suiche (@msuiche) – n'hésitez pas à nous contacter à [email protected] pour demander plus de fonctionnalités, proposer de contribuer et/ou signaler des bogues.

SwishDbgExt vise à faciliter la vie des développeurs noyau, des dépanneurs et des experts en sécurité grâce à une série de commandes de débogage, de réponse aux incidents et de forensic mémoire. Étant une extension de débogage WinDbg, elle peut être utilisée sur des sessions de débogage noyau locales ou distantes, des sessions en direct générées par Microsoft LiveKd, mais aussi sur des vidages sur incident Microsoft générés par un écran bleu de la mort ou des utilitaires hybrides tels que Comae DumpIt.

Concours 2016

Plus d'informations sur https://blog.comae.io/comae-2016-contest-swishdbgext-features-3c9a63c62209#.tnt1b9usx

Installation

Vous pouvez soit copier l'extension WinDbg dans le dossier WinDbg correspondant (x86 ou x64), soit la charger manuellement à l'aide de la commande !load comme ci-dessous. Veuillez noter que vous ne pouvez pas avoir d'espaces ou de guillemets dans le chemin complet vers la dll cible à charger. !load X:\FullPath\SwishDbgExt.dll

###Exemple:

root@kitploit:~
kd> !load E:\projects\labs\SwishDbgExt\bin\x64\SwishDbgExt.dll;
       SwishDbgExt v0.7.0 (Nov  2 2016) - Incident Response & Digital Forensics Debugging Extension
       SwishDbgExt Copyright (C) 2016 Comae Technologies FZE - http://www.comae.io
       SwishDbgExt Copyright (C) 2014-2016 Matthieu Suiche (@msuiche)

       This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
       This is free software, and you are welcome to redistribute it
       under certain conditions; type `show c' for details.

Si vous souhaitez mettre à jour votre modèle WinDbg avec un modèle plus compatible DML, vous pouvez importer directement le fichier windbg_template.reg joint au package.

TODO

  • Définir les structures
  • Définir les commandes
  • Annoncer le concours de fonctionnalités.

Commandes

!SwishDbgExt.help

Affiche des informations sur les commandes d'extension disponibles.

Cette commande vous donnera la liste de toutes les commandes si vous ne spécifiez aucun argument, et la liste des paramètres d'une commande existante si elle est spécifiée comme argument.

!ms_callbacks

Affiche les fonctions de rappel

!ms_checkcodecave

Recherche les code caves utilisés

!ms_consoles

Affiche l'historique des commandes de la console

!ms_credentials

Affiche les informations d'identification de l'utilisateur (basé sur mimikatz de gentilwiki)

!ms_drivers

Affiche la liste des pilotes. !ms_drivers affiche une liste des pilotes actuellement chargés. Dans cet exemple, voici quelques-uns des pilotes chargés au moment du crash dans ce vidage noyau : Avec cette commande, nous pouvons également visualiser des informations IRP détaillées concernant un pilote : Dans l'image ci-dessus, nous pouvons voir l'emplacement de la pile d'E/S spécifique au pilote dans l'IRP de e1cexpress.sys. Nous pouvons y voir des codes de fonction tels que IRP_MJ_CREATE qui ouvre l'objet périphérique cible, indiquant qu'il est présent et disponible pour les opérations d'E/S.

!ms_dump

Vide l'espace mémoire sur le disque

!ms_exqueue

Affiche les workers en file d'attente Ex.

!exqueue ne fonctionne pas correctement sur Windows 8, donc une version fonctionnelle a dû être implémentée. Tout comme la commande d'origine, celle-ci affiche la file d'attente des threads de travail.

!ms_fixit

Réinitialise la segmentation dans WinDbg (Correction de "16.kd>")

!ms_gdt

Affiche la GDT.

!ms_gdt affiche la Global Descriptor Table. Notez que sur x64, chaque sélecteur est plat (de 0x0000000000000000 à 0xFFFFFFFFFFFFFFFF). Cette commande peut être particulièrement utile pour vérifier tout hook suspecté de la GDT, car tenter de le faire sur x64 provoquera un bug check. Cela est dû au fait que x64 interdit le hook de la GDT.

!ms_hivelist

Affiche la liste des ruches du registre.

ms_hivelist affiche une liste des ruches du registre. Nous pouvons regarder directement dans une ruche (\Registry\Machine\Software par exemple) pour voir ses sous-clés, valeurs, etc :

Texte alternatif

!ms_idt

Affiche la IDT.

!ms_idt affiche la table des descripteurs d'interruptions. Tout comme la GDT, si la IDT est hookée sur un système x64, cela provoquera un bug check. Cela est dû au fait que Microsoft a implémenté (programmatiquement) une prévention du hook de la IDT avec un pilote en mode noyau qui intercepterait normalement les appels à la IDT et ajouterait son propre traitement. C'est pourquoi, dans l'image ci-dessus, il y a 'Non' partout où l'on peut voir.

!ms_malscore

Analyse un espace mémoire et retourne un Indice de Score de Malware (MSI) - (basé sur le travail de Frank Boldewin)

!ms_mbr

Scanne le Master Boot Record (MBR)

!ms_netstat

Affiche les informations réseau (sockets, connexions, ...)

!ms_object

Affiche la liste des objets

!ms_process

Affiche la liste des processus. !ms_process est une version améliorée de !process et !dml_proc.. L'une des choses intéressantes, comme vous pouvez le remarquer ci-dessous, est l'utilisation du DML (Debugger Markup Language) avec les commandes. Toutes les commandes soulignées sont en fait des liens vers des commandes. Comme exemple ci-dessous, vous pouvez voir la sortie de /vads /scan, pour scanner les VAD (Virtual Address Descriptors). Vous pouvez remarquer qu'une colonne donne l'« Indice de Score de Malware » qui peut être utile pour détecter des shellcodes ou du heap-spray. Dans la capture d'écran ci-dessous, vous pouvez voir un score anormalement élevé dans plusieurs VAD – dû à l'utilisation du heap spray. En cliquant simplement sur le score, l'algorithme de scan s'exécutera. L'algorithme de scan est basé sur l'utilitaire OfficeMalScanner de Frank Boldewin. Et il vous renvoie des informations sur l'emplacement du shellcode : L'option /scan peut également être utilisée sur les fonctions exportées pour savoir si l'EAT (Export Address Table) a été patchée ou si le prologue de la fonction a été modifié. Des tests similaires sont disponibles pour la SSDT (!ms_ssdt).

!ms_readkcb

Lit le bloc de contrôle de clé

!ms_readknode

Lit le nœud de clé. La commande WinDbg !reg a été une source de frustration pendant longtemps, en raison de certains bogues. C'est pourquoi SwishDbgExt a ses propres fonctions d'exploration du registre pour essayer de rendre l'accès aux données du registre aussi simple que possible.

!ms_readkvalue

Lit la valeur de la clé

!ms_scanndishook

Scanne et affiche les hooks NDIS suspects

!ms_services

Affiche la liste des services

!ms_ssdt

Affiche les fonctions de la table des descripteurs de services (SDT). !ms_ssdt affiche la System Service Dispatch Table. Cette commande est extrêmement utile dans l'investigation de hooks suspects de rootkit via ce qu'on appelle la Manipulation Directe d'Objets Noyau (DKOM). Si vous voyez une routine de bas niveau qui est hookée (comme nt!NtEnumerateKey), cela peut vous aider dans votre analyse concernant une éventuelle infection par rootkit.

!ms_store

Affiche les informations relatives au Store Manager (ReadyBoost).

Cette commande permet de lister le cache ReadyBoost actuel (nécessite USB 3.0) utilisé par le système d'exploitation, mais aussi d'afficher les journaux des pages mémoire gérées par le store manager. Paramètre : /cache

!ms_timers

Affiche la liste des KTIMER.

!ms_timers affiche la structure KTIMER, qui est une structure opaque représentant et contenant divers objets de minuterie. Cette commande peut être utile pour déterminer quels pilotes ont créé quels objets de minuterie, quels pilotes ont appelé quelles routines, etc.

!ms_vacbs

Affiche la liste des VACBs en cache

!ms_verbose

Active/Désactive le mode verbeux

!ms_lxss

Ce qui suit est basé sur les recherches publiées par Alex Ionescu et disponibles ici : https://github.com/ionescu007/lxss/

Cette fonctionnalité est disponible sur Windows 10+ en tant que fonctionnalité facultative installable via la commande PowerShell suivante :

root@kitploit:~
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Vous pouvez en savoir plus sur le Sous-système Windows pour Linux aux liens suivants :

  • https://blogs.msdn.microsoft.com/wsl/2016/04/22/windows-subsystem-for-linux-overview/
  • https://channel9.msdn.com/Blogs/Seth-Juarez/Windows-Subsystem-for-Linux-Architectural-Overview
  • https://msdn.microsoft.com/en-us/commandline/wsl/install_guide
root@kitploit:~
	Windows Subsystem for Linux Overview.
	Instance 0xFFFFE704EEB8F010
	GUID: {E29032FD-35D3-4C53-AB68-6BCEBDA7176F}
	State:            (1) [STARTED]
	Creation Flags:   00000001
	GlobalData:       0xFFFFF802ED4138A0
	Root Handle:      80000834
	Temp Handle:      80000838
	Job Handle:       8000083c
	Token:            80000818
	Event Handle:     800008bc

	Map Paths (0):    0xFFFFE704EF437920
	VFS Context:      0xFFFFE704EEFC4710
	Memory Flags:     0x2

	Last PID:         35
	Thread Groups:    3
		Session 0xFFFFE704EDB79EC0
		Instance:         0xFFFFE704EEB8F010
		Console inode:    0x0
		Foreground PID:   -1
			Process Group 0xFFFFE704EDB79AE0
			Instance:      0xFFFFE704EEB8F010
			Session:       0xFFFFE704EDB79EC0
				Thread Group 0xFFFFE704EF4F8000
				Binary Path:           /init
				Thread(s):             1
				Owner Process Group:   0xFFFFE704EDB79AE0
				Flags:                 0x00000000
				Main Thread:           0xFFFFE704EF5CC010
				Arguments (006 bytes): 0x00007FFFC081D6E0
					Process 0xFFFFE704EF2F1D70
					Instance:            0xFFFFE704EEB8F010
					NT Process Object:   0xFFFFAE05E84EF800
					NT Process Handle:   0xFFFFFFFF80000F58
					VDSO Address:        0x00007FFFC0849000
					Stack Address:       0x00007FFFC001E000
		Session 0xFFFFE704EF5DB830
		Instance:         0xFFFFE704EEB8F010
		Console inode:    0xFFFFE704EF32D7A0
		Foreground PID:   2
			Process Group 0xFFFFE704EF5EF970
			Instance:      0xFFFFE704EEB8F010
			Session:       0xFFFFE704EF5DB830
				Thread Group 0xFFFFE704EF5EE000
				Binary Path:           /bin/bash
				Thread(s):             1
				Owner Process Group:   0xFFFFE704EF5EF970
				Flags:                 0x0000000C
				Main Thread:           0xFFFFE704EF5F8010
				Arguments (010 bytes): 0x00007FFFDF34E418
					Process 0xFFFFE704EDEF6EC0
					Instance:            0xFFFFE704EEB8F010
					NT Process Object:   0xFFFFAE05E84E6800
					NT Process Handle:   0xFFFFFFFF80000D9C
					VDSO Address:        0x00007FFFDF883000
					Stack Address:       0x00007FFFDEB4F000
		Session 0xFFFFE704EF0A8ED0
		Instance:         0xFFFFE704EEB8F010
		Console inode:    0xFFFFE704EF06B9C0
		Foreground PID:   19
			Process Group 0xFFFFE704F059CBC0
			Instance:      0xFFFFE704EEB8F010
			Session:       0xFFFFE704EF0A8ED0
				Thread Group 0xFFFFE704EDE51000
				Binary Path:           /bin/bash
				Thread(s):             1
				Owner Process Group:   0xFFFFE704F059CBC0
				Flags:                 0x0000000C
				Main Thread:           0xFFFFE704EDC78090
				Arguments (010 bytes): 0x00007FFFF78CFB78
					Process 0xFFFFE704F06389B0
					Instance:            0xFFFFE704EEB8F010
					NT Process Object:   0xFFFFAE05E618D800
					NT Process Handle:   0xFFFFFFFF80001650
					VDSO Address:        0x00007FFFF7C99000
					Stack Address:       0x00007FFFF70D0000

!ms_yarascan

Scanne la mémoire d'un processus avec des règles yara.

Scanne la mémoire d'un processus.

root@kitploit:~
!ms_yarascan /pid 0x228 /yarafile /yarafile C:\Rules.yar

Scanne la mémoire de tous les processus.

root@kitploit:~
!for_each_process "r? @$t0 = (nt!_EPROCESS *) @#Process; .process /r /p @$t0; !ms_yarascan /pid @@C++(@$t0->UniqueProcessId) /yarafile C:\\Rules.yar"

Classes

PEFile

MsPEImageFile contient les informations communes de base utilisées par les binaires Windows (PE) et a été dérivé en trois classes différentes :

  • MsProcessObject
  • MsDllObject
  • MsDriverObject
Télécharger l’outil