Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
SwishDbgExt — Extensão de Depuração para Resposta a Incidentes e Forense Digital | Kitploit
Ferramentas/GitHubGitHub/magnetforensics/swishdbgext
Forensia de MemóriaEngenharia ReversaDepuradoresAnálise de MalwareForensia DigitalResposta a Incidentes
GitHubmagnetforensics/swishdbgext

SwishDbgExt

Extensão de Depuração para Resposta a Incidentes e Forense Digital

Ver Repositório
40197há 7 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Site

#SwishDbgExt

SwishDbgExt é uma extensão de depuração da Microsoft WinDbg que expande o conjunto de comandos disponíveis pela Microsoft WinDbg, mas também corrige e melhora comandos existentes. Esta extensão foi desenvolvida por Matt Suiche (@msuiche) – sinta-se à vontade para entrar em contato pelo e-mail [email protected] para solicitar mais funcionalidades, oferecer contribuições e/ou relatar bugs.

SwishDbgExt tem como objetivo facilitar a vida de desenvolvedores de kernel, solucionadores de problemas e especialistas em segurança com uma série de comandos de depuração, resposta a incidentes e forense de memória. Por ser uma extensão de depuração do WinDbg, pode ser usada em sessões de depuração de kernel local ou remota, sessões ao vivo geradas pelo Microsoft LiveKd, mas também em dumps de falha do Microsoft gerados por uma Tela Azul da Morte ou utilitários híbridos como o Comae DumpIt.

Concurso de 2016

Mais informações em https://blog.comae.io/comae-2016-contest-swishdbgext-features-3c9a63c62209#.tnt1b9usx

Instalação

Você pode copiar a extensão do WinDbg para a pasta correspondente (x86 ou x64) do WinDbg ou carregá-la manualmente usando o comando !load conforme abaixo. Observe que não é permitido espaços ou aspas no caminho completo da dll a ser carregada. !load X:\FullPath\SwishDbgExt.dll

Exemplo:

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 desejar atualizar seu modelo do WinDbg com um modelo mais amigável para DML, você pode importar diretamente o arquivo windbg_template.reg incluído no pacote.

A Fazer

  • Definir estruturas
  • Definir comandos
  • Anunciar concurso de funcionalidades.

Comandos

!SwishDbgExt.help

Exibe informações sobre os comandos de extensão disponíveis.

Este comando fornecerá a lista de todos os comandos se nenhum argumento for especificado, ou fornecerá a lista de parâmetros para um comando existente se especificado como argumento.

!ms_callbacks

Exibir funções de retorno de chamada

!ms_checkcodecave

Procurar por code cave utilizado

!ms_consoles

Exibir histórico de comandos do console

!ms_credentials

Exibir credenciais do usuário (baseado no mimikatz do gentilwiki)

!ms_drivers

Exibir lista de drivers. !ms_drivers exibirá uma lista de drivers atualmente carregados. Neste exemplo, aqui estão alguns dos drivers carregados no momento da falha neste dump de kernel: Com este comando, também podemos visualizar informações detalhadas de IRP sobre um driver: Na imagem acima, podemos ver a localização da pilha de E/S específica do driver dentro do IRP de e1cexpress.sys. Aqui podemos ver códigos de função como IRP_MJ_CREATE que abre o objeto de dispositivo alvo, indicando que ele está presente e disponível para operações de E/S.

!ms_dump

Despejar espaço de memória no disco

!ms_exqueue

Exibir fila de trabalhadores Ex.

!exqueue não funciona corretamente no Windows 8, então uma versão funcional precisou ser implementada. Assim como o comando original, este exibe a fila de threads de trabalho.

!ms_fixit

Redefinir segmentação no WinDbg (Corrigir "16.kd>")

!ms_gdt

Exibir GDT.

!ms_gdt exibe a Tabela de Descritores Globais. Observe que no x64 cada seletor é plano (0x0000000000000000 a 0xFFFFFFFFFFFFFFFF). Este comando pode ser especialmente útil para verificar possíveis hooks na GDT, pois tentar fazer isso no x64 chamará um bug check. Isso ocorre porque o x64 proíbe o hooking da GDT.

!ms_hivelist

Exibir lista de hives do registro.

ms_hivelist exibe uma lista dos hives do registro. Podemos olhar diretamente para um hive (\Registry\Machine\Software, por exemplo) para ver suas subchaves, valores, etc:

Texto alternativo

