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
DLLHijackHunter — Descoberta, Validação e Confirmação Automatizada de DLL Hijacking. Transformando configurações incorretas locais em caminhos de ataque armados e confirmados. | Kitploit
Ferramentas/GitHubGitHub/ghostvectoracademy/dllhijackhunter
Escalada de PrivilégiosScanners de VulnerabilidadesGeração de PayloadsMecanismos de PersistênciaAnálise Dinâmica de Código (DAST)ExploraçãoMovimento LateralTestes de PenetraçãoAnálise de Binários

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
Aprendizado e Educação
Red Teaming
GitHubghostvectoracademy/dllhijackhunter

DLLHijackHunter

Descoberta, Validação e Confirmação Automatizada de DLL Hijacking. Transformando configurações incorretas locais em caminhos de ataque armados e confirmados.

Ver Repositório
39644há 2 mesesRevisado pelo Kitploit

DLLHijackHunter

Por GhostVector Academy

Descoberta, Validação e Confirmação Automatizada de DLL Hijacking
Transformando configurações incorretas locais em caminhos de ataque armados e confirmados.


Visão Geral

DLLHijackHunter é uma ferramenta automatizada de detecção de sequestro de DLL no Windows que vai além da análise estática. Ela descobre, valida e confirma oportunidades de sequestro de DLL usando um pipeline de múltiplas fases:

  1. Descoberta — Enumera binários em serviços, tarefas agendadas, itens de inicialização, objetos COM e vetores de bypass UAC AutoElevate
  2. Filtragem — Elimina falsos positivos por meio de portões inteligentes rígidos e flexíveis
  3. Confirmação com Canary — Implanta uma DLL canary inofensiva e aciona o binário para provar que o sequestro funciona
  4. Pontuação e Relatório — Classifica descobertas por explorabilidade com um sistema de confiança em níveis

A maioria das ferramentas de sequestro de DLL para em 'esta DLL pode ser sequestrável.' O DLLHijackHunter tenta validá-la, fazer referência cruzada com inteligência de exploração conhecida e confirmar caminhos reais de execução onde possível.


Arquitetura

root@kitploit:~
flowchart TB
    subgraph Phase1["Phase 1: Discovery"]
        SE["Static Engine<br/>Services, Tasks, Startup,<br/>COM, Run Keys"]
        AE["AutoElevate Engine<br/>Manifest + COM UAC Bypass"]
        PE["PE Analyzer<br/>Import Tables, Delay Loads,<br/>Manifests, Exports"]
        ETW["ETW Engine<br/>Real-time DLL Load<br/>Monitoring"]
        SO["Search Order<br/>Calculator"]
    end

    subgraph Phase2["Phase 2: Filter Pipeline"]
        direction LR
        HG["Hard Gates<br/>(Binary Kill)"]
        SG["Soft Gates<br/>(Confidence Adj.)"]
    end

    subgraph Phase3["Phase 3: Canary"]
        CB["Canary DLL Builder"]
        TE["Trigger Executor"]
        VF["Verification"]
    end

    subgraph Phase4["Phase 4: Output"]
        SC["Tiered Scorer"]
        RC["Console Report"]
        RJ["JSON Report"]
        RH["HTML Report"]
    end

    SE --> PE --> SO
    AE --> PE
    ETW --> SO
    SO --> Phase2
    HG --> SG
    Phase2 --> Phase3
    CB --> TE --> VF
    Phase3 --> Phase4

Principais Recursos

Cobertura de Tipos de Sequestro

Entradas do depurador IFEO são enumeradas e o binário referenciado é analisado quanto a importações de DLL, mas não há um tipo de sequestro IFEO/desvio KnownDLL dedicado — eles não são anunciados como detecções independentes.

Descoberta de Bypass UAC

DLLHijackHunter inclui descoberta dedicada de bypass UAC:

  • AutoElevate de Manifesto — Escaneia System32 e SysWOW64 por EXEs com <autoElevate>true</autoElevate> em manifestos incorporados
  • Elevação Automática COM — Escaneia HKLM\SOFTWARE\Classes\CLSID por objetos COM com Elevation\Enabled=1
  • Simulação de Side-Load — Para binários AutoElevate que não chamam SetDllDirectory ou SetDefaultDllDirectories, simula o caminho de ataque 'copiar EXE para pasta gravável + soltar DLL'

