Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
SwishDbgExt — Estensione di debug per Incident Response e Digital Forensics | Kitploit
Strumenti/GitHubGitHub/magnetforensics/swishdbgext
Memory ForensicsReverse EngineeringDebuggerAnalisi MalwareDigital ForensicsRisposta agli Incidenti
GitHubmagnetforensics/swishdbgext

SwishDbgExt

Estensione di debug per Incident Response e Digital Forensics

Vedi Repository
401977 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Sito web

#SwishDbgExt

SwishDbgExt è un'estensione di debug per Microsoft WinDbg che espande l'insieme dei comandi disponibili di Microsoft WinDbg, ma corregge e migliora anche i comandi esistenti. Questa estensione è stata sviluppata da Matt Suiche (@msuiche) – sentiti libero di contattarci a [email protected] per richiedere ulteriori funzionalità, offrire il tuo contributo e/o segnalare bug.

SwishDbgExt mira a semplificare la vita degli sviluppatori kernel, dei risolutori di problemi e degli esperti di sicurezza con una serie di comandi per debug, risposta agli incidenti e analisi forense della memoria. Poiché SwishDbgExt è un'estensione di debug per WinDbg, può essere utilizzata in sessioni di debug del kernel locali o remote, sessioni live generate da Microsoft LiveKd, ma anche su dump di crash Microsoft generati da un Blue Screen of Death o utility ibride come Comae DumpIt.

Concorso 2016

Maggiori informazioni su https://blog.comae.io/comae-2016-contest-swishdbgext-features-3c9a63c62209#.tnt1b9usx

Installazione

Puoi copiare l'estensione WinDbg nella cartella WinDbg corrispondente (x86 o x64) oppure caricarla manualmente usando il comando !load come mostrato di seguito. Nota che non possono esserci spazi o virgolette nel percorso completo della DLL da caricare. !load X:\FullPath\SwishDbgExt.dll

Esempio:

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.

Se desideri aggiornare il tuo template WinDbg con un template più adatto a DML, puoi importare direttamente il file windbg_template.reg allegato al pacchetto.

TODO

  • Definire le strutture
  • Definire i comandi
  • Annunciare il concorso di funzionalità.

Comandi

!SwishDbgExt.help

Mostra informazioni sui comandi dell'estensione disponibili.

Questo comando fornisce l'elenco di tutti i comandi se non viene specificato alcun argomento, oppure l'elenco dei parametri per un comando esistente se specificato come argomento.

!ms_callbacks

Mostra le funzioni callback

!ms_checkcodecave

Cerca i code cave utilizzati

!ms_consoles

Mostra la cronologia dei comandi della console

!ms_credentials

Mostra le credenziali dell'utente (basato su mimikatz di gentilwiki)

!ms_drivers

Mostra l'elenco dei driver. !ms_drivers mostra un elenco dei driver attualmente caricati. In questo esempio, ecco alcuni dei driver caricati al momento del crash in questo dump del kernel: Con questo comando possiamo anche visualizzare informazioni approfondite sugli IRP relative a un driver: Nell'immagine sopra possiamo vedere la posizione dello stack I/O specifica del driver all'interno dell'IRP di e1cexpress.sys. Qui possiamo vedere codici di funzione come IRP_MJ_CREATE che apre l'oggetto dispositivo di destinazione, indicando che è presente e disponibile per operazioni I/O.

!ms_dump

Scarica lo spazio di memoria su disco

!ms_exqueue

Mostra i worker in coda Ex.

!exqueue non funziona correttamente su Windows 8, quindi è stata implementata una versione funzionante. Proprio come il comando originale, questo mostra la coda dei thread di lavoro.

!ms_fixit

Reimposta la segmentazione in WinDbg (Ripara "16.kd>")

!ms_gdt

Mostra la GDT.

!ms_gdt mostra la Global Descriptor Table. Nota che su x64 ogni selettore è piatto (0x0000000000000000 a 0xFFFFFFFFFFFFFFFF). Questo comando può essere molto utile per verificare eventuali sospetti hook della GDT, poiché tentare di farlo su x64 provocherà un bug check. Questo perché x64 vieta l'hooking della GDT.

!ms_hivelist

Mostra l'elenco degli hive del registro.

ms_hivelist mostra un elenco degli hive del registro. Possiamo esaminare direttamente un hive (ad esempio \Registry\Machine\Software) per vedere le sue sottochiavi, valori, ecc.:

Testo alternativo

!ms_idt

Mostra la IDT.

!ms_idt mostra la tabella dei descrittori di interrupt. Molto simile alla GDT, se la IDT viene hookata su un sistema x64, provocherà un bug check. Questo è dovuto al fatto che Microsoft ha implementato (a livello di codice) una prevenzione dell'hooking della IDT con un driver in modalità kernel che normalmente intercetterebbe le chiamate alla IDT e poi aggiungerebbe la propria elaborazione. Ecco perché nell'immagine sopra, per quanto si veda, c'è 'No'.

!ms_malscore

Analizza uno spazio di memoria e restituisce un Malware Score Index (MSI) - (basato sul lavoro di Frank Boldewin)

!ms_mbr

Scansiona il Master Boot Record (MBR)

!ms_netstat

Mostra informazioni di rete (socket, connessioni, ...)

!ms_object

Mostra l'elenco degli oggetti

!ms_process

Mostra l'elenco dei processi. !ms_process è una versione migliorata di !process e !dml_proc. Una delle cose interessanti, come puoi notare qui sotto, è l'uso di DML (Debugger Markup Language) con i comandi. Tutti i comandi sottolineati sono in realtà collegamenti a comandi. Ad esempio qui sotto, puoi vedere l'output di /vads /scan, per scansionare i VAD (Virtual Address Descriptors). Puoi notare che una colonna mostra il "Malware Score Index" che può essere utile per rilevare shellcode o heap-spray. Nello screenshot qui sotto, puoi vedere un punteggio anormalmente alto in diversi VAD – a causa dell'uso di heap spray. Basta cliccare sul punteggio per eseguire l'algoritmo di scansione. L'algoritmo di scansione è basato sull'utility OfficeMalScanner di Frank Boldewin. E restituisce informazioni su dove si trova lo shellcode: L'opzione /scan può essere utilizzata anche sulle funzioni esportate per sapere se l'EAT (Export Address Table) è stata patchata o se il prologo della funzione è stato modificato.

Test simili sono disponibili per la SSDT (!ms_ssdt).

!ms_readkcb

Legge un key control block

!ms_readknode

Legge un key node. Il comando WinDbg !reg è stato a lungo fonte di frustrazione a causa di alcuni bug. Ecco perché SwishDbgExt ha proprie funzioni di esplorazione del registro per rendere l'accesso ai dati del registro il più semplice possibile.

!ms_readkvalue

Legge un key value

!ms_scanndishook

Scansiona e mostra gli hook NDIS sospetti

!ms_services

Mostra l'elenco dei servizi

!ms_ssdt

Mostra le funzioni della System Service Descriptor Table (SDT). !ms_ssdt mostra la System Service Dispatch Table. Questo comando è estremamente utile nell'investigazione di sospetti hook di rootkit attraverso ciò che è noto come Direct Kernel Object Manipulation (DKOM). Se vedi una routine di basso livello hookata qui (come nt!NtEnumerateKey), questo può aiutarti nell'analisi di una possibile infezione da rootkit.

!ms_store

Mostra informazioni relative allo Store Manager (ReadyBoost).

Il presente comando permette di elencare la cache ReadyBoost corrente (richiede USB 3.0) utilizzata dal sistema operativo, ma anche di visualizzare i log delle pagine di memoria gestite dallo store manager. Parametro: /cache

!ms_timers

Mostra l'elenco dei KTIMER.

!ms_timers mostra la struttura KTIMER, che è una struttura opaca che rappresenta e contiene vari oggetti timer. Questo comando può essere utile per capire quali driver hanno creato quali oggetti timer, quali driver hanno chiamato quali routine, ecc.

!ms_vacbs

Mostra l'elenco dei VACB in cache

!ms_verbose

Attiva/disattiva la modalità verbose

!ms_lxss

Quanto segue si basa sulla ricerca pubblicata da Alex Ionescu e disponibile qui: https://github.com/ionescu007/lxss/

Questa funzionalità è disponibile su sistemi operativi Windows 10+ come funzionalità opzionale installabile tramite il seguente comando PowerShell:

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

Puoi leggere ulteriori informazioni sul Sottosistema Windows per Linux ai seguenti link:

  • 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

Scansiona la memoria di un processo con regole yara.

Scansiona la memoria di un processo.

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

Scansiona la memoria di tutti i processi.

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

Classi

PEFile

MsPEImageFile contiene le informazioni comuni di base utilizzate dai binari Windows (PE) ed è stato derivato in tre diverse classi:

  • MsProcessObject
  • MsDllObject
  • MsDriverObject
Scarica lo strumento