Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
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.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
KDU — Utilitário de driver de kernel do Windows que abusa de drivers assinados vulneráveis (BYOVD) para contornar o DSE, carregar drivers não assinados, sequestrar processos protegidos e despejar a memória de processos. | Kitploit
Ferramentas/GitHubGitHub/hfiref0x/kdu
Ferramentas DefensivasEscalada de PrivilégiosMecanismos de PersistênciaAnálise de VulnerabilidadesExploraçãoEngenharia ReversaShellcodeAnálise de MalwareRed TeamingDesenvolvimento de PayloadsExploração de Binários
2.8k5525há 7 diasRevisado 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 →
GitHubhfiref0x/kdu

KDU

Utilitário de driver de kernel do Windows que abusa de drivers assinados vulneráveis (BYOVD) para contornar o DSE, carregar drivers não assinados, sequestrar processos protegidos e despejar a memória de processos.

Ver Repositório
Compartilhar

KDU

Build status Visitors

Kernel Driver Utility

Requisitos de Sistema

  • x64 Windows 7/8/8.1/10/11;
  • É necessário privilégio administrativo.

Propósito e Funcionalidades

O propósito desta ferramenta é fornecer uma maneira simples de explorar o kernel/componentes do Windows sem exigir configuração extensa ou um depurador local. Ela apresenta:

  • Sequestro de Processo Protegido via PPL arbitrário ou Handles de Processo arbitrários, ambos através da modificação do objeto EPROCESS;
  • Sobrescritor de Aplicação de Assinatura de Driver (semelhante ao DSEFix);
  • Carregador de driver para contornar a Aplicação de Assinatura de Driver (semelhante ao TDL/Stryker);
  • Suporte para vários drivers vulneráveis usados como "provedores" de funcionalidade.

Uso

KDU -list
KDU -listcsv
KDU -diag
KDU -prv ProviderID
KDU -ps ProcessID
KDU -pse Commandline
KDU -psw Commandline
KDU -pho ProcessID
KDU -dmp ProcessID
KDU -dse value
KDU -map filename
  • -list - lista os provedores atualmente disponíveis;
  • -listcsv [file] - lista os provedores disponíveis em formato CSV, opcionalmente grava em arquivo;
  • -diag - executa diagnósticos do sistema para solução de problemas;
  • -prv - opcional, seleciona o provedor de driver vulnerável;
  • -ps - modifica o objeto de processo do ProcessID fornecido, rebaixando quaisquer proteções;
  • -pse - inicia o programa como ProtectedProcessLight-AntiMalware (PPL);
  • -psw - inicia o programa como ProtectedProcessLight-WinTcb (PPL);
  • -pho - abre um processo arbitrário com acesso total
    • -pht - também abre todas as threads neste processo com acesso total
    • -phc - linha de comando (processo filho) para herdar a flag, padrão powershell
    • -phe - também inicia o processo filho como ppl
  • -dmp - despeja a memória virtual do processo fornecido;
  • -dse - grava um valor definido pelo usuário nas flags de estado do DSE do sistema;
  • -map - mapeia o driver para o kernel e executa seu ponto de entrada; este comando tem dependências listadas abaixo;
    • -scv version - opcional, seleciona a versão do shellcode, padrão 1;
    • -drvn name - nome do objeto do driver (válido apenas para a versão 3 do shellcode);
    • -drvr name - opcional, nome da chave de registro do driver (válido apenas para a versão 3 do shellcode).

Exemplo:

  • kdu -ps 1234
  • kdu -map c:\driverless\mysuperhack.sys
  • kdu -dmp 666
  • kdu -prv 1 -ps 1234
  • kdu -prv 1 -map c:\driverless\mysuperhack.sys
  • kdu -prv 6 -scv 3 -drvn DrvObj -map c:\install\e3600bm.sys
  • kdu -prv 6 -scv 3 -drvn edrv -drvr e3600bl -map c:\install\e3600bl.sys
  • kdu -dse 0
  • kdu -dse 6
  • kdu -pse "C:\Windows\System32\notepad.exe C:\TEMP\words.txt"
  • kdu -psw "C:\Windows\System32\cmd.exe"
  • kdu -pho 1234 -pht -phe 3
  • kdu -listcsv "c:\kdu\out.csv"

Executado no Windows 11 24H2*

Executado no Windows 10 20H2*

Compilado e executado no Windows 8.1*

Executado no Windows 7 SP1 totalmente atualizado (versão pré-compilada)*

Executado no Windows 10 19H2 (versão pré-compilada, SecureBoot habilitado)*

A maioria das capturas de tela é da versão 1.0X.

Limitações do comando -map

Devido à forma incomum de carregamento que não envolve o carregador de kernel padrão, mas usa a sobrescrita de módulos já carregados com shellcode, existem algumas limitações:

  • Os drivers carregados DEVEM SER especialmente projetados para funcionar como "driverless";

Isso significa que você não pode usar parâmetros especificados no seu DriverEntry, pois eles não serão válidos. Isso também significa que você não pode carregar qualquer driver, mas apenas os especialmente projetados, ou você precisa alterar as rotinas do shellcode.

  • Sem suporte a SEH para drivers alvo;

Não há código SEH no x64. Em vez disso, você tem uma tabela de regiões try/except/finally descrita por um ponteiro no cabeçalho PE. Se houver uma exceção, isso pode resultar em um BSOD.

  • Sem descarregamento de driver;

O código mapeado não pode se descarregar; no entanto, você pode liberar todos os recursos alocados pelo seu código mapeado. DRIVER_OBJECT->DriverUnload deve ser definido como NULL.

  • Apenas a importação de ntoskrnl é resolvida, todo o resto depende de você;

Se o seu projeto precisar de outra dependência de módulo, você deve reescrever esta parte do carregador.

  • Várias primitivas do Windows são proibidas pelo PatchGuard de serem usadas por código dinâmico.

Devido à forma incomum de carregamento, o driver mapeado não estará dentro de PsLoadedModulesList. Isso significa que qualquer callback registrado por tal código terá seu handler localizado na memória fora desta lista. O PatchGuard pode detectar isso e travar o sistema.

Em geral, se você quer saber o que você não deve fazer no kernel, veja https://github.com/hfiref0x/KDU/tree/master/Source/Examples/BadRkDemo que contém alguns exemplos de coisas proibidas.

Nota sobre rastros do kernel

Esta ferramenta não altera (e não alterará no futuro) as estruturas internas do Windows MmUnloadedDrivers e/ou PiDDBCacheTable. Isso porque:

  • O KDU não foi projetado para contornar softwares de segurança de terceiros ou vários softwares duvidosos (por exemplo, anti-cheats);
  • Esses dados podem ser alvo de proteção do PatchGuard na próxima grande atualização do Windows 10.

Você usa por sua conta e risco. Alguns AVs preguiçosos podem sinalizar esta ferramenta como hacktool/malware.

Provedores Suportados

Lista completa incluindo todos os metadados disponíveis aqui:

  • https://github.com/hfiref0x/KDU/blob/master/Help/providers.md

Mais provedores podem ser adicionados no futuro.

Como funciona

Ele usa drivers conhecidos como vulneráveis (ou wormhole por design) de softwares legítimos para acessar memória arbitrária do kernel com primitivas de leitura/escrita.

Dependendo do comando, o KDU funcionará como TDL/DSEFix ou modificará objetos de processo do modo kernel (EPROCESS).

No modo -map, o KDU para a maioria dos provedores disponíveis usará por padrão um driver assinado de terceiros do SysInternals Process Explorer e o sequestrará colocando um pequeno shellcode carregador dentro de sua rotina IRP_MJ_DEVICE_CONTROL.

Versões do Shellcode

O KDU usa shellcode para mapear drivers de entrada e executar seu DriverEntry. Existem algumas variantes de shellcode embutidas no KDU. O Shellcode V1, V2 e V3 são usados em conjunto com um driver vítima de terceiros (Process Explorer, etc.).

Compilação e Notas

Baixar ferramenta