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
ImpulsiveDLLHijack — Ferramenta baseada em C# que automatiza o processo de descoberta e exploração de sequestros de DLL em binários alvo. Os caminhos sequestrados descobertos podem posteriormente ser utilizados como armas durante Operações de Red Team para evadir EDRs. | Kitploit
Ferramentas/GitHubGitHub/knight0x07/impulsivedllhijack
Escalada de PrivilégiosMecanismos de PersistênciaExploraçãoRed TeamingExploração de Binários
GitHubknight0x07/impulsivedllhijack

ImpulsiveDLLHijack

Ferramenta baseada em C# que automatiza o processo de descoberta e exploração de sequestros de DLL em binários alvo. Os caminhos sequestrados descobertos podem posteriormente ser utilizados como armas durante Operações de Red Team para evadir EDRs.

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
Ver Repositório
554101há 4 anosRevisado pelo Kitploit

ImpulsiveDLLHijack

Ferramenta baseada em C# que automatiza o processo de descoberta e exploração de DLL Hijacks em binários alvo. Os caminhos de Hijack descobertos podem posteriormente ser armazenados durante operações de RedTeam para evadir EDRs.

1. Abordagem Metodológica :

A ferramenta basicamente atua automatizando as seguintes etapas realizadas para DLL Hijacking:

  • Descoberta - Encontrar caminhos de DLL Hijack potencialmente vulneráveis
  • Exploração - Confirmar se a DLL confirmatória foi carregada a partir do caminho Hijacked, levando a uma confirmação de 100% de DLL Hijack explorável!

Metodologia de Descoberta :

  • Fornecer o caminho do binário alvo para ImpulsiveDLLHijack.exe
  • Automação do ProcMon juntamente com a execução do binário alvo para encontrar caminhos de DLL Hijack potencialmente vulneráveis.

Metodologia de Exploração :

  • Analisar caminhos de DLL Hijack potencialmente vulneráveis a partir do CSV gerado automaticamente pelo ProcMon.

  • Copiar a DLL confirmatória (de acordo com a arquitetura do PE) para os caminhos de hijack um por um e executar o binário alvo por um período de tempo predefinido simultaneamente.

  • À medida que o processo de DLL hijacking está em andamento, as seguintes saídas podem ser obtidas do cenário de Hijack:

    • Se a DLL confirmatória presente no caminho Hijackable potencialmente vulnerável for carregada pelo binário alvo, obtemos a seguinte saída no console informando que o DLL Hijack foi bem-sucedido - DLL Hijack Successful -> DLLName: | <Target_binary_name>
    • Se a DLL confirmatória presente no caminho Hijackable potencialmente vulnerável não for carregada pelo binário alvo, obtemos a seguinte saída no console informando que o DLL Hijack não foi bem-sucedido - DLL Hijack Unsuccessful -> <DLL_Path>

    Cenários de Ponto de Entrada Não Encontrado:

    • Se a DLL confirmatória presente no caminho Hijackable potencialmente vulnerável não for carregada pelo binário alvo porque o ponto de entrada da DLL é diferente do nosso ponto de entrada padrão "DllMain", gerando um erro - "Entry Point Not Found", obtemos a seguinte saída no console informando que o DLL Hijack seria hijackable se o ponto de entrada estivesse correto -> DLL Hijack Successful -> [Entry Point Not Found - Manual Analysis Required!]: <Hijack_path>
    • Se a DLL confirmatória presente no caminho Hijackable potencialmente vulnerável for executada pelo binário alvo mesmo após o ponto de entrada da DLL ser diferente do nosso ponto de entrada padrão "DllMain", gerando um erro "Entry Point Not Found", obtemos a seguinte saída no console informando que o DLL Hijack foi bem-sucedido mesmo após o ponto de entrada não estar correto -> DLL Hijack Successful -> [Entry Point Not Found]: <Hijack_path>

