
Kit di raccolta credenziali post-sfruttamento che si inietta nei gestori di password e nelle utility di Windows per catturare credenziali tramite DLL proxying, COM hijacking e AppDomainManager injection.
ThievingFox è una raccolta di strumenti di post-exploitation per raccogliere credenziali da vari gestori di password e utilità Windows. Ogni modulo sfrutta un metodo specifico di iniezione nel processo target, e poi aggancia funzioni interne per raccogliere le credenziali.
Il post del blog associato può essere trovato qui
Rustup deve essere installato, segui le istruzioni disponibili qui : https://rustup.rs/
Il pacchetto mingw-w64 deve essere installato. Su Debian, questo può essere fatto usando :
apt install mingw-w64
Entrambi i target x86 e x86_64 di Windows devono essere installati per Rust:
rustup target add x86_64-pc-windows-gnu
rustup target add i686-pc-windows-gnu
Anche Mono e Nuget devono essere installati, le istruzioni sono disponibili qui : https://www.mono-project.com/download/stable/#download-lin
Dopo aver aggiunto i repository Mono, Nuget può essere installato usando apt :
apt install nuget
Infine, le dipendenze Python devono essere installate :
pip install -r client/requirements.txt
ThievingFox funziona con python >= 3.11.
Rustup deve essere installato, segui le istruzioni disponibili qui : https://rustup.rs/
Entrambi i target x86 e x86_64 di Windows devono essere installati per Rust:
rustup target add x86_64-pc-windows-msvc
rustup target add i686-pc-windows-msvc
Anche l'ambiente di sviluppo .NET deve essere installato. Da Visual Studio, vai su Strumenti > Ottieni strumenti e funzionalità > Installa "Sviluppo desktop .NET"
Infine, le dipendenze Python devono essere installate :
pip install -r client/requirements.txt
ThievingFox funziona con python >= 3.11
NOTA : Su un host Windows, per utilizzare il modulo KeePass, msbuild deve essere disponibile nel PATH. Questo può essere ottenuto eseguendo il client da una PowerShell per sviluppatori di Visual Studio (Strumenti > Riga di comando > PowerShell per sviluppatori)
Tutti i moduli sono stati testati sulle seguenti versioni di Windows :
| Windows Version |
|---|
| Windows Server 2022 |
| Windows Server 2019 |
| Windows Server 2016 |
| Windows Server 2012R2 |
| Windows 10 |
| Windows 11 |
[!CAUTION] I moduli non sono stati testati su altre versioni, e ci si aspetta che non funzionino.
| Applicazione | Metodo di Iniezione |
|---|---|
| KeePass.exe | Iniezione AppDomainManager |
| KeePassXC.exe | Proxy DLL |
| LogonUI.exe (Schermata di accesso di Windows) | Dirottamento COM |
| consent.exe (Popup UAC di Windows) | Dirottamento COM |
| mstsc.exe (Client RDP predefinito di Windows) | Dirottamento COM |
| RDCMan.exe (Client RDP di Sysinternals) | Dirottamento COM |
| MobaXTerm.exe (Client RDP di terze parti) | Dirottamento COM |
[!CAUTION] Anche se ho cercato di assicurarmi che questi strumenti non influiscano sulla stabilità delle applicazioni target, l'hooking in linea e l'iniezione di librerie non sono sicuri e potrebbero causare un crash o rendere l'applicazione instabile. Se dovesse accadere, l'uso del modulo
cleanupsul target dovrebbe essere sufficiente per garantire che la prossima volta che l'applicazione viene avviata, non venga eseguita alcuna iniezione/hooking.
ThievingFox contiene 3 moduli principali : poison, cleanup e collect.
Per ogni applicazione specificata nei parametri della riga di comando, il modulo poison recupera la libreria originale che verrà dirottata (per il dirottamento COM e il proxy DLL), compila una libreria che corrisponde alle proprietà della DLL originale, la carica sul server e modifica il registro se necessario per eseguire il dirottamento COM.
Per velocizzare il processo di compilazione di tutte le librerie, viene mantenuta una cache in client/cache/.
--mstsc, --rdcman, e --mobaxterm hanno un'opzione specifica, rispettivamente --mstsc-poison-hkcr, --rdcman-poison-hkcr, e --mobaxterm-poison-hkcr. Se una di queste opzioni viene specificata, il dirottamento COM sostituirà la chiave di registro nell'hive HKCR, il che significa che tutti gli utenti saranno interessati. Per impostazione predefinita, sono interessati solo tutti gli utenti attualmente connessi (tutti gli utenti che hanno un hive HKCU).
--keepass e --keepassxc hanno opzioni specifiche, --keepass-path, --keepass-share, e --keepassxc-path, --keepassxc-share, per specificare dove sono installate queste applicazioni, se non è il percorso di installazione predefinito. Questo non è richiesto per altre applicazioni, poiché viene utilizzato il dirottamento COM.
Il modulo KeePass richiede che il Visual C++ Redistributable sia installato sul target.
È possibile specificare più applicazioni contemporaneamente, oppure è possibile utilizzare il flag --all per colpire tutte le applicazioni.
[!IMPORTANT] Ricorda di pulire la cache se mai modifichi il parametro
--tempdir, poiché il nome della directory è incorporato all'interno delle DLL native.
$ python3 client/ThievingFox.py poison -h
usage: ThievingFox.py poison [-h] [-hashes HASHES] [-aesKey AESKEY] [-k] [-dc-ip DC_IP] [-no-pass] [--tempdir TEMPDIR] [--keepass] [--keepass-path KEEPASS_PATH]
[--keepass-share KEEPASS_SHARE] [--keepassxc] [--keepassxc-path KEEPASSXC_PATH] [--keepassxc-share KEEPASSXC_SHARE] [--mstsc] [--mstsc-poison-hkcr]
[--consent] [--logonui] [--rdcman] [--rdcman-poison-hkcr] [--mobaxterm] [--mobaxterm-poison-hkcr] [--all]
target
argomenti posizionali:
target Macchina target o intervallo [dominio/]utente[:password]@<IP o FQDN>[/CIDR]