Base de Conhecimento de Vulnerabilidades Direcionadas

  • Mapeamento de vulnerabilidades direcionadas — Cruza importações descobertas com um instantâneo incluso do conjunto de dados HijackLibs (≈590 entradas de DLL documentadas abrangendo ≈700 executáveis vulneráveis), incorporado como Resources/hijacklibs.json. Uma correspondência aumenta a confiança e vincula a descoberta à sua página de referência do HijackLibs; a ausência de correspondência não significa nada. O conjunto de dados é orientado a dados — atualize-o baixando novamente https://hijacklibs.net/api/hijacklibs.json sobre esse recurso (nenhuma alteração de código necessária). Conjunto de dados © o projeto e colaboradores do HijackLibs.
  • Exploração automatizada de PATH — Avalia pastas graváveis do PATH e gera candidatos a sequestro para um mapa curado de serviços nativos do Windows conhecidos por pesquisar PATH por DLLs ausentes
  • Caça expandida a DLLs fantasma — Pesquisa uma biblioteca de oportunidades de DLL fantasma de alto valor em várias categorias

Pipeline de Filtragem

O pipeline reduz falsos positivos por meio de dois estágios:

Portões Rígidos

  • Filtragem de esquema de conjunto de API (api-ms-*, ext-ms-*)
  • Filtragem KnownDLL
  • Validação de gravabilidade ACL relativa ao atacante — um caminho conta como gravável apenas se um principal não privilegiado (Usuários / Usuários Autenticados / Todos, além de contas de serviço sub-admin à prova de vazamento como LOCAL SERVICE/NETWORK SERVICE) tiver direitos de gravação efetivos. Crucialmente, isso é calculado independentemente do token sob o qual a ferramenta é executada, portanto, 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

  • Penalidade de manifesto WinSxS
  • Análise de delta de privilégio
  • Verificações de mitigação LoadLibraryEx
  • Verificações de validação de assinatura
  • Penalidades de tratamento de erro gracioso

Confirmação com Canary

Em vez de adivinhar, o DLLHijackHunter tenta provar que os sequestros funcionam:

root@kitploit:~
sequenceDiagram
    participant H as DLLHijackHunter
    participant B as Canary DLL Builder
    participant T as Trigger Executor
    participant V as Victim Binary

    H->>B: Build canary DLL
    B->>B: Extract precompiled canary<br/>(or compile a proxy with MSVC)
    B-->>H: canary.dll + confirmation file path
    H->>H: Place DLL at hijack path
    H->>T: Trigger binary execution
    T->>V: Start service / run task / COM activate
    V->>V: Loads canary DLL
    V-->>H: Writes confirmation file<br/>PID, privilege, integrity level
    H->>H: Record: CONFIRMED
    H->>H: Cleanup canary DLL

A DLL canary:

  • É fornecida pré-compilada para x64 e x86, incorporada no scanner, portanto nenhum compilador é necessário no momento da varredura. A arquitetura correta é selecionada para corresponder à bitness da vítima e extraída sob demanda.
  • É autolocalizável: deriva seu caminho de arquivo de confirmação em tempo de execução a partir de seu próprio caminho de módulo carregado (%ProgramData%\DLLHijackHunter\canary_<hash>.confirm), então um binário serve a cada candidato. O scanner calcula o mesmo hash a partir do caminho de implantação e verifica se esse arquivo existe.
  • Usa um mecanismo de confirmação baseado em arquivo
  • Captura metadados de execução como usuário, nível de integridade e indicadores de privilégio
  • Não contém payload malicioso; é estritamente um mecanismo de detecção e validação
  • Vincula estaticamente o CRT, portanto não tem dependência de tempo de execução (ucrtbase/vcruntime) no host da vítima.

Os binários fornecidos são construídos a partir da fonte auditável em src/DLLHijackHunter/Resources/canary_src.c e podem ser regenerados com Resources/build_canary.bat (requer o toolchain MSVC C++; o scanner não).