Nota: O erro "Entry Point not found" é tratado pelo código programaticamente, não é necessário fechar a MsgBox manualmente :) # Caso contrário, isso travaria o código****

  • Assim que o processo de DLL Hijacking for concluído para cada caminho de DLL Hijack potencialmente vulnerável, obtemos a saída final no console e em um arquivo de texto (C:\DLLLogs\output_logs.txt) no seguinte formato:

    • <DLLHijack_path> --> DLL Hijack Successful (se o Hijack foi bem-sucedido)
    • <DLLHijack_path> --> DLL Hijack Unsuccessful (se o Hijack não foi bem-sucedido)
    • <DLLHijack_path> --> DLL Hijack Successful [Entry Point Not Found - Manual Analysis Required] (se o ponto de entrada não foi encontrado, mas pode ser bem-sucedido após análise manual)
    • <DLLHijack_path> --> DLL Hijack Successful [Entry Point Not Found] (se o hijack foi bem-sucedido mesmo após o ponto de entrada não ser encontrado)
    • <DLLHijack_path> --> Copy: Access to Path is Denied (Acesso negado)

**Esses caminhos de DLL Hijack confirmados podem posteriormente ser armazenados durante um Engajamento de RedTeam para carregar um Implante de DLL Maliciosa por meio de um executável legítimo (como OneDrive, Firefox, MSEdge, "Traga seus próprios LOLBINs" etc.) e contornar EDRs de última geração, já que a maioria deles falha em detectar DLL Hijacking, conforme avaliado por George Karantzas e Constantinos Patsakis em seu artigo de pesquisa: https://arxiv.org/abs/2108.10422

2. Pré-requisitos:

  • Procmon.exe -> https://docs.microsoft.com/en-us/sysinternals/downloads/procmon
  • DLLs Confirmatórias Personalizadas :
    • São arquivos DLL que auxiliam a ferramenta a obter a confirmação se as DLLs foram carregadas com sucesso a partir do caminho de hijack identificado
    • Compiladas a partir do projeto MalDLL fornecido acima (ou use os binários pré-compilados se confiar em mim!)
    • O nome da DLL 32Bits deve ser: maldll32.dll
    • O nome da DLL 64Bits deve ser: maldll64.dll
    • Instalar o Pacote NuGet: PeNet -> https://www.nuget.org/packages/PeNet/ (Pré-requisito ao compilar o projeto ImpulsiveDLLHijack)

Nota: Os pré-requisitos i e ii devem ser colocados no próprio diretório do ImpulsiveDLLHijacks.exe.

  • Informações de Build e Configuração:

    • ImpulsiveDLLHijack

      • Clonar o repositório no Visual Studio
      • Depois que o projeto for carregado no Visual Studio, vá em "Project" --> "Manage NuGet packages" --> Procure por pacotes e instale "PeNet" -> https://www.nuget.org/packages/PeNet/
      • Compilar o projeto!
      • O ImpulsiveDLLHijack.exe estará dentro do diretório bin.
    • E para as DLLs Confirmatórias:

      • Clonar o repositório no Visual Studio
      • Compilar o projeto com x86 e x64
      • Renomear o release x86 como maldll32.dll e o release x64 como maldll64.dll
    • Configuração: Copie as DLLs Confirmatórias (maldll32 & maldll64) no diretório do ImpulsiveDLLHijack.exe e então execute ImpulsiveDLLHijack.exe :))

3. Uso:

uso

4. Exemplos:

  • Executável Alvo: OneDrive.exe

  • Etapa: Descoberta

primeiro

  • Etapa: Exploração

    • DLL Hijacks Bem-sucedidos:

    sucesso_um

    • DLL Hijacks Mal-sucedidos:

    malsucedido

    • A DLL não é carregada porque o ponto de entrada não é idêntico! Análise manual pode tornar isso um DLL Hijack bem-sucedido :)

    ponto_entrada_nao_encontrado

    • DLL Hijack bem-sucedido mesmo após ponto de entrada não idêntico!

    ponto_entrada_nao_encontrado_mas_dll_executada

  • Etapa: Resultados Finais e Logs

    • C:\DLLLogs\output_logs.txt:

    logs_saida

Obrigado, feedback seria muito apreciado! - knight!

Baixar ferramenta