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
ImpulsiveDLLHijack — Herramienta basada en C# que automatiza el proceso de descubrir y explotar secuestros de DLL en binarios objetivo. Las rutas secuestradas descubiertas pueden luego ser utilizadas como armas durante operaciones de Red Team para evadir los EDR. | Kitploit
Herramientas/GitHubGitHub/knight0x07/impulsivedllhijack
Escalada de PrivilegiosMecanismos de PersistenciaExplotaciónRed TeamingExplotación de Binarios
GitHubknight0x07/impulsivedllhijack

ImpulsiveDLLHijack

Herramienta basada en C# que automatiza el proceso de descubrir y explotar secuestros de DLL en binarios objetivo. Las rutas secuestradas descubiertas pueden luego ser utilizadas como armas durante operaciones de Red Team para evadir los EDR.

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
Ver Repositorio
55410150hace 4 añosRevisado por Kitploit

ImpulsiveDLLHijack

Herramienta basada en C# que automatiza el proceso de descubrir y explotar DLL Hijacks en binarios objetivo. Las rutas secuestradas descubiertas pueden luego ser armadas durante operaciones de Red Team para evadir EDR.

1. Enfoque metodológico :

La herramienta básicamente actúa automatizando las siguientes etapas realizadas para el DLL Hijacking:

  • Descubrimiento - Encontrar rutas de DLL Hijack potencialmente vulnerables
  • Explotación - Confirmar si el DLL confirmatorio fue cargado desde la ruta secuestrada lo que lleva a una confirmación de 100% de DLL Hijack explotable.

Metodología de Descubrimiento :

  • Proporcionar la ruta del binario objetivo a ImpulsiveDLLHijack.exe
  • Automatización de ProcMon junto con la ejecución del binario objetivo para encontrar rutas de DLL Hijack potencialmente vulnerables.

Metodología de Explotación :

  • Analizar las rutas de DLL Hijack potencialmente vulnerables desde el CSV generado automáticamente por ProcMon.

  • Copiar el DLL confirmatorio (según la arquitectura PE) a las rutas de secuestro una por una y ejecutar el binario objetivo durante un período de tiempo predefinido simultáneamente.

  • Mientras el proceso de DLL hijacking está en progreso, las siguientes son las salidas que se pueden recopilar del escenario de secuestro:

    • El DLL confirmatorio presente en la ruta secuestrable potencialmente vulnerable es cargado por el binario objetivo, obtenemos la siguiente salida en la consola indicando que el DLL Hijack fue exitoso - DLL Hijack Successful -> DLLName: | <Target_binary_name>
    • El DLL confirmatorio presente en la ruta secuestrable potencialmente vulnerable NO es cargado por el binario objetivo, obtenemos la siguiente salida en la consola indicando que el DLL Hijack no fue exitoso - DLL Hijack Unsuccessful -> <DLL_Path>

    Escenarios de Entry Point Not Found:

    • El DLL confirmatorio presente en la ruta secuestrable potencialmente vulnerable no es cargado por el binario objetivo ya que el Entry Point del DLL es diferente de nuestro Entry Point por defecto "DllMain", lanzando un error - "Entry Point Not Found", obtenemos la siguiente salida en la consola indicando que el DLL Hijack era secuestrable si el Entry Point hubiera sido correcto -> DLL Hijack Successful -> [Entry Point Not Found - Manual Analysis Required!]: <Hijack_path>
    • El DLL confirmatorio presente en la ruta secuestrable potencialmente vulnerable es ejecutado por el binario objetivo incluso después de que el Entry Point del DLL es diferente de nuestro Entry Point por defecto "DllMain", lanzando un error "Entry Point Not Found", obtenemos la siguiente salida en la consola indicando que el DLL Hijack fue exitoso incluso después de que el Entry Point no fuera correcto -> DLL Hijack Successful -> [Entry Point Not Found]: <Hijack_path>