!ms_idt

Exibir IDT.

!ms_idt exibe a Tabela de Descritores de Interrupção. Muito parecido com a GDT, se a IDT estiver com hook em um sistema x64, isso causará um bug check. Isso se deve ao fato de a Microsoft ter implementado (programaticamente) uma prevenção de hook na IDT com um driver em modo kernel que interceptaria chamadas à IDT e adicionaria seu próprio processamento. É por isso que na imagem acima, vemos 'Não' por toda a extensão.

!ms_malscore

Analisar um espaço de memória e retornar um Índice de Pontuação de Malware (MSI) - (baseado no trabalho de Frank Boldewin)

!ms_mbr

Escaneia o Master Boot Record (MBR)

!ms_netstat

Exibir informações de rede (soquetes, conexões, ...)

!ms_object

Exibir lista de objetos

!ms_process

Exibir lista de processos. !ms_process é uma versão melhorada de !process e !dml_proc. Uma das coisas interessantes, como você pode notar abaixo, é o uso de DML (Debugger Markup Language) com os comandos. Todos os comandos sublinhados são, na verdade, links para comandos. Como exemplo abaixo, você pode ver a saída de /vads /scan, para escanear VADs (Descritores de Endereço Virtual). Você pode notar que uma coluna fornece o "Índice de Pontuação de Malware", que pode ser útil para detectar shellcodes ou heap-spray. Na captura de tela abaixo, você pode ver uma pontuação anormalmente alta em vários VADs – devido ao uso de heap spray. Basta clicar na pontuação para executar o algoritmo de varredura. O algoritmo de varredura é baseado no utilitário OfficeMalScanner de Frank Boldewin. E retorna informações sobre onde o shellcode está: A opção /scan também pode ser usada em funções exportadas para saber se a Tabela de Endereços de Exportação (EAT) foi alterada ou se o prólogo da função foi modificado.

Testes semelhantes estão disponíveis para a SSDT (!ms_ssdt).

!ms_readkcb

Ler bloco de controle de chave

!ms_readknode

Ler nó de chave. O comando !reg do WinDbg tem sido uma frustração por muito tempo, devido a alguns bugs. É por isso que o SwishDbgExt possui suas próprias funções de explorador de registro para tentar tornar o acesso aos dados do registro o mais simples possível.

!ms_readkvalue

Ler valor da chave

!ms_scanndishook

Escaneia e exibe hooks suspeitos de NDIS

!ms_services

Exibir lista de serviços

!ms_ssdt

Exibir funções da Tabela de Despacho de Serviços do Sistema (SDT). !ms_ssdt exibe a Tabela de Despacho de Serviços do Sistema. Este comando é extremamente útil na investigação de hooks suspeitos de rootkits através do que é conhecido como Manipulação Direta de Objetos do Kernel (DKOM). Se você vir uma rotina de baixo nível aqui que está com hook (como nt!NtEnumerateKey), isso pode ajudar na análise de uma possível infecção por rootkit.

!ms_store

Exibir informações relacionadas ao Gerenciador de Armazenamento (ReadyBoost).

O presente comando permite listar o cache atual do ReadyBoost (requer USB 3.0) usado pelo Sistema Operacional, mas também exibir os logs das páginas de memória gerenciadas pelo gerenciador de armazenamento. Parâmetro: /cache

!ms_timers

Exibir lista de KTIMER.

!ms_timers exibe a estrutura KTIMER, que é uma estrutura opaca que representa e contém vários objetos de temporizador. Este comando pode ser útil para descobrir quais drivers criaram quais objetos de temporizador, quais drivers chamaram quais rotinas, etc.

!ms_vacbs

Exibir lista de VACBs em cache

!ms_verbose

Ativar/desativar modo verboso

!ms_lxss

O seguinte é baseado na pesquisa publicada por Alex Ionescu e disponível em: https://github.com/ionescu007/lxss/

Este recurso está disponível no Windows 10+ como um recurso opcional instalável através do seguinte comando PowerShell:

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

Você pode ler mais sobre o Subsistema Windows para Linux nos seguintes links:

  • 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

Escaneia a memória de um processo com regras yara.

Escaneia a memória de um processo.

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

Escaneia a memória de todos os processos.

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 contém as informações comuns básicas usadas por binários do Windows (PE) e foi derivado em três classes diferentes:

  • MsProcessObject
  • MsDllObject
  • MsDriverObject
Baixar ferramenta