Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
ImpulsiveDLLHijack — Strumento basato su C# che automatizza il processo di scoperta e sfruttamento di DLL Hijack in binari target. I percorsi hijacked scoperti possono successivamente essere utilizzati come armi durante le Operazioni Red Team per eludere gli EDR. | Kitploit
Strumenti/GitHubGitHub/knight0x07/impulsivedllhijack
Escalation di PrivilegiMeccanismi di PersistenzaExploitRed TeamingBinary Exploitation
GitHubknight0x07/impulsivedllhijack

ImpulsiveDLLHijack

Strumento basato su C# che automatizza il processo di scoperta e sfruttamento di DLL Hijack in binari target. I percorsi hijacked scoperti possono successivamente essere utilizzati come armi durante le Operazioni Red Team per eludere gli EDR.

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Vedi Repository
5541014 anni faRevisionato da Kitploit

ImpulsiveDLLHijack

Strumento basato su C# che automatizza il processo di scoperta e sfruttamento dei DLL Hijack in binari target. I percorsi di hijack scoperti possono successivamente essere utilizzati durante operazioni RedTeam per eludere gli EDR.

1. Approccio metodologico :

Lo strumento agisce fondamentalmente automatizzando le seguenti fasi del DLL Hijacking:

  • Scoperta – Trovare percorsi potenzialmente vulnerabili al DLL Hijack
  • Sfruttamento – Confermare se la DLL di conferma è stata caricata dal percorso hijacked, portando alla conferma di un DLL Hijack sfruttabile al 100%!

Metodologia di scoperta :

  • Fornire il percorso del binario target a ImpulsiveDLLHijack.exe
  • Automazione di ProcMon insieme all'esecuzione del binario target per trovare percorsi potenzialmente vulnerabili al DLL Hijack.