Nota: El error "Entry Point not found" es manejado programáticamente por el código, no es necesario cerrar el MsgBox manualmente :) # De lo contrario, esto bloquearía el código más adelante****

  • Una vez que el proceso de DLL Hijacking se completa para cada ruta de DLL Hijack potencialmente vulnerable, obtenemos la salida final en la consola así como en un archivo de texto (C:\DLLLogs\output_logs.txt) en el siguiente formato:

    • <DLLHijack_path> --> DLL Hijack Successful (si el secuestro fue exitoso)
    • <DLLHijack_path> --> DLL Hijack Unuccessful (si el secuestro no fue exitoso)
    • <DLLHijack_path> --> DLL Hijack Successful [Entry Point Not Found - Manual Analysis Required] (si el Entry Point no fue encontrado pero puede ser exitoso después de un análisis manual)
    • <DLLHijack_path> --> DLL Hijack Successful [Entry Point Not Found] (si el secuestro fue exitoso incluso después de que el Entry Point no fue encontrado)
    • <DLLHijack_path> --> Copy: Access to Path is Denied (Acceso denegado)

**Estas rutas confirmadas de DLL Hijack pueden luego ser armadas durante un compromiso de Red Team para cargar un implante de DLL malicioso a través de un ejecutable legítimo (como OneDrive, Firefox, MSEdge, "Bring your own LOLBINs", etc.) y eludir los EDR de última generación, ya que la mayoría de ellos no detectan el DLL Hijacking, según lo evaluado por George Karantzas y Constantinos Patsakis como se menciona en su artículo de investigación: https://arxiv.org/abs/2108.10422

2. Prerrequisitos:

  • Procmon.exe -> https://docs.microsoft.com/en-us/sysinternals/downloads/procmon
  • DLLs confirmatorios personalizados :
    • Estos son archivos DLL que ayudan a la herramienta a obtener la confirmación de si los DLL se han cargado exitosamente desde la ruta de secuestro identificada
    • Compilados desde el proyecto MalDLL proporcionado arriba (¡o usa los binarios precompilados si confías en mí!)
    • El nombre del DLL de 32 bits debe ser: maldll32.dll
    • El nombre del DLL de 64 bits debe ser: maldll64.dll
    • Instalar el paquete NuGet: PeNet -> https://www.nuget.org/packages/PeNet/ (Requisito previo al compilar el proyecto ImpulsiveDLLHijack)

Nota: Los requisitos i y ii deben colocarse en el propio directorio de ImpulsiveDLLHijacks.exe.

  • Información de compilación y configuración:

    • ImpulsiveDLLHijack

      • Clonar el repositorio en Visual Studio
      • Una vez que el proyecto esté cargado en Visual Studio, ve a "Project" --> "Manage NuGet packages" --> Buscar paquetes e instalar "PeNet" -> https://www.nuget.org/packages/PeNet/
      • ¡Compila el proyecto!
      • El ImpulsiveDLLHijack.exe estará dentro del directorio bin.
    • Y para los DLLs confirmatorios:

      • Clonar el repositorio en Visual Studio
      • Compilar el proyecto con x86 y x64
      • Renombrar la versión x86 como maldll32.dll y la versión x64 como maldll64.dll
    • Configuración: Copiar los DLLs confirmatorios (maldll32 y maldll64) en el directorio de ImpulsiveDLLHijack.exe y luego ejecutar ImpulsiveDLLHijack.exe :))

3. Uso:

usage

4. Ejemplos:

  • Ejecutable objetivo: OneDrive.exe

  • Etapa: Descubrimiento

first

  • Etapa: Explotación

    • Secuestros DLL exitosos:

    success_one

    • Secuestros DLL no exitosos:

    unsuccessful

    • El DLL no se carga porque el Entry Point no es idéntico. ¡El análisis manual podría convertirlo en un secuestro DLL exitoso :)

    entrypoint_not_found

    • Secuestro DLL exitoso incluso después de un Entry Point no idéntico:

    entry_pointnot found - but dll is executed

  • Etapa: Resultados finales y registros

    • C:\DLLLogs\output_logs.txt:

    output_logs

¡Gracias! ¡Los comentarios serán muy apreciados! - knight!

Descargar herramienta