Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Kerbeus-BOF — BOF für Kerberos-Missbrauch (eine Implementierung einiger wichtiger Funktionen von Rubeus). | Kitploit
Tools/GitHubGitHub/ralfhacker/kerbeus-bof
Privilege EscalationPasswortangriffeExploitationLaterale BewegungPost-ExploitationPenetrationstestsCommand and ControlAuthentifizierungRed Teaming
GitHubralfhacker/kerbeus-bof

Kerbeus-BOF

BOF für Kerberos-Missbrauch (eine Implementierung einiger wichtiger Funktionen von Rubeus).

60377vor 9 MonatenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Repository anzeigen

Kerbeus-BOF


Beacon Object Files für Kerberos-Missbrauch. Dies ist eine Implementierung einiger wichtiger Funktionen des Rubeus-Projekts, geschrieben in C. Das Projekt bietet Integration mit den C2-Frameworks Cobalt Strike, Havoc, AdaptixC2 und Outflank C2.

Ticketanforderungen und -erneuerungen

asktgt

Die Aktion asktgt erzeugt rohen AS-REQ (TGT-Anfrage) Traffic für den angegebenen Benutzer und Verschlüsselungsschlüssel (/rc4 oder /aes256). Es kann auch ein /password-Flag anstelle eines Hashs verwendet werden – in diesem Fall wird /enctype:X standardmäßig auf RC4 gesetzt. Wenn keine /domain angegeben wird, wird die aktuelle Domäne des Computers extrahiert, und wenn keine /dc angegeben wird, geschieht dasselbe für den aktuellen Domänencontroller des Systems. Bei erfolgreicher Authentifizierung wird das resultierende AS-REP geparst und die KRB-CRED (eine .kirbi, die das TGT des Benutzers enthält) als base64-BLOB ausgegeben. Das /ptt-Flag führt „Pass-the-Ticket“ aus und wendet das resultierende Kerberos-Ticket auf die aktuelle Anmeldesitzung an. Wichtiger OPSEC-Hinweis: Es kann jeweils nur ein TGT auf die aktuelle Anmeldesitzung angewendet werden. Daher wird das vorherige TGT gelöscht, wenn mit der /ptt-Option ein neues Ticket angewendet wird.

Um AS-REQs näher an echten Anfragen zu gestalten, kann das /opsec-Flag verwendet werden. Dies sendet zunächst eine AS-REQ ohne Pre-Authentication. Wenn diese erfolgreich ist, wird die resultierende AS-REP entschlüsselt und das TGT zurückgegeben. Andernfalls wird eine AS-REQ mit Pre-Authentication gesendet.

Die Anforderung eines TGT ohne PAC kann mit dem Schalter /nopac erfolgen. Das Flag /nopreauth kann verwendet werden, um eine AS-REQ ohne Pre-Authentication zu senden.

root@kitploit:~
krb_asktgt /user:USER /password:PASSWORD [/domain:DOMAIN] [/dc:DC] [/enctype:{rc4|aes256}] [/ptt] [/nopac] [/opsec]
krb_asktgt /user:USER /aes256:HASH [/domain:DOMAIN] [/dc:DC] [/ptt] [/nopac] [/opsec]
krb_asktgt /user:USER /rc4:HASH [/domain:DOMAIN] [/dc:DC] [/ptt] [/nopac]
krb_asktgt /user:USER /nopreauth [/domain:DOMAIN] [/dc:DC] [/ptt]

asktgs

Die Aktion asktgs erzeugt/parst eine rohe TGS-REQ/TGS-REP Service-Ticket-Anfrage unter Verwendung des angegebenen TGT /ticket:X. Dieser Wert muss eine base64-Kodierung einer .kirbi-Datei sein. Wenn keine /dc angegeben wird, wird der aktuelle Domänencontroller des Computers extrahiert und als Ziel für den Anforderungs-Traffic verwendet. Das /ptt-Flag führt „Pass-the-Ticket“ aus und wendet das resultierende Service-Ticket auf die aktuelle Anmeldesitzung an. Es müssen ein oder mehrere /service:X-SPNs (kommagetrennt) angegeben werden.

Die unterstützten Verschlüsselungstypen in der konstruierten TGS-REQ sind RC4_HMAC und AES256_CTS_HMAC_SHA1. In diesem Fall wird der höchste gegenseitig unterstützte Verschlüsselungstyp vom KDC verwendet, um das zurückgegebene Service-Ticket zu erstellen. Wenn Sie RC4- oder AES256-Schlüssel erzwingen möchten, verwenden Sie /enctype:[rc4 oder aes256].