Exceção de proxy funcional: Quando um sequestro por ordem de busca tem como alvo uma DLL que existe e expõe exportações, manter o host ativo após a confirmação requer um proxy de encaminhamento de exportações, que é compilado por DLL com MSVC (cl.exe, localizado via vswhere/vcvarsall). Se não houver toolchain presente, o canary pré-compilado é usado em vez disso — ele ainda confirma o carregamento (DllMain é acionado) mas não encaminha exportações, então o processo host pode falhar após a confirmação ser registrada. DLLs fantasma e outros candidatos sem exportações não precisam de compilador. Assinatura: Os canaries incorporados não são assinados. Assiná-los com código (para que carreguem sob políticas mais restritivas e sejam atribuíveis) requer um certificado de assinatura e é deixado como uma etapa de lançamento para o mantenedor.

Nota importante sobre o modo de proxy/encaminhamento de exportações

Canaries de proxy/encaminhamento de exportações são experimentais e de melhor esforço. Alguns alvos podem falhar ao carregar corretamente ou podem se comportar inesperadamente dependendo de:

  • exportações apenas ordinais
  • nomes de exportação decorados
  • incompatibilidades de convenção de chamada
  • suposições do carregador/tempo de execução no processo alvo

Isso significa que um canary de proxy com falha nem sempre significa que o caminho de sequestro subjacente é impossível.


Verificação de Ordem de Carga (--verify-load)

Uma verificação opt-in, de usuário padrão, que fica entre o pipeline de filtragem e a fase canary. Para cada candidato aplicável, ele escreve brevemente uma DLL de sonda benigna na posição gravável de sequestro, então pergunta ao carregador real do Windows — em um processo filho de curta duração — para resolver a DLL pelo nome. Onde o carregador resolve determina o veredito:

  • Vitória verificada — o carregador escolhe a posição gravável. A alegação de ordem de busca é provada (essa corroboração permite que a descoberta alcance o nível Alto; a execução do canary continua sendo o único caminho para Confirmado).
  • Perde para protegido — o carregador escolhe um KnownDLL, a cópia do System32, ou uma cópia redirecionada por SxS. A posição quase certamente não é sequestrável, então o candidato é fortemente rebaixado. Isso captura os clássicos falsos positivos que um calculador estático de ordem de busca perde (ex: uma "descoberta" de .local/ordem de busca para ntdll.dll que KnownDLLs torna inexplotável).

Notas de design e segurança:

  • Executa em um processo filho para que um nome já carregado no scanner não possa contornar o resultado, e para que qualquer efeito colateral de carga ou falha seja isolado. Nenhuma elevação necessária.
  • Cada sonda é colocada, resolvida e depois removida; qualquer arquivo pré-existente é copiado e restaurado.
  • Ele modela a ordenação moderna LOAD_LIBRARY_SEARCH, portanto é aplicado apenas a candidatos Fantasma / Ordem de Busca / Side-Load. Candidatos .local, PATH e AppInit/AppCert usam mecânicas diferentes e são relatados como Pulados.
  • Ele escreve arquivos transitoriamente em posições candidatas (impacto médio); deixe desligado para triagem totalmente passiva, somente leitura.
root@kitploit:~
# Standard-user triage with loader-verified search order (no canary, no ETW)
.\DLLHijackHunter.exe --lpe-only --no-canary --no-etw --verify-load

Comparação

¹ Canaries pré-compilados de dupla arquitetura são incorporados — **nenhum compilador necessário** para confirmar um carregamento. Apenas o *proxy* opcional de encaminhamento de exportações (para manter um host consumidor de exportações ativo) precisa de MSVC.
² Via gravabilidade ACL relativa ao atacante (veja Pipeline de Filtragem). Reduz — não elimina — falsos positivos; heurísticas de portão flexível (manifesto/SxS/LoadLibraryEx) ainda carregam incerteza. Descobertas estáticas não verificadas agora são limitadas abaixo do nível **Alto**.
³ Derivado do status de inicialização automática, não um teste de reinicialização verificado.
⁴ Proxy de encaminhamento de exportações é experimental/melhor esforço (veja nota acima).
⁵ Apenas acionamentos de Serviço/Tarefa/COM; descobertas de bypass UAC não são acionadas por canary.
⁶ Apoiado por um instantâneo incluso do conjunto de dados HijackLibs (~590 entradas); atualizável de hijacklibs.net.