Metodologia di sfruttamento :

  • Analizzare i percorsi potenzialmente vulnerabili al DLL Hijack dal CSV generato automaticamente da ProcMon.

  • Copiare la DLL di conferma (secondo l'architettura PE) nei percorsi di hijack uno per uno ed eseguire contemporaneamente il binario target per un periodo di tempo predefinito.

  • Durante il processo di DLL hijacking, è possibile ottenere i seguenti output dallo scenario di hijack:

    • La DLL di conferma presente nel percorso potenzialmente vulnerabile viene caricata dal binario target – sulla console viene stampato il seguente output che indica che il DLL Hijack è riuscito – DLL Hijack Successfull -> DLLName: | <Target_binary_name>
    • La DLL di conferma presente nel percorso potenzialmente vulnerabile non viene caricata dal binario target – sulla console viene stampato il seguente output che indica che il DLL Hijack non è riuscito – DLL Hijack Unsuccessfull -> <DLL_Path>

    Scenari di Entry Point non trovato:

    • La DLL di conferma presente nel percorso potenzialmente vulnerabile non viene caricata dal binario target perché l'Entry Point della DLL è diverso dal nostro Entry Point predefinito "DllMain", generando un errore "Entry Point Not Found" – sulla console viene stampato il seguente output che indica che il DLL Hijack sarebbe stato sfruttabile se l'Entry Point fosse stato corretto -> DLL Hijack Successful -> [Entry Point Not Found - Manual Analysis Required!]: <Hijack_path>
    • La DLL di conferma presente nel percorso potenzialmente vulnerabile viene eseguita dal binario target anche dopo che l'Entry Point della DLL è diverso dal nostro Entry Point predefinito "DllMain", generando l'errore "Entry Point Not Found" – sulla console viene stampato il seguente output che indica che il DLL Hijack è riuscito anche se l'Entry Point non era corretto -> DLL Hijack Successful -> [Entry Point Not Found]: <Hijack_path>

Nota: l'errore "Entry Point not found" viene gestito programmaticamente, non è necessario chiudere manualmente la MsgBox :) # Altrimenti il codice si bloccherebbe****

  • Una volta completato il processo di DLL Hijacking per ogni percorso potenzialmente vulnerabile, otteniamo l'output finale sulla console e in un file di testo (C:\DLLLogs\output_logs.txt) nel formato seguente:

    • <DLLHijack_path> --> DLL Hijack Successful (se l'hijack è riuscito)
    • <DLLHijack_path> --> DLL Hijack Unsuccessful (se l'hijack non è riuscito)
    • <DLLHijack_path> --> DLL Hijack Successful [Entry Point Not Found - Manual Analysis Required] (se l'Entry Point non è stato trovato ma può essere sfruttabile dopo analisi manuale)
    • <DLLHijack_path> --> DLL Hijack Successful [Entry Point Not Found] (se l'hijack è riuscito anche se l'Entry Point non è stato trovato)
    • <DLLHijack_path> --> Copy: Access to Path is Denied (Accesso negato)

**Questi percorsi di DLL Hijack confermati possono essere successivamente utilizzati durante un impegno RedTeam per caricare un impianto DLL malevolo tramite un eseguibile legittimo (come OneDrive, Firefox, MSEdge, "Bring your own LOLBINs" ecc.) e bypassare EDR all'avanguardia, poiché la maggior parte di essi non riesce a rilevare il DLL Hijacking, come valutato da George Karantzas e Constantinos Patsakis nel loro articolo di ricerca: https://arxiv.org/abs/2108.10422

2. Prerequisiti:

  • Procmon.exe -> https://docs.microsoft.com/en-us/sysinternals/downloads/procmon
  • DLL di conferma personalizzate :
    • Sono file DLL che aiutano lo strumento a ottenere la conferma che le DLL siano state caricate con successo dal percorso di hijack identificato
    • Compilate dal progetto MalDLL fornito sopra (o utilizzare i binari precompilati se vi fidate di me!)
    • Il nome della DLL a 32 bit deve essere: maldll32.dll
    • Il nome della DLL a 64 bit deve essere: maldll64.dll
    • Installare il pacchetto NuGet:** PeNet** -> https://www.nuget.org/packages/PeNet/ (Prerequisito per la compilazione del progetto ImpulsiveDLLHijack)

Nota: i prerequisiti i e ii devono essere posizionati nella stessa directory di ImpulsiveDLLHijacks.exe.

  • Informazioni sulla compilazione e configurazione:

    • ImpulsiveDLLHijack

      • Clonare il repository in Visual Studio
      • Una volta caricato il progetto in Visual Studio, andare su "Progetto" --> "Gestisci pacchetti NuGet" --> Cercare i pacchetti e installare "PeNet" -> https://www.nuget.org/packages/PeNet/
      • Compilare il progetto!
      • ImpulsiveDLLHijack.exe si troverà nella directory bin.
    • E per le DLL di conferma:

      • Clonare il repository in Visual Studio
      • Compilare il progetto con x86 e x64
      • Rinominare la release x86 come maldll32.dll e la release x64 come maldll64.dll
    • Configurazione: Copiare le DLL di conferma (maldll32 e maldll64) nella directory di ImpulsiveDLLHijack.exe, quindi eseguire ImpulsiveDLLHijack.exe :))

3. Utilizzo:

utilizzo

4. Esempi:

  • Eseguibile target: OneDrive.exe

  • Fase: Scoperta

prima

  • Fase: Sfruttamento

    • DLL Hijack riusciti:

    successo_uno

    • DLL Hijack non riusciti:

    non_riuscito

    • La DLL non viene caricata perché l'Entry Point non è identico! Un'analisi manuale potrebbe renderlo un DLL Hijack riuscito :)

    entrypoint_non_trovato

    • DLL Hijack riuscito anche con Entry Point non identico!

    entrypoint_non_trovato_ma_dll_eseguita

  • Fase: Risultati finali e log

    • C:\DLLLogs\output_logs.txt:

    log_output

Grazie, ogni feedback sarà molto apprezzato! - knight!

Scarica lo strumento