Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
DLLHSC — Escáner automatizado para descubrir candidatos de secuestro de orden de búsqueda de DLL en ejecutables de Windows, con análisis de tabla de importaciones, enumeración de módulos en tiempo de ejecución y enganche de API mediante Microsoft Detours. | Kitploit
Herramientas/GitHubGitHub/ctxis/dllhsc
ExplotaciónPruebas de PenetraciónAnálisis de BinariosDesarrollo de Payloads
GitHubctxis/dllhsc

DLLHSC

Escáner automatizado para descubrir candidatos de secuestro de orden de búsqueda de DLL en ejecutables de Windows, con análisis de tabla de importaciones, enumeración de módulos en tiempo de ejecución y enganche de API mediante Microsoft Detours.

Ver Repositorio
15836hace 6 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

DLLHSC

DLL Hijack SCanner: una herramienta para generar pistas y automatizar el descubrimiento de candidatos para el secuestro del orden de búsqueda de DLL

Índice de esta página

  • Contenido de este repositorio
  • Modos de operación
  • Guía de compilación y ejecución
  • Menú de ayuda
  • Ejemplos de ejecución
  • Comentarios

Contenido de este repositorio

Este repositorio alberga el archivo de proyecto de Visual Studio para la herramienta (DLLHSC), el archivo de proyecto para la funcionalidad de hooking de API (detour), el archivo de proyecto para el payload y, por último pero no menos importante, los ejecutables compilados para arquitectura x86 y x64 (en la sección de lanzamientos de este repositorio). El código fue escrito y compilado con Visual Studio Community 2019.

Si eliges compilar la herramienta desde el código fuente, necesitarás compilar los proyectos DLLHSC, detour y payload. DLLHSC implementa la funcionalidad principal de esta herramienta. El proyecto detour genera una DLL que se utiliza para hookear APIs. Y el proyecto payload genera la DLL que se utiliza como prueba de concepto para verificar si el ejecutable probado puede cargarla mediante secuestro del orden de búsqueda. El payload generado debe colocarse en el mismo directorio que DLLHSC y detour, con el nombre payload32.dll para arquitectura x86 y payload64.dll para arquitectura x64.

Modos de operación

La herramienta implementa 3 modos de operación que se explican a continuación.

Modo Ligero

Carga la imagen del ejecutable en memoria, analiza la tabla de importación y luego reemplaza cualquier DLL referenciada en la tabla de importación con una DLL de payload.

La herramienta coloca en el directorio de la aplicación solo un módulo (DLL) que no está presente en el directorio de la aplicación, no pertenece a WinSxS y no pertenece a las KnownDLLs.

La DLL de payload al ejecutarse, crea un archivo en la siguiente ruta: C:\Users\%USERNAME%\AppData\Local\Temp\DLLHSC.tmp como prueba de ejecución. La herramienta inicia la aplicación e informa si la DLL de payload fue ejecutada verificando si el archivo temporal existe. Como algunos ejecutables importan funciones de las DLL que cargan, pueden aparecer cuadros de mensaje de error cuando la DLL proporcionada no exporta esas funciones y, por lo tanto, no cumple con las dependencias de la imagen proporcionada. Sin embargo, los cuadros de mensaje indican que la DLL puede ser un buen candidato para la ejecución del payload si se cumplen las dependencias. En este caso, se requiere un análisis adicional. El título de estos cuadros de mensaje puede contener las cadenas: Ordinal Not Found o Entry Point Not Found. DLLHSC busca ventanas que contengan estas cadenas, las cierra tan pronto como aparecen e informa los resultados.

Modo Listar Módulos

Crea un proceso con la imagen ejecutable proporcionada, enumera los módulos que se cargan en el espacio de direcciones de este proceso e informa los resultados después de aplicar filtros.

La herramienta solo informa los módulos cargados desde el directorio System y que no pertenecen a las KnownDLLs. Los resultados son pistas que requieren un análisis adicional. El analista puede entonces colocar los módulos informados en el directorio de la aplicación y verificar si la aplicación carga el módulo proporcionado en su lugar.

Modo en Tiempo de Ejecución

Hooking de las APIs LoadLibrary y LoadLibraryEx mediante Microsoft Detours e informa de los módulos que se cargan en tiempo de ejecución.