Um TGS-REQs näher an echten Anfragen zu gestalten, kann das /opsec-Flag verwendet werden. Dies führt auch dazu, dass automatisch eine zusätzliche TGS-REQ gesendet wird, wenn ein Service-Ticket für ein Konto angefordert wird, das für uneingeschränkte Delegierung konfiguriert ist.

Das Flag /u2u wurde implementiert, um User-to-User-Tickets anzufordern. Zusammen mit dem Argument /tgs:X (zum Bereitstellen des TGT des Zielkontos) kann das Argument /service:X der Benutzername des Kontos sein, für das das bereitgestellte TGT (mit dem Argument /tgs:X) bestimmt ist. Das Argument /targetuser:X fordert ein PAC eines beliebigen anderen Kontos an, indem ein PA-FOR-USER-PA-Datenabschnitt mit dem Benutzernamen des Zielbenutzers eingefügt wird.

Das Flag /keyList wurde für Kerberos Schlüssellisten-Anforderungen implementiert. Diese Anforderungen müssen ein gefälschtes partielles TGT eines schreibgeschützten Domänencontrollers im Parameter /ticket:BASE64 verwenden. Außerdem muss das Feld /spn:x auf den KRBTGT-SPN in der Domäne gesetzt werden, z. B. KRBTBT/domain.local.

root@kitploit:~
krb_asktgs /ticket:BASE64 /service:SPN1,SPN2,... [/domain:DOMAIN] [/dc:DC] [/tgs:BASE64] [/targetdomain:DOMAIN] [/targetuser:USER] [/enctype:{rc4|aes256}] [/ptt] [/keylist] [/u2u] [/opsec]

renew

Die Aktion renew erzeugt/parst einen rohen TGS-REQ/TGS-REP-TGT-Erneuerungsaustausch unter Verwendung des angegebenen /ticket:X. Dieser Wert muss eine base64-Kodierung einer .kirbi-Datei sein. Wenn keine /dc angegeben wird, wird der aktuelle Domänencontroller des Computers extrahiert und als Ziel für den Erneuerungs-Traffic verwendet. Das /ptt-Flag führt „Pass-the-Ticket“ aus und wendet das resultierende Kerberos-Ticket auf die aktuelle Anmeldesitzung an.

root@kitploit:~
krb_renew /ticket:BASE64 [/dc:DC] [/ptt]

Missbrauch eingeschränkter Delegierung

Wenn ein Benutzer- (oder Computer-) Konto für eingeschränkte Delegierung konfiguriert ist (d. h., es hat einen SPN-Wert im msds-allowedtodelegateto-Feld), kann diese Aktion verwendet werden, um den Zugriff auf den Ziel-SPN/Server zu missbrauchen.

Eine TL;DR-Erklärung: Ein Konto mit aktivierter eingeschränkter Delegierung darf Tickets an sich selbst als beliebiger Benutzer anfordern – ein Vorgang, der als S4U2self bekannt ist. Damit ein Konto dies tun darf, muss TrustedToAuthForDelegation in seiner userAccountControl-Eigenschaft aktiviert sein – etwas, das standardmäßig nur berechtigte Benutzer ändern können. Dieses Ticket hat standardmäßig das FORWARDABLE-Flag gesetzt. Der Dienst kann dann dieses speziell angeforderte Ticket verwenden, um ein Service-Ticket für jeden im msds-allowedtodelegateto-Feld des Kontos angegebenen Service Principal Name (SPN) anzufordern. Kurz gesagt: Wenn Sie die Kontrolle über ein Konto haben, für das TrustedToAuthForDelegation gesetzt ist und ein Wert in msds-allowedtodelegateto vorhanden ist, können Sie sich gegenüber den im msds-allowedtodelegateto-Feld des Kontos festgelegten SPNs als beliebiger Benutzer in der Domäne ausgeben.

Das S4U2self-Ticket kann dann als Parameter /tgs:Y (base64-BLOB) verwendet werden, um den S4U2proxy-Prozess auszuführen. Es muss ein gültiger msds-allowedtodelegateto-Wert für das Konto angegeben werden (/service:X).

Der Parameter /altservice erlaubt es, einen beliebigen Dienstnamen in der resultierenden KRB-CRED-Datei zu ersetzen. Es können ein oder mehrere alternative Dienstnamen (kommagetrennt) angegeben werden (/altservice:cifs,HOST,...).

Um die TGS-REQs näher an echten Anfragen zu gestalten, kann das /opsec-Flag verwendet werden.

