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
ShadowSpray — Ein Tool zum Verteilen von Shadow Credentials über eine gesamte Domäne in der Hoffnung, längst vergessene GenericWrite/GenericAll-DACLs über andere Objekte in der Domäne auszunutzen. | Kitploit
Tools/GitHubGitHub/dec0ne/shadowspray
Privilege EscalationSchwachstellenanalyseExploitationPenetrationstestsAuthentifizierungRed Teaming
GitHubdec0ne/shadowspray

ShadowSpray

Ein Tool zum Verteilen von Shadow Credentials über eine gesamte Domäne in der Hoffnung, längst vergessene GenericWrite/GenericAll-DACLs über andere Objekte in der Domäne auszunutzen.

Repository anzeigen
49079vor 3 JahrenVon 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

ShadowSpray

Ein Tool, um Shadow Credentials über eine gesamte Domain zu streuen, in der Hoffnung, längst vergessene GenericWrite/GenericAll-DACLs über andere Objekte in der Domain auszunutzen.

Warum dieses Tool

In vielen Engagements sehe ich (in BloodHound), dass die Gruppe „Everyone“ / „Authenticated Users“ / „Domain Users“ oder eine andere breite Gruppe, die fast alle Benutzer der Domain enthält, einige GenericWrite/GenericAll-DACLs über andere Objekte in der Domain besitzt.

example

Diese Rechte können missbraucht werden, um Shadow Credentials zum Zielobjekt hinzuzufügen und dessen TGT und NT-Hash zu erhalten.

Mir kam der Gedanke, dass wir einfach versuchen können, Shadow Credentials über die gesamte Domain zu streuen und zu sehen, was hängen bleibt (offensichtlich ist dieser Ansatz besser für nicht verdeckte Engagements geeignet – nicht in einem Red Team verwenden, wenn Heimlichkeit erforderlich ist). Wenn ein Shadow Credential erfolgreich hinzugefügt wird, führen wir einfach den gesamten PKINIT + UnPACTheHash-Tanz auf und voilà – wir erhalten NT-Hashes.

Da der Prozess extrem schnell ist, kann er gleich zu Beginn des Engagements eingesetzt werden, und hoffentlich hast du einige Benutzer und Computer eingenommen, bevor du überhaupt richtig anfängst.

Hinweis: Ich habe viel Code aus meinem vorherigen Tool wiederverwendet, daher könnten AV/EDRs dies als KrbRelayUp markieren...

Wie dieses Tool funktioniert

Es läuft ungefähr so ab:

  1. Mit den bereitgestellten Anmeldeinformationen bei der Domain anmelden (oder die aktuelle Sitzung verwenden).
  2. Prüfen, ob die funktionale Ebene der Domain 2016 ist (sonst anhalten, da der Shadow-Credentials-Angriff nicht funktioniert).
  3. Eine Liste aller Objekte in der Domain (Benutzer und Computer) aus LDAP sammeln.
  4. Für jedes Objekt in der Liste Folgendes tun:
    1. Versuchen, einen KeyCredential zum Attribut „msDS-KeyCredentialLink“ des Objekts hinzuzufügen.
    2. Wenn das erfolgreich ist, PKINIT verwenden, um ein TGT mit dem hinzugefügten KeyCredential anzufordern.
    3. Wenn das erfolgreich ist, einen UnPACTheHash-Angriff durchführen, um den NT-Hash des Benutzers/Computers zu ermitteln.
    4. Wenn --RestoreShadowCred angegeben wurde: Den hinzugefügten KeyCredential entfernen (Aufräumen...).
  5. Wenn --Recursive angegeben wurde: Den gleichen Prozess mit jedem der erfolgreich eroberten Benutzer-/Computer-Konten wiederholen.

ShadowSpray unterstützt STRG+C. Wenn du die Ausführung also zu irgendeinem Zeitpunkt abbrechen möchtest, drücke einfach STRG+C, und ShadowSpray zeigt die bisher wiederhergestellten NT-Hashes an, bevor es beendet wird (wie in der Demo unten gezeigt).

Demo

https://user-images.githubusercontent.com/54464773/194827503-b1eead1a-e09a-41ca-9d9b-0a7a6f0ad6a0.mp4

Verwendung

root@kitploit:~
 __             __   __        __   __   __
/__` |__|  /\  |  \ /  \ |  | /__` |__) |__)  /\  \ /
.__/ |  | /~~\ |__/ \__/ |/\| .__/ |    |  \ /~~\  |


