
Descoberta, Validação e Confirmação Automatizada de DLL Hijacking. Transformando configurações incorretas locais em caminhos de ataque armados e confirmados.
Descoberta, Validação e Confirmação Automatizada de DLL Hijacking
Transformando configurações incorretas locais em caminhos de ataque confirmados e armados.
O DLLHijackHunter é uma ferramenta automatizada de detecção de DLL hijacking para Windows que vai além da análise estática. Ele descobre, valida e confirma oportunidades de DLL hijacking usando um pipeline de múltiplas fases:
A maioria das ferramentas de DLL hijacking para em "este DLL pode ser sequestrável". O DLLHijackHunter tenta validá-lo, cruzá-lo com inteligência de exploração conhecida e confirmar caminhos de execução reais quando possível.
flowchart TB
subgraph Phase1["Fase 1: Descoberta"]
SE["Mecanismo Estático<br/>Serviços, Tarefas, Inicialização,<br/>COM, Chaves Run"]
AE["Mecanismo AutoElevate<br/>Manifesto + Bypass UAC COM"]
PE["Analisador PE<br/>Tabelas de Importação, Cargas Atrasadas,<br/>Manifestos, Exportações"]
ETW["Mecanismo ETW<br/>Monitoramento de Carga de DLL<br/>em Tempo Real"]
SO["Calculadora de<br/>Ordem de Busca"]
end
subgraph Phase2["Fase 2: Pipeline de Filtragem"]
direction LR
HG["Portões Rígidos<br/>(Eliminação Binária)"]
SG["Portões Flexíveis<br/>(Ajuste de Confiança)"]
end
subgraph Phase3["Fase 3: Verificação de Carga (--verify-load)"]
LP["LoadProbe<br/>Teste de carregador em processo filho<br/>DLL de sonda colocada e removida"]
end
subgraph Phase4["Fase 4: Canary"]
CB["Construtor de DLL Canary"]
TE["Executor de Gatilho"]
VF["Verificação"]
end
subgraph Phase5["Fase 5: Saída"]
SC["Pontuador em Níveis"]
RC["Relatório de Console"]
RJ["Relatório JSON"]
RH["Relatório HTML"]
end
SE --> PE --> SO
AE --> PE
ETW --> SO
SO --> Phase2
HG --> SG
Phase2 --> Phase3
Phase3 --> Phase4
CB --> TE --> VF
Phase4 --> Phase5
| Tipo | Descrição | Furtividade | Status |
|---|---|---|---|
| Fantasma | DLL não existe em nenhum lugar do disco | Alta | Implementado |
| Ordem de Busca | Colocar o DLL antes na ordem de busca do Windows | Alta | Implementado |
| Side-Loading | Abusar de aplicativos legítimos que carregam DLLs do próprio diretório | Alta | Implementado (caminho AutoElevate copiar-para-temp) |
| Redirecionamento .local | Hijack via redirecionamento de diretório .local | Alta | Implementado |
| ENV PATH | Armação de diretórios graváveis no PATH do sistema | Alta | Implementado (mapa curado de serviço/DLL) |
| DLLs AppInit | Abuso do registro AppInit_DLLs | Baixa | Implementado |
| DLLs AppCert | Abuso do registro AppCertDLLs (carrega em todo chamador de CreateProcess/WinExec) | Baixa | Implementado |
| CWD | Hijack do Diretório de Trabalho Atual | Baixa | Planejado — atualmente não produzido por nenhum caminho de descoberta |
Entradas IFEO Debugger são enumeradas e o binário referenciado é analisado quanto a importações de DLL, mas não há um tipo de hijack IFEO/bypass de KnownDLL dedicado — esses não são anunciados como detecções independentes.
O DLLHijackHunter inclui descoberta dedicada de bypass de UAC:
System32 e SysWOW64 em busca de EXEs com <autoElevate>true</autoElevate> em manifestos incorporadosHKLM\SOFTWARE\Classes\CLSID em busca de objetos COM com Elevation\Enabled=1SetDllDirectory ou SetDefaultDllDirectories, simula o caminho de ataque "copiar EXE para pasta gravável + soltar DLL"Resources/hijacklibs.json. Uma correspondência aumenta a confiança e vincula o achado à página de referência do HijackLibs; a ausência de correspondência não significa nada. O conjunto de dados é orientado por dados — atualize-o baixando novamente https://hijacklibs.net/api/hijacklibs.json sobre esse recurso (sem necessidade de alterações de código). Conjunto de dados © o projeto HijackLibs e colaboradores.PATH e gera candidatos a hijack para um mapa curado de serviços nativos do Windows conhecidos por buscar DLLs ausentes no PATHO pipeline reduz falsos positivos por meio de dois estágios:
Portões Rígidos
api-ms-*, ext-ms-*)Users / Authenticated Users / Everyone, além de contas de serviço subadministrador à prova de vazamento como LOCAL SERVICE/NETWORK SERVICE) tiver direitos de escrita efetivos. Crucialmente, isso é calculado independentemente do token sob o qual a ferramenta é executada, então executar elevado não faz System32/Program Files parecerem graváveis. É isso que torna execuções elevadas significativas para triagem de LPE.Portões Flexíveis
LoadLibraryExEm vez de adivinhar, o DLLHijackHunter tenta provar que os hijacks funcionam:
sequenceDiagram
participant H as DLLHijackHunter
participant B as Construtor de DLL Canary
participant T as Executor de Gatilho
participant V as Binário Vítima