Uso

Pré-requisitos

  • Windows 10/11 ou Windows Server 2016+
  • .NET 8.0 Runtime (ou use uma compilação autossuficiente)
  • Privilégios de administrador recomendados (necessários para ETW, implantação de canary e alguns acionamentos de serviços)

Compilação

root@kitploit:~
git clone https://github.com/ghostvectoracademy/DLLHijackHunter.git
cd DLLHijackHunter

# Build (self-contained single file)
dotnet publish src/DLLHijackHunter/DLLHijackHunter.csproj `
    -c Release -r win-x64 --self-contained `
    -p:PublishSingleFile=true -o ./publish

# Or use the build script
.\build.ps1

Início Rápido

root@kitploit:~
# Full aggressive scan (recommended, requires admin)
.\DLLHijackHunter.exe --profile aggressive

# Safe scan (no file drops, no triggers)
.\DLLHijackHunter.exe --profile safe

# UAC bypass focused scan
.\DLLHijackHunter.exe --profile uac-bypass

# Target a specific binary
.\DLLHijackHunter.exe --target "C:\Program Files\MyApp\app.exe"

# Target by filename (partial match)
.\DLLHijackHunter.exe --target notepad.exe

# Confirmed findings only
.\DLLHijackHunter.exe --profile redteam --format json -o report.json

Opções de CLI

root@kitploit:~
DLLHijackHunter — Detecção Automatizada de DLL Hijacking

Options:
  -p, --profile <profile>        Perfil de varredura [padrão: aggressive]
                                   aggressive | strict | safe | redteam | uac-bypass
  -o, --output <path>            Caminho do arquivo de saída (detecta formato automaticamente)
  -f, --format <format>          Formato de saída [padrão: console]
                                   console | json | html
  -t, --target <target>          Alvo específico binário, diretório ou nome de arquivo
      --min-confidence <value>   Limite mínimo de confiança 0-100. Quando omitido, o limite
                                   próprio de cada perfil se aplica; passar isso o substitui.
      --no-canary                Desabilitar confirmação com canary
      --no-etw                   Desabilitar descoberta em tempo de execução ETW
      --verify-load              Verificar ordem de busca com o carregador real (veja abaixo).
                                   Usuário padrão; escreve transitoriamente uma sonda benigna.
      --confirmed-only           Mostrar apenas descobertas confirmadas por canary
      --lpe-only                 Caça LPE estrita: ignorar System32/Program Files, mostrar
                                   apenas vulnerabilidades graváveis por usuário padrão
      --log-file <path>          Escrever um log de varredura de diagnóstico em arquivo
  -v, --verbose                  Saída detalhada

Nota: --min-confidence é tratado apenas como uma substituição quando você o passa explicitamente. Caso contrário, o limite do perfil selecionado é usado (ex: safe = 50%, strict = 80%).

Perfis de Varredura


Pontuação

Cada descoberta recebe sinais de confiança e impacto que são combinados em um nível final de priorização.

Considerações típicas de impacto incluem:

  • privilégio obtido
  • confiabilidade do acionamento
  • furtividade
  • persistência após reinicialização

Execução confirmada de canary deve ser tratada como o sinal de validação mais forte.

Controle de nível: os níveis Alto e Confirmado são reservados para descobertas apoiadas por um sinal de prova — um canary disparado, uma observação de carga em tempo de execução ETW ou uma correspondência documentada na base de conhecimento. Uma correspondência puramente estática de ordem de busca, por mais limpa que seja, é limitada ao topo do nível Médio e anotada como Apenas estático para que heurísticas não verificadas nunca se apresentem como alta confiança.

Configuração de triagem recomendada

Como a gravabilidade é avaliada relativa ao atacante, execuções elevadas e de usuário padrão são significativas:

  • Para triagem LPE, a configuração mais confiável é uma execução de usuário padrão com --lpe-only (e --no-canary se um compilador não estiver disponível) — toda descoberta sobrevivente é genuinamente gravável por um principal não privilegiado.
  • Execuções elevadas são necessárias para ETW e confirmação com canary, e agora estão seguras da inversão histórica 'tudo no System32 parece gravável'.

Segurança

DLLHijackHunter foi projetado para pesquisa defensiva de segurança, validação em laboratório, auditoria e simulação de red team em ambientes autorizados.

Use-o apenas em sistemas e redes que você possui ou está explicitamente autorizado a avaliar.

Notas operacionais

  • O modo canary escreve DLLs de teste em locais candidatos
  • Alguns acionamentos podem iniciar ou parar brevemente serviços/tarefas durante a validação
  • Canaries de proxy/encaminhamento de exportações podem desestabilizar alvos frágeis
  • O perfil safe é o modo preferido para triagem em produção quando a criação de arquivos e acionamentos não são aceitáveis

Saída

DLLHijackHunter suporta:

  • relatório em console
  • exportação JSON
  • exportação HTML

Fluxo de trabalho recomendado:

  1. execute uma varredura ampla
  2. revise descobertas de alta confiança
  3. use confirmação com canary seletivamente em caminhos de alto valor
  4. preserve a saída JSON/HTML para relatórios e triagem

Licença

MIT


Créditos

Construído por GhostVector Academy.

Baixar ferramenta
TipoDescriçãoFurtividadeStatus
FantasmaDLL não existe em nenhum lugar no discoAltaImplementado
Ordem de BuscaColocar DLL antes na ordem de busca do WindowsAltaImplementado
Side-LoadingAbusar de aplicativos legítimos carregando DLLs de seu diretórioAltaImplementado (caminho de cópia para temp do AutoElevate)
Redirecionamento .localSequestro via redirecionamento de diretório .localAltaImplementado
ENV PATHWeaponização de diretórios graváveis no PATH do sistemaAltaImplementado (mapa curado de serviço/DLL)
AppInit DLLsAbuso de registro AppInit_DLLsBaixaImplementado
AppCert DLLsAbuso de registro AppCertDLLs (carrega em todo chamador CreateProcess/WinExec)BaixaImplementado
CWDSequestro do Diretório de Trabalho AtualBaixaPlanejado — atualmente não produzido por nenhum caminho de descoberta
RecursoDLLHijackHunterRobberDLLSpyWinPEASProcmon
Descoberta automatizada✅✅✅✅❌
Detecção de DLL fantasma✅❌✅❌✅
Análise de ordem de busca✅❌❌❌❌
Verificação de gravabilidade baseada em ACL✅Parcial❌Básico❌
Monitoramento em tempo real ETW✅❌❌❌✅
Confirmação com canary✅¹❌❌❌❌
Verificação de escalada de privilégio✅❌❌❌❌
Descoberta de bypass UAC✅❌❌❌❌
Redução de falsos positivos✅²NenhumBásicoNenhumNenhum
Verificação de persistência após reinicialização✅³❌❌❌❌
Geração de DLL proxy✅⁴❌❌❌❌
Pontuação de confiança✅❌❌❌❌
Acionamento automático (svc/task/COM)✅⁵❌❌❌❌
Relatórios HTML/JSON✅❌❌❌TXT
Correlação de inteligência de ameaças✅⁶❌❌❌❌
Exploração automatizada de PATH✅❌❌❌❌
Varredura específica de alvo✅❌❌❌✅
Binário autossuficiente✅❌❌✅❌
PerfilCaso de UsoCanaryETWBypass UACConfiança MínimaAcionamentos
aggressiveAuditoria completa, ambientes de laboratório✅✅✅15%Serviços, Tarefas, COM
strictApenas descobertas de alta confiança✅✅❌80%Serviços, Tarefas
safeSistemas de produção, somente leitura❌❌❌50%Nenhum
redteamApenas explorável confirmado✅✅❌50%Serviços, Tarefas, COM
uac-bypassApenas vetores de bypass UAC❌❌✅20%Apenas AutoElevate