Cada vez que la aplicación escaneada llama a LoadLibrary y LoadLibraryEx, la herramienta intercepta la llamada y escribe el módulo solicitado en el archivo C:\Users\%USERNAME%\AppData\Local\Temp\DLLHSCRTLOG.tmp. Si LoadLibraryEx se llama específicamente con la bandera LOAD_LIBRARY_SEARCH_SYSTEM32, no se escribe ninguna salida en el archivo. Después de que todas las intercepciones hayan terminado, la herramienta lee el archivo e imprime los resultados. Son de interés para un análisis posterior los módulos que no existen en la clave de registro KnownDLLs, los módulos que no existen en el directorio System y los módulos sin ruta completa (para estos módulos el cargador aplica el orden de búsqueda normal).

Guía de compilación y ejecución

Si decides compilar la herramienta desde el código fuente, se recomienda hacerlo en Visual Studio 2019. Para que la herramienta funcione correctamente, los proyectos DLLHSC, detour y payload deben compilarse para la misma arquitectura y luego colocarse en el mismo directorio. Tenga en cuenta que la DLL generada desde el proyecto payload debe renombrarse a payload32.dll para arquitectura de 32 bits o payload64.dll para arquitectura de 64 bits.

Menú de ayuda

El menú de ayuda para esta aplicación

root@kitploit:~
NOMBRE
        dllhsc - DLL Hijack SCanner

SINOPSIS
        dllhsc.exe -h

        dllhsc.exe -e <ruta de la imagen ejecutable> (-l|-lm|-rt) [-t segundos]

DESCRIPCIÓN
        DLLHSC escanea una imagen ejecutable dada en busca de secuestro de DLL e informa los resultados

        Requiere privilegios elevados

OPCIONES
        -h, --help
                muestra este menú de ayuda y sale

        -e, --executable-image
                imagen ejecutable a escanear

        -l, --lightweight
                analiza la tabla de importación, intenta lanzar un payload e informa los resultados

        -lm, --list-modules
                lista los módulos cargados que no existen en el directorio de la aplicación

        -rt, --runtime-load
                muestra los módulos cargados en tiempo de ejecución mediante hooking de las APIs LoadLibrary y LoadLibraryEx

        -t, --timeout
                número de segundos a esperar para verificar cualquier ventana de error emergente - por defecto 10 segundos

Ejemplos de ejecución

Esta sección proporciona ejemplos de cómo puedes ejecutar DLLHSC y los resultados que informa. Para este propósito, se utilizó la utilidad legítima de Microsoft OleView.exe (MD5: D1E6767900C85535F300E08D76AAC9AB). Para obtener mejores resultados, se recomienda que la imagen ejecutable proporcionada se escanee dentro de su directorio de instalación.

La bandera -l analiza la tabla de importación del ejecutable proporcionado, aplica filtros e intenta armar los módulos importados colocando una DLL de payload en el directorio actual de la aplicación. El ejecutable escaneado puede mostrar un cuadro de error cuando no se cumplen las dependencias de la DLL de payload (funciones exportadas). En este caso, aparece un cuadro de mensaje de error. DLLHSC verifica por defecto durante 10 segundos si se abrió un cuadro de mensaje, o durante tantos segundos como especifique el usuario con la bandera -t. Un cuadro de mensaje de error indica que si se cumplen las dependencias, el módulo puede ser armado.

La siguiente captura de pantalla muestra el cuadro de mensaje de error generado cuando OleView.dll carga la DLL de payload:

dependency

La herramienta espera un tiempo máximo de 10 segundos o -t segundos para asegurarse de que la inicialización del proceso haya finalizado y se haya generado cualquier cuadro de mensaje. Luego detecta el cuadro de mensaje, lo cierra e informa el resultado:

imported_modules

La bandera -lm lanza el ejecutable proporcionado e imprime los módulos que carga que no pertenecen a la lista de KnownDLLs ni son dependencias de WinSxS. Este modo tiene como objetivo dar una idea de las DLL que pueden usarse como payload y solo existe para generar pistas para el analista.

loaded_modules

La bandera -rt imprime los módulos que la imagen ejecutable proporcionada carga en su espacio de direcciones cuando se lanza como un proceso. Esto se logra mediante hooking de las APIs LoadLibrary y LoadLibraryEx a través de Microsoft Detours.

runtime_loaded_modules

Comentarios

Para cualquier comentario sobre esta herramienta, utilice la sección de Issues de GitHub.

Descargar herramienta