
Python-Skript für Kerberoasting mit gezieltem ACL-Missbrauch: Setzt temporäre SPNs auf Benutzern ohne solche, extrahiert Kerberos-Hashes und entfernt dann den SPN. Unterstützt NTLM-, Kerberos- und Pass-the-Hash-Authentifizierung.
targetedKerberoast ist ein Python-Skript, das wie viele andere (z.B. GetUserSPNs.py) "kerberoast"-Hashes für Benutzerkonten ausgeben kann, die einen SPN gesetzt haben.
Dieses Tool bietet die folgende zusätzliche Funktion: Für jeden Benutzer ohne SPNs versucht es, einen zu setzen (Missbrauch einer Schreibberechtigung für das servicePrincipalName-Attribut), gibt den "kerberoast"-Hash aus und löscht den temporär für diesen Vorgang gesetzten SPN. Dies wird als gezieltes Kerberoasting bezeichnet.
Dieses Tool kann gegen alle Benutzer einer Domäne oder gegen eine Liste oder gegen einen einzelnen Benutzer in der CLI verwendet werden.
Weitere Informationen zu diesem Angriff
Dieses Tool unterstützt die folgenden Authentifizierungen:
Unter anderem unterstützt targetedKerberoast mehrstufige Ausführlichkeit; fügen Sie einfach -v, -vv, ... an den Befehl an :)
usage: targetedKerberoast.py [-h] [-v] [-q] [-D TARGET_DOMAIN] [-U USERS_FILE] [--request-user username] [-o OUTPUT_FILE] [--use-ldaps] [--only-abuse] [--no-abuse] [--dc-ip ip address] [-d DOMAIN] [-u USER]
[-k] [--no-pass | -p PASSWORD | -H [LMHASH:]NTHASH | --aes-key hex key]
Queries target domain for SPNs that are running under a user account and operate targeted Kerberoasting
optional arguments:
-h, --help show this help message and exit
-v, --verbose verbosity level (-v for verbose, -vv for debug)
-q, --quiet show no information at all
-D TARGET_DOMAIN, --target-domain TARGET_DOMAIN
Domain to query/request if different than the domain of the user. Allows for Kerberoasting across trusts.
-U USERS_FILE, --users-file USERS_FILE
File with user per line to test
--request-user username
Requests TGS for the SPN associated to the user specified (just the username, no domain needed)
-o OUTPUT_FILE, --output-file OUTPUT_FILE
Output filename to write ciphers in JtR/hashcat format
-f {hashcat,john}, --output-format {hashcat,john}
Output format (default is "hashcat", "john" prepends usernames)
--use-ldaps Use LDAPS instead of LDAP
--only-abuse Ignore accounts that already have an SPN and focus on targeted Kerberoasting
--no-abuse Don't attempt targeted Kerberoasting
authentication & connection:
--dc-ip ip address IP Address of the domain controller or KDC (Key Distribution Center) for Kerberos. If omitted it will use the domain part (FQDN) specified in the identity parameter
-d DOMAIN, --domain DOMAIN
(FQDN) domain to authenticate to
-u USER, --user USER user to authenticate with
secrets:
-k, --kerberos Use Kerberos authentication. Grabs credentials from .ccache file (KRB5CCNAME) based on target parameters. If valid credentials cannot be found, it will use the ones specified in the
command line
--no-pass don't ask for password (useful for -k)
-p PASSWORD, --password PASSWORD
password to authenticate with
-H [LMHASH:]NTHASH, --hashes [LMHASH:]NTHASH
NT/LM hashes, format is LMhash:NThash
--aes-key hex key AES key to use for Kerberos Authentication (128 or 256 bits)
Im Folgenden ein Beispiel, was das Tool tun kann.

Dank an das gesamte Team hinter Impacket und seinen Mitwirkenden.