API Hooking Credenziali: Credential API Hooking (T1056.004)
Credential API Hooking è una tecnica di intercettazione che dirotta chiamate a funzioni di sistema per catturare credenziali quando queste transitano come parametri. A differenza del keylogging generico, l'attaccante si posiziona chirurgicamente sulle API che gestiscono autenticazione, sessioni RDP o handshake SSH, ottenendo credenziali già decodificate senza dover interpretare stream di tasti.
La tecnica ricade sotto TA0006 (Credential Access) e TA0009 (Collection), coprendo la fase post-exploitation in cui l'avversario ha già ottenuto esecuzione codice e cerca di espandere il proprio controllo tramite riuso di credenziali legittime. Su Windows si concretizza in tre varianti principali: hook procedures installate via SetWindowsHookEx, IAT hooking che riscrive i puntatori nella Import Address Table di un processo, e inline hooking che sovrascrive i primi byte di una funzione API per redirigere il flusso. Su Linux e macOS l'equivalente sfrutta le variabili d'ambiente LD_PRELOAD e DYLD_INSERT_LIBRARIES per iniettare librerie condivise che rimpiazzano funzioni come read di libc, intercettando sessioni SSH o SCP.
Il dataset MITRE documenta 11 famiglie malware che implementano la tecnica, dai banking trojan come TrickBot, Zeus Panda e Carberp fino a impianti sofisticati come FinFisher e VersaMem, oltre al gruppo APT PLATINUM. L'impatto operativo è significativo perché le credenziali raccolte sono pulite, plaintext e immediatamente utilizzabili per movimenti laterali.
In un ingaggio red team, la simulazione di API hooking richiede laboratori isolati e binari firmati dal team stesso per evitare contaminazioni. Il punto di partenza classico su Windows è Frida (open source), che espone un'interfaccia JavaScript per installare hook inline su funzioni arbitrarie. Con frida-trace -p
Per emulare IAT hooking in stile FinFisher o Zeus Panda, il framework Detours di Microsoft Research (open source) resta il riferimento didattico: consente di riscrivere i puntatori nella Import Address Table di un processo target dopo injection della DLL tramite CreateRemoteThread + LoadLibrary. Un pattern operativo tipico prevede injection in explorer.exe o in un browser, con hook su WinHttpSendRequest per catturare credenziali basic-auth in POST.
Per la variante SetWindowsHookEx, usata da NOKKI, si installa un hook globale WH_KEYBOARD_LL o WH_CBT tramite una DLL esportata che viene mappata in ogni processo GUI. Il framework PowerSploit (open source, non più mantenuto ma ancora funzionante in lab) e alcuni moduli di Empire (open source, versione BC-Security) offrono payload pronti, come netripper citato nei dati MITRE, che intercetta traffico cifrato prima della cifratura hookando funzioni SSL.
Su Linux la simulazione è più immediata: si compila una shared library che ridefinisce read o PAM_conv, poi si esporta LD_PRELOAD=/tmp/libhook.so prima di lanciare ssh o sudo. Un esempio didattico è il progetto linux-pam-backdoor (open source su GitHub), utile per dimostrare intercettazione di password PAM in scenari controllati. Su macOS, l'equivalente usa DYLD_INSERT_LIBRARIES ma richiede binari non protetti da SIP e senza flag hardened runtime, quindi la superficie è drasticamente ridotta sui sistemi moderni.
Per la validazione dei rilevamenti, API Monitor di Rohitab (gratuito) e Process Hacker (open source) permettono di ispezionare i moduli caricati e verificare integrità delle prime istruzioni delle funzioni API, confrontandole con la copia on-disk della DLL originale. Il red team dovrebbe documentare ogni hook installato e rimuoverlo esplicitamente a fine test per evitare persistenze accidentali.
Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?
Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo