
Scoperta, validazione e conferma automatizzata del DLL Hijacking. Trasformare le configurazioni errate locali in percorsi di attacco confermati e weaponizzati.
Scoperta, Validazione e Conferma Automatica del DLL Hijacking
Trasformare le misconfigurazioni locali in percorsi d'attacco confermati e weaponizzati.
DLLHijackHunter è uno strumento automatizzato di rilevamento del DLL hijacking su Windows che va oltre l'analisi statica. Scopre, valida e conferma le opportunità di DLL hijacking tramite una pipeline multi-fase:
La maggior parte degli strumenti di DLL hijacking si ferma a "questa DLL potrebbe essere hijackabile." DLLHijackHunter tenta di validarla, incrociarla con intelligence sulle vulnerabilità note e confermare i percorsi di esecuzione reali dove possibile.
flowchart TB
subgraph Phase1["Fase 1: Scoperta"]
SE["Motore Statico<br/>Servizi, Attività, Avvio,<br/>COM, Run Keys"]
AE["Motore AutoElevate<br/>Manifest + Bypass UAC COM"]
PE["Analizzatore PE<br/>Tabelle Import, Delay Loads,<br/>Manifest, Export"]
ETW["Motore ETW<br/>Monitoraggio Caricamento DLL<br/>in Tempo Reale"]
SO["Calcolatore Ordine<br/>di Ricerca"]
end
subgraph Phase2["Fase 2: Pipeline di Filtraggio"]
direction LR
HG["Gate Hard<br/>(Kill Binario)"]
SG["Gate Soft<br/>(Aggiustamento Confidenza)"]
end
subgraph Phase3["Fase 3: Verifica Caricamento (--verify-load)"]
LP["LoadProbe<br/>Test loader processo figlio<br/>Probe DLL posizionata & rimossa"]
end
subgraph Phase4["Fase 4: Canary"]
CB["Builder DLL Canary"]
TE["Esecutore Trigger"]
VF["Verifica"]
end
subgraph Phase5["Fase 5: Output"]
SC["Scorer a Livelli"]
RC["Report Console"]
RJ["Report JSON"]
RH["Report HTML"]
end
SE --> PE --> SO
AE --> PE
ETW --> SO
SO --> Phase2
HG --> SG
Phase2 --> Phase3
Phase3 --> Phase4
CB --> TE --> VF
Phase4 --> Phase5
| Tipo | Descrizione | Stealth | Stato |
|---|---|---|---|
| Phantom | La DLL non esiste da nessuna parte su disco | Alta | Implementato |
| Ordine di Ricerca | Posizionare la DLL prima nell'ordine di ricerca di Windows | Alta | Implementato |
| Side-Loading | Abusare di app legittime che caricano DLL dalla propria directory | Alta | Implementato (percorso AutoElevate copy-to-temp) |
| Reindirizzamento .local | Hijack tramite reindirizzamento directory .local | Alta | Implementato |
| ENV PATH | Weaponizzazione di directory scrivibili nel PATH di sistema | Alta | Implementato (mappa curata servizi/DLL) |
| DLL AppInit | Abuso del registro AppInit_DLLs | Bassa | Implementato |
| DLL AppCert | Abuso del registro AppCertDLLs (caricate in ogni chiamante CreateProcess/WinExec) | Bassa | Implementato |
| CWD | Hijack della Directory di Lavoro Corrente | Bassa | Pianificato — attualmente non prodotto da alcun percorso di scoperta |
Le voci IFEO Debugger vengono enumerate e il binario referenziato viene analizzato per gli import DLL, ma non esiste un tipo di hijack IFEO/KnownDLL-bypass dedicato — questi non vengono pubblicizzati come rilevamenti autonomi.
DLLHijackHunter include una scoperta dedicata del bypass UAC:
System32 e SysWOW64 per EXE con <autoElevate>true</autoElevate> nei manifest incorporatiHKLM\SOFTWARE\Classes\CLSID per oggetti COM con Elevation\Enabled=1SetDllDirectory o SetDefaultDllDirectories, simula il percorso d'attacco "copia EXE in cartella scrivibile + rilascia DLL"Resources/hijacklibs.json. Una corrispondenza aumenta la confidenza e collega il risultato alla pagina di riferimento HijackLibs; l'assenza di corrispondenza non significa nulla. Il dataset è data-driven — aggiornalo riscaricando https://hijacklibs.net/api/hijacklibs.json su quella risorsa (nessuna modifica al codice richiesta). Dataset © il progetto HijackLibs e i suoi contributori.PATH scrivibili e genera candidati hijack per una mappa curata di servizi Windows nativi noti per cercare DLL mancanti nel PATHLa pipeline riduce i falsi positivi attraverso due fasi:
Gate Hard
api-ms-*, ext-ms-*)Users / Authenticated Users / Everyone, più account di servizio sub-admin a prova di leak come LOCAL SERVICE/NETWORK SERVICE) ha diritti di scrittura effettivi. Fondamentalmente, questo viene calcolato indipendentemente dal token con cui lo strumento viene eseguito, quindi l'esecuzione con privilegi elevati non rende System32/Program Files scrivibili. Questo è ciò che rende significative le esecuzioni elevate per il triage LPE.Gate Soft
LoadLibraryExInvece di indovinare, DLLHijackHunter tenta di dimostrare che gli hijack funzionano:
sequenceDiagram
participant H as DLLHijackHunter
participant B as Builder DLL Canary
participant T as Esecutore Trigger
participant V as Binario Vittima
H->>B: Costruisci DLL canary
B->>B: Estrai canary precompilata<br/>(o compila un proxy con MSVC)
B-->>H: canary.dll + percorso file conferma
H->>H: Posiziona DLL nel percorso hijack
H->>T: Attiva esecuzione binario
T->>V: Avvia servizio / esegui attività / attiva COM
V->>V: Carica DLL canary
V-->>H: Scrive file conferma<br/>PID, privilegio, livello integrità
H->>H: Registra: CONFERMATO
H->>H: Pulizia DLL canary