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
mora-hwbp — Motor de instrumentação de telemetria e hooking em modo de usuário sem patch, baseado em Hardware Breakpoint (DR0-DR7) (PoC de AMSI, WLDP e ETW). | Kitploit
Ferramentas/GitHubGitHub/dovughs/mora-hwbp
Ferramentas DefensivasEvasão de IDS/IPSDepuradoresAprendizado e EducaçãoRed TeamingAtaque Adversário
GitHubdovughs/mora-hwbp

mora-hwbp

Motor de instrumentação de telemetria e hooking em modo de usuário sem patch, baseado em Hardware Breakpoint (DR0-DR7) (PoC de AMSI, WLDP e ETW).

Ver Repositório
191100há 1 diaAinda não revisado

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

Mora-HWBP — Hooking de Telemetria AMSI / WLDP / ETW via Hardware Breakpoints

Uma Prova de Conceito (POC) de pesquisa de segurança que demonstra o hooking de funções baseado em hardware breakpoints (registradores de depuração da CPU) como alternativa ao tradicional patching de código em memória.

Propósito e Escopo

Este repositório é publicado estritamente para pesquisa de segurança defensiva, educação red-team/purple-team, engenharia de detecção e estudo acadêmico de internals do Windows. Ele demonstra como um atacante poderia abusar dos registradores de depuração do processador para neutralizar a telemetria de segurança em modo usuário — e, igualmente importante, o que os defensores devem monitorar para detectar tais técnicas. O autor não é responsável por qualquer uso indevido deste código. O uso desta técnica contra sistemas sem autorização explícita é ilegal e viola as leis relevantes de fraude e abuso computacional na maioria das jurisdições. Não implante isto em nenhum ambiente que você não possua ou para o qual não tenha permissão escrita explícita de teste.


Índice

  1. Visão Geral
  2. Contexto — Por que Hardware Breakpoints?
  3. Componentes de Segurança Alvo
  4. Arquitetura
  5. Análise Técnica Aprofundada
    • 5.1 Hardware Breakpoints em x64
    • 5.2 Layout dos Registradores de Depuração (DR0–DR7)
    • 5.3 O Vectored Exception Handler (VEH)
    • 5.4 Lógica de Interceptação por Componente
    • 5.5 Gerenciamento de Threads e Persistência do Hook
  6. API Exportada
  7. Instruções de Compilação
  8. Exemplo de Injeção e Uso
  9. Detecção e Mitigação (Blue Team)
  10. Limitações Conhecidas
  11. Referências

Visão Geral

mora_hwbp.c implementa uma DLL que, uma vez carregada/injetada em um processo alvo (por exemplo, um host PowerShell), faz hook de quatro funções em modo usuário exclusivamente através de hardware breakpoints da CPU armazenados nos registradores de depuração arquiteturais (DR0–DR7) de cada thread no processo:

RegistradorFunção com HookMóduloPropósito
DR0AmsiScanBufferamsi.dllNeutralizar a verificação de conteúdo do AMSI
DR1WldpQueryDynamicCodeTrustwldp.dllForçar a confiança em código dinâmico do WLDP (Device Guard / WDAC)
DR2WldpIsClassInApprovedListwldp.dllForçar a aprovação de classe do WLDP (Device Guard / WDAC)
DR3NtTraceEventntdll.dllCortar todo o fluxo ETW em modo usuário

Um Vectored Exception Handler (VEH) por processo recebe as falhas EXCEPTION_SINGLE_STEP (0x80000004) levantadas pelos registradores de depuração, simula o caminho de retorno bem-sucedido da função original reescrevendo o contexto da exceção e retoma a execução — tudo sem modificar um único byte de memória executável.

Isso torna a técnica particularmente interessante tanto de perspectivas ofensivas quanto defensivas:

  • Ofensivamente, ela contorna verificações de integridade de EDR/HIPS que procuram seções .text modificadas (hooking inline clássico, patching de EAT/IAT ou stubbing de Etwp*).
  • Defensivamente, hardware breakpoints deixam artefatos forenses altamente distintivos (conteúdo dos registradores de depuração, densidade de exceções de single-step, registro de VEH, padrões de syscall GetThreadContext/SetThreadContext) que podem ser usados para detecção.