Es ist unter bestimmten Umständen möglich, ein S4U2Self-Ticket zu verwenden, um geschützte Benutzer zu impersonieren und so Privilegien auf dem anfragenden System zu eskalieren, wie hier beschrieben. Zu diesem Zweck können das Flag /self und das Argument /altservice:X verwendet werden, um ein nutzbares Service-Ticket zu generieren.

Um eine S4U2Self-Referral zu fälschen, ist nur der Vertrauensschlüssel erforderlich. Durch die Verwendung des Arguments /targetdomain:X mit dem Flag /self und ohne das Argument /targetdc wird das mit /ticket:X bereitgestellte Ticket als S4U2Self-Referral behandelt und nur das endgültige S4U2Self-Service-Ticket angefordert. /altservice:X kann auch verwendet werden, um den sname im resultierenden Ticket umzuschreiben.

root@kitploit:~
krb_s4u /ticket:BASE64 /service:SPN {/impersonateuser:USER | /tgs:BASE64} [/domain:DOMAIN] [/dc:DC] [/altservice:SERVICE] [/ptt] [/nopac] [/opsec] [/self]
krb_cross_s4u /ticket:BASE64 /service:SPN /targetdomain:DOMAIN /targetdc:DC {/impersonateuser:USER | /tgs:BASE64} [/domain:DOMAIN] [/dc:DC] [/altservice:SERVICE] [/nopac] [/self]

Ticketverwaltung

ptt

Die Aktion ptt übermittelt ein /ticket:X (TGT oder Service-Ticket) für die aktuelle Anmeldesitzung über die LsaCallAuthenticationPackage()-API mit einer KERB_SUBMIT_TKT_REQUEST-Nachricht oder (bei erhöhten Rechten) an die durch /luid:ea4.. angegebene Anmeldesitzung. Wie bei anderen /ticket:X-Parametern kann der Wert eine base64-Kodierung einer .kirbi-Datei sein.

root@kitploit:~
krb_ptt /ticket:BASE64 [/luid:LOGONID]

purge

Die Aktion purge löscht alle Kerberos-Tickets aus der aktuellen Anmeldesitzung oder (bei erhöhten Rechten) aus der durch /luid:0xA.. angegebenen Anmeldesitzung.

root@kitploit:~
krb_purge [/luid:LOGONID]

describe

Die Aktion describe nimmt einen /ticket:X-Wert (TGT oder Service-Ticket), parst ihn und beschreibt die Werte des Tickets. Wie bei anderen /ticket:X-Parametern kann der Wert eine base64-Kodierung einer .kirbi-Datei sein.

root@kitploit:~
krb_describe /ticket:BASE64

klist

klist listet detaillierte Informationen zur aktuellen Anmeldesitzung des Benutzers und zu Kerberos-Tickets auf, sofern nicht erhöht. Bei Ausführung in einem erhöhten Kontext (SYSTEM) werden Informationen zu allen Anmeldesitzungen und zugehörigen Kerberos-Tickets angezeigt. Anmelde- und Ticketinformationen können für eine bestimmte LogonID mit /luid:3ea.. angezeigt werden (bei erhöhten Rechten).

root@kitploit:~
krb_klist [/luid:LOGINID] [/user:USER] [/service:SERVICE] [/client:CLIENT]

dump

Die Aktion dump extrahiert aktuelle TGTs und Service-Tickets, wenn sie in einem erhöhten Kontext (SYSTEM) ausgeführt wird. Ohne Erhöhung werden Service-Tickets für den aktuellen Benutzer extrahiert.

root@kitploit:~
krb_dump [/luid:LOGINID] [/user:USER] [/service:SERVICE] [/client:CLIENT]

triage

Die Aktion triage gibt eine Tabelle der Kerberos-Tickets des aktuellen Benutzers aus, sofern nicht erhöht. Bei Ausführung in einem erhöhten Kontext (SYSTEM) wird eine Tabelle angezeigt, die alle Kerberos-Tickets auf dem System beschreibt.

root@kitploit:~
krb_triage [/luid:LOGINID] [/user:USER] [/service:SERVICE] [/client:CLIENT]

Filter

Für klist, triage und dump können Tickets nach /luid, /service und /client gefiltert werden.

Erfordert SYSTEM-Kontext.

tgtdeleg