Usage: ShadowSpray.exe [-d FQDN] [-dc FQDN] [-u USERNAME] [-p PASSWORD] [-r] [-re] [-cp CERT_PASSWORD] [-ssl]

    -r   (--RestoreShadowCred)       Restore "msDS-KeyCredentialLink" attribute after the attack is done. (Optional)
    -re  (--Recursive)               Perform ShadowSpray attack recursivly. (Optional)
    -cp  (--CertificatePassword)     Certificate password. (default = random password)


General Options:
    -u  (--Username)                 Username for initial LDAP authentication. (Optional)
    -p  (--Password)                 Password for initial LDAP authentication. (Optional)
    -d  (--Domain)                   FQDN of domain. (Optional)
    -dc (--DomainController)         FQDN of domain controller. (Optional)
    -ssl                             Use LDAP over SSL. (Optional)
    -y  (--AutoY)                    Don't ask for confirmation to start the ShadowSpray attack. (Optional)

TODO

  • Code-Refactoring und Bereinigung!!!
  • Ausführliche Ausgabeoption hinzufügen
  • Option zum Speichern von hinzugefügten KeyCredentials / angeforderten TGTs / gesammelten NT-Hashes in einer Datei auf der Festplatte hinzufügen
  • Python-Version ;)
  • Weitere Vorschläge sind willkommen

Mitigation und Erkennung

Entnommen aus Elad Shamirs Blogbeitrag über Shadow Credentials:

  • Wenn PKINIT-Authentifizierung in der Umgebung nicht üblich ist oder für das Zielkonto nicht üblich ist, kann das Ereignis „Kerberos-Authentifizierungsticket (TGT) wurde angefordert“ (4768) auf anomales Verhalten hinweisen, wenn die Attribute für Zertifikatinformationen nicht leer sind.

  • Wenn ein SACL für die Überwachung von Änderungen an Active Directory-Objekten für das Zielkonto konfiguriert ist, kann das Ereignis „Directory service object was modified“ (5136) auf anomales Verhalten hinweisen, wenn der Betreff, der msDS-KeyCredentialLink ändert, nicht das Azure AD Connect-Synchronisierungskonto oder das ADFS-Dienstkonto ist, die normalerweise als Key Provisioning Server agieren und dieses Attribut legitimerweise für Benutzer ändern.

  • Eine genauere präventive Kontrolle besteht darin, einen Access Control Entry (ACE) hinzuzufügen, der dem Prinzipal EVERYONE das Ändern des Attributs msDS-KeyCredentialLink für jedes Konto, das nicht für die passwortlose Key Trust-Authentifizierung vorgesehen ist, und insbesondere für privilegierte Konten, VERWEIGERT.

  • Detecting UnPACing and shadowed credentials von Henri Hambartsumyan von FalconForce

ShadowSpray-spezifische Erkennungen:

  • Dieses Tool versucht, jedes Benutzer-/Computer-Objekt in der Domain in einem sehr kurzen Zeitrahmen zu ändern. Wenn es fehlschlägt (was meistens der Fall ist), erzeugt es einen LDAP_INSUFFICIENT_ACCESS-Fehler. Es ist möglich, eine Erkennung darum herum zu bauen, indem man denselben Ansatz wie bei der Erkennung von regulärem Password Spraying verwendet.

Danksagungen

  • Elad Shamir für seine Forschung zu Shadow Credentials und seinem großartigen Tool Whisker.
  • Will Schroeder und alle, die zu Rubeus beigetragen haben, das wir alle kennen und lieben. Im Grunde wurde die gesamte TGT/TGS/UnPACTheHash-Funktionalität von dort übernommen.
  • Cube0x0 Ein Teil des Codes (insbesondere die Änderungen von LDAP-Attributen über WINAPI) wurde aus seinem erstaunlichen Tool KrbRelay entnommen.
  • Michael Grafnetter für sein Tool DSInternals, das hier zur Unterstützung der Shadow-Credentials-Funktionalität verwendet wurde.
  • Orange-Cyberdefense für ihre Arbeit an GOAD, dem Active-Directory-Forschungslabor, das ich verwende und das im Demovideo und in den Bildern zu sehen ist.
  • Martijn Laarman für die schöne Fortschrittsanzeige, die in diesem Tool verwendet wird.
Tool herunterladen