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
DLLHSC — Scanner automatizado para descobrir candidatos a sequestro de ordem de busca de DLL em executáveis do Windows, com análise de tabela de importação, enumeração de módulos em tempo de execução e hooking de API via Microsoft Detours. | Kitploit
Ferramentas/GitHubGitHub/ctxis/dllhsc
ExploraçãoTestes de PenetraçãoAnálise de BináriosDesenvolvimento de Payloads
GitHubctxis/dllhsc

DLLHSC

Scanner automatizado para descobrir candidatos a sequestro de ordem de busca de DLL em executáveis do Windows, com análise de tabela de importação, enumeração de módulos em tempo de execução e hooking de API via Microsoft Detours.

Ver Repositório
15836há 6 anosRevisado 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 →
Compartilhar

DLLHSC

DLL Hijack SCanner - Uma ferramenta para gerar leads e automatizar a descoberta de candidatos para DLL Search Order Hijacking

Índice desta página

  • Conteúdo deste repositório
  • Modos de operação
  • Orientações para compilar e executar
  • Menu de ajuda
  • Exemplos de execução
  • Feedback

Conteúdo deste repositório

Este repositório hospeda o arquivo de projeto do Visual Studio para a ferramenta (DLLHSC), o arquivo de projeto para a funcionalidade de hooking de API (detour), o arquivo de projeto para o payload e, por último, mas não menos importante, os executáveis compilados para as arquiteturas x86 e x64 (na seção de releases deste repositório). O código foi escrito e compilado com Visual Studio Community 2019.

Se optar por compilar a ferramenta a partir do código fonte, precisará compilar os projetos DLLHSC, detour e payload. O DLLHSC implementa a funcionalidade principal desta ferramenta. O projeto detour gera uma DLL usada para fazer hook de APIs. E o projeto payload gera a DLL que é usada como prova de conceito para verificar se o executável testado pode carregá-la via hijacking da ordem de pesquisa. O payload gerado deve ser colocado no mesmo diretório do DLLHSC e detour, nomeado payload32.dll para arquitetura x86 e payload64.dll para arquitetura x64.

Modos de operação

A ferramenta implementa 3 modos de operação, explicados abaixo.

Modo Leve

Carrega a imagem do executável na memória, analisa a tabela de importação e então substitui qualquer DLL referida na tabela de importação por uma DLL de payload.

A ferramenta coloca no diretório da aplicação apenas um módulo (DLL) que não está presente no diretório da aplicação, não pertence ao WinSxS e não pertence às KnownDLLs.

A DLL de payload, ao ser executada, cria um arquivo no seguinte caminho: C:\Users\%USERNAME%\AppData\Local\Temp\DLLHSC.tmp como prova de execução. A ferramenta lança a aplicação e relata se a DLL de payload foi executada, verificando se o arquivo temporário existe. Como alguns executáveis importam funções das DLLs que carregam, podem surgir caixas de mensagem de erro quando a DLL fornecida não exporta essas funções e, assim, não atende às dependências da imagem fornecida. No entanto, as caixas de mensagem indicam que a DLL pode ser um bom candidato para execução do payload se as dependências forem atendidas. Nesse caso, é necessária uma análise adicional. O título dessas caixas de mensagem pode conter as strings: Ordinal Not Found ou Entry Point Not Found. O DLLHSC procura por janelas que contenham essas strings, fecha-as assim que aparecem e relata os resultados.

Modo Listar Módulos

Cria um processo com a imagem do executável fornecido, enumera os módulos que são carregados no espaço de endereçamento deste processo e relata os resultados após aplicar filtros.

A ferramenta apenas relata os módulos carregados do diretório System que não pertencem às KnownDLLs. Os resultados são leads que requerem análise adicional. O analista pode então colocar os módulos reportados no diretório da aplicação e verificar se a aplicação carrega o módulo fornecido em vez do original.

Modo em Tempo de Execução

Faz hook das APIs LoadLibrary e LoadLibraryEx via Microsoft Detours e relata os módulos que são carregados em tempo de execução.