Contexto — Por que Hardware Breakpoints?

As abordagens tradicionais de hooking em modo usuário — detours inline (sobrescritas de 5–14 bytes), hooking da import address table (IAT) e hooking da export address table (EAT) — compartilham uma fraqueza comum: elas modificam memória que scanners de integridade e o ETW podem observar.

Produtos AV/EDR modernos implementam:

  • Varredura de memória / varreduras AMSI de buffers do PowerShell e do .NET CLR;
  • Telemetria baseada em ETW (Microsoft-Windows-PowerShell, .NET ETW, provedores de threat intelligence);
  • Callbacks de kernel e verificações de integridade em modo usuário que detectam truques de pageguard/guard-page, transições de VirtualProtect para PAGE_EXECUTE_READWRITE e incompatibilidades de hash de seção.

Breakpoints de hardware contornam tudo isso:

  1. Eles são registradores da CPU, não memória — não há nada para escanear em .text.
  2. Eles são definidos em uma base por thread através da API do Windows SetThreadContext, que não dispara os sinais clássicos de "memória modificada" usados por scanners de integridade.
  3. O ponto de interceptação é tratado inteiramente pelo despacho de exceções do processador, que é roteado pela cadeia VEH do processo antes que qualquer função alvo em modo usuário seja executada.

Este POC explora a eficácia e a detectabilidade desta técnica contra AMSI (Antimalware Scan Interface), WLDP (Windows Lockdown Policy) e ETW (Event Tracing for Windows) — as três primitivas de segurança em modo usuário mais amplamente utilizadas na pilha de segurança moderna do Windows.


Componentes de Segurança Alvo

AMSI — Antimalware Scan Interface

AMSI é o ponto de integração da plataforma Windows que permite que aplicações (PowerShell, Office, VBScript, hosts .NET, etc.) solicitem a varredura de conteúdo a provedores antimalware registrados. O principal ponto de entrada de interesse é:

  • AmsiScanBuffer(HANDLE hamsiContext, PVOID buffer, ULONG length, LPCWSTR contentName, HANDLE hamsiSession, AMSI_RESULT *pResult)

Ao forçar o AMSI_RESULT retornado para AMSI_RESULT_CLEAN (0), o mecanismo de script acredita que o conteúdo foi inspecionado e considerado benigno, então a execução continua sem interrupção.

WLDP — Windows Lockdown Policy

WLDP implementa a avaliação de políticas para o Windows Defender Application Control (WDAC / Device Guard). Este POC intercepta dois pontos de entrada do WLDP:

  • WldpIsClassInApprovedList responde se uma determinada classe COM (identificada por GUID) é permitida sob a política atual. O AMSI consulta internamente o WLDP para decidir se certas classes de script/conteúdo são "confiáveis" (estão na lista aprovada). Se a função relatar a classe como aprovada, o AMSI pode pular escrutínio adicional para aquele tipo de conteúdo.
  • WldpQueryDynamicCodeTrust responde se um determinado trecho de código gerado dinamicamente (por exemplo, saída do JIT do .NET ou memória executável gerada de outra forma) é confiável sob a política de lockdown atual.

A DLL define o parâmetro de saída isApproved (RDX) de WldpIsClassInApprovedList como TRUE e retorna S_OK, e força WldpQueryDynamicCodeTrust a retornar S_OK (0) — fazendo com que tanto a classe de conteúdo avaliada quanto o código dinâmico consultado pareçam confiáveis.

ETW — Event Tracing for Windows

NtTraceEvent em ntdll.dll é o ponto de entrada em modo usuário de mais baixo nível no subsistema ETW — virtualmente toda a emissão de eventos ETW passa por ele (incluindo EtwEventWrite e as APIs Etw* de nível superior). Interceptá-lo, portanto, corta todo o fluxo ETW do modo usuário, com amplos efeitos colaterais relevantes para o monitoramento de segurança:

Baixar ferramenta