tgtdeleg missbraucht die Kerberos GSS-API, um ein nutzbares TGT für den aktuellen Benutzer abzurufen, ohne eine Erhöhung auf dem Host zu benötigen. AcquireCredentialsHandle() wird verwendet, um ein Handle zu den Kerberos-Sicherheitsanmeldeinformationen des aktuellen Benutzers zu erhalten, und InitializeSecurityContext() mit dem ISC_REQ_DELEGATE-Flag und einem Ziel-SPN von CIFS/DC.domain.com, um einen gefälschten Delegierungskontext zur Übermittlung an den DC vorzubereiten. Dies führt zu einem AP-REQ in der GSS-API-Ausgabe, der eine KRB_CRED in der Authentikator-Prüfsumme enthält. Der Service-Ticket-Sitzungsschlüssel wird aus dem lokalen Kerberos-Cache extrahiert und verwendet, um die KRB_CRED im Authentikator zu entschlüsseln, was zu einem nutzbaren TGT .kirbi führt.

Wenn die automatische Ziel-/Domänenextraktion fehlschlägt, kann ein bekannter SPN eines Dienstes, der für uneingeschränkte Delegierung konfiguriert ist, mit /target:SPN angegeben werden.

root@kitploit:~
krb_tgtdeleg [/target:SPN]

Roasting

kerberoasting

kerberoasting wird verwendet, um das entsprechende Service-Ticket anzufordern. Das Argument /ticket:X gibt das TGT des Domänenbenutzers an. Das Argument /spn:X gibt den Ziel-SPN an. Die Argumente /domain und /dc sind optional und rufen Systemstandards ab, ähnlich wie bei anderen Aktionen.

Das Argument /nopreauth:USER versucht, eine AS-REQ mit dem an /spn:Y übergebenen Dienst zu senden, um Service-Tickets anzufordern.

root@kitploit:~
krb_kerberoasting /spn:SPN [/nopreauth:USER] [/dc:DC] [/domain:DOMAIN]
krb_kerberoasting /spn:SPN /ticket:BASE64 [/dc:DC]

asreproasting

Wenn ein Domänenbenutzer keine Kerberos-Preauthentication aktiviert hat, kann eine AS-REP für den Benutzer erfolgreich angefordert werden, und eine Komponente der Struktur kann offline wie bei Kerberoasting geknackt werden. Das Argument /user:X gibt den Zielbenutzer an. Die Argumente /domain und /dc sind optional und rufen Systemstandards ab, ähnlich wie bei anderen Aktionen.

root@kitploit:~
krb_asreproasting /user:USER [/dc:DC] [/domain:DOMAIN]

Verschiedenes

hash

Die Aktion hash nimmt ein /password:X sowie optional /user:USER und/oder /domain:DOMAIN entgegen. Sie generiert die rc4_hmac (NTLM)-Darstellung des Passworts. Wenn Benutzer- und Domänennamen angegeben werden, werden die Hash-Formen aes128_cts_hmac_sha1 und aes256_cts_hmac_sha1 generiert. Die Benutzer- und Domänennamen werden als Salts für die AES-Implementierungen verwendet.

root@kitploit:~
krb_hash /password:PASSWORD [/user:USER] [/domain:DOMAIN]

changepw

Die Aktion changepw nimmt ein TGT .kirbi-BLOB eines Benutzers und führt eine MS kpasswd-Passwortänderung mit dem angegebenen Wert /new:PASSWORD durch. Wenn keine /dc angegeben wird, wird der aktuelle Domänencontroller des Computers extrahiert und als Ziel für den Passwort-Reset-Traffic verwendet.

Die Argumente /targetuser und /targetdomain können verwendet werden, um das Passwort anderer Benutzer zu ändern, vorausgesetzt, der Benutzer, dessen TGT verwendet wird, verfügt über ausreichende Berechtigungen.

Beachten Sie, dass entweder das TGT eines Benutzers oder ein Service-Ticket für kadmin/changepw verwendet werden kann, um das Passwort zu ändern.

root@kitploit:~
krb_changepw /ticket:BASE64 /new:PASSWORD [/dc:DC] [/targetuser:USER] [/targetdomain:DOMAIN]

TODO

  • Implementieren von asktgt /cert:...
  • Refactoring des Codes zur Reduzierung der BOF-Größe
  • Erweitern der Ausgabe von describe
  • Wenn du etwas brauchst, schreib mir per X oder TG :)

Danksagungen

  • Rubeus - https://github.com/GhostPack/Rubeus
  • CS-Situational-Awareness-BOF - https://github.com/trustedsec/CS-Situational-Awareness-BOF
  • nanorobeus - https://github.com/wavvs/nanorobeus
Tool herunterladen