Cada vez que a aplicação escaneada chama LoadLibrary e LoadLibraryEx, a ferramenta intercepta a chamada e escreve o módulo solicitado no arquivo C:\Users\%USERNAME%\AppData\Local\Temp\DLLHSCRTLOG.tmp. Se o LoadLibraryEx for chamado especificamente com a flag LOAD_LIBRARY_SEARCH_SYSTEM32, nenhuma saída é escrita no arquivo. Após todas as intercepções terem terminado, a ferramenta lê o arquivo e imprime os resultados. De interesse para análise adicional são módulos que não existem na chave de registro KnownDLLs, módulos que não existem no diretório System e módulos sem caminho completo (para estes módulos, o carregador aplica a ordem de pesquisa normal).

Orientações para compilar e executar

Se optar por compilar a ferramenta a partir do código fonte, é recomendado fazê-lo no Visual Studio 2019. Para que a ferramenta funcione corretamente, os projetos DLLHSC, detour e payload devem ser compilados para a mesma arquitetura e depois colocados no mesmo diretório. Note que a DLL gerada pelo projeto payload deve ser renomeada para payload32.dll para arquitetura de 32 bits ou payload64.dll para arquitetura de 64 bits.

Menu de ajuda

O menu de ajuda para esta aplicação

root@kitploit:~
NAME
        dllhsc - DLL Hijack SCanner

SYNOPSIS
        dllhsc.exe -h

        dllhsc.exe -e <executable image path> (-l|-lm|-rt) [-t seconds]

DESCRIPTION
        DLLHSC scans a given executable image for DLL Hijacking and reports the results

        It requires elevated privileges

OPTIONS
        -h, --help
                display this help menu and exit

        -e, --executable-image
                executable image to scan

        -l, --lightweight
                parse the import table, attempt to launch a payload and report the results

        -lm, --list-modules
                list loaded modules that do not exist in the application's directory

        -rt, --runtime-load
                display modules loaded in run-time by hooking LoadLibrary and LoadLibraryEx APIs

        -t, --timeout
                number of seconds to wait for checking any popup error windows - defaults to 10 seconds

Exemplos de execução

Esta secção fornece exemplos de como pode executar o DLLHSC e os resultados que ele reporta. Para este propósito, foi utilizada a ferramenta legítima da Microsoft OleView.exe (MD5: D1E6767900C85535F300E08D76AAC9AB). Para melhores resultados, é recomendado que a imagem executável fornecida seja escaneada dentro do seu diretório de instalação.

A flag -l analisa a tabela de importação do executável fornecido, aplica filtros e tenta instrumentalizar os módulos importados colocando uma DLL de payload no diretório atual da aplicação. O executável escaneado pode exibir uma caixa de erro quando as dependências para a DLL de payload (funções exportadas) não são atendidas. Nesse caso, uma caixa de mensagem de erro é exibida. Por padrão, o DLLHSC verifica por 10 segundos se uma caixa de mensagem foi aberta, ou pelo número de segundos especificado pelo utilizador com a flag -t. Uma caixa de mensagem de erro indica que, se as dependências forem atendidas, o módulo pode ser instrumentalizado.

A seguinte captura de tela mostra a caixa de mensagem de erro gerada quando OleView.dll carrega a DLL de payload:

dependency

A ferramenta aguarda um tempo máximo de 10 segundos ou -t segundos para garantir que a inicialização do processo terminou e que qualquer caixa de mensagem foi gerada. Em seguida, deteta a caixa de mensagem, fecha-a e reporta o resultado:

imported_modules

A flag -lm lança o executável fornecido e imprime os módulos que ele carrega que não pertencem à lista KnownDLLs nem são dependências WinSxS. Este modo visa dar uma ideia de DLLs que podem ser usadas como payload e existe apenas para gerar leads para o analista.

loaded_modules

A flag -rt imprime os módulos que a imagem executável fornecida carrega no seu espaço de endereçamento quando lançada como um processo. Isto é alcançado fazendo hook das APIs LoadLibrary e LoadLibraryEx via Microsoft Detours.

runtime_loaded_modules

Feedback

Para qualquer feedback sobre esta ferramenta, utilize a secção de Issues do GitHub.

Baixar ferramenta