Skip to content
KitploitKITPLOIT
ToolsBlog
Log in
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.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
pywhisker — Python-Version des C#-Tools für "Shadow Credentials"-Angriffe | Kitploit
Tools/GitHubGitHub/shutdownrepo/pywhisker
Privilege EscalationExploitationPenetrationstestsAuthentifizierung
GitHubshutdownrepo/pywhisker

pywhisker

Python-Version des C#-Tools für "Shadow Credentials"-Angriffe

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

pyWhisker

pyWhisker ist ein Python-Äquivalent des ursprünglichen Whisker, entwickelt von Elad Shamir und in C# geschrieben. Dieses Tool ermöglicht es Benutzern, das msDS-KeyCredentialLink-Attribut eines Zielbenutzers/-computers zu manipulieren, um die vollständige Kontrolle über dieses Objekt zu erlangen. Es basiert auf Impacket und einem Python-Äquivalent von Michael Grafnetter's DSInternals namens PyDSInternals, erstellt von podalirius. Dieses Tool ermöglicht zusammen mit Dirk-jan's PKINITtools eine vollständige primitive Ausnutzung nur auf UNIX-basierten Systemen.

Voraussetzungen für diesen Angriff sind wie folgt:

  1. Die funktionale Ebene der Zieldomäne muss Windows Server 2016 oder höher sein.
  2. Die Zieldomäne muss mindestens einen Domänencontroller mit Windows Server 2016 oder höher haben.
  3. Der während des Angriffs zu verwendende Domänencontroller muss ein eigenes Zertifikat und eigene Schlüssel besitzen (d.h. die Organisation muss entweder AD CS, eine PKI, eine CA oder etwas Ähnliches haben).
  4. Der Angreifer muss die Kontrolle über ein Konto haben, das das msDs-KeyCredentialLink-Attribut des Zielbenutzers oder Computerkontos schreiben kann.

Warum einige Voraussetzungen?

  • Voraussetzungen 1 und 2, da die PKINIT-Funktionen mit Windows Server 2016 eingeführt wurden.
  • Voraussetzung 3, da der DC sein eigenes Zertifikat und seine eigenen Schlüssel für den Sitzungsschlüsselaustausch während der AS_REQ <-> AS_REP-Transaktion benötigt.

Ein KRB-ERROR (16) : KDC_ERR_PADATA_TYPE_NOSUPP wird ausgelöst, wenn Voraussetzung 3 nicht erfüllt ist.

Weitere Informationen zu dieser "Shadow Credentials"-Primitive:

  • Shadow Credentials: Abusing Key Trust Account Mapping for Takeover
  • The Hacker Recipes - ACEs and DACL abuse
  • The Hacker Recipes - Shadow Credentials

Verwendung

pyWhisker kann verwendet werden, um verschiedene Aktionen am msDs-KeyCredentialLink-Attribut eines Ziels durchzuführen:

  • list: alle aktuellen KeyCredential-IDs und Erstellungszeiten auflisten
  • add: ein neues KeyCredential zum msDs-KeyCredentialLink hinzufügen
  • spray: das Hinzufügen eines neuen KeyCredentials zum msDs-KeyCredentialLink verteilen (spray)
  • remove: ein KeyCredential aus dem msDs-KeyCredentialLink entfernen
  • clear: alle KeyCredentials aus dem msDs-KeyCredentialLink entfernen
  • info: alle in einer KeyCredential-Struktur enthaltenen Informationen ausgeben
  • export: alle KeyCredentials aus dem msDs-KeyCredentialLink im JSON-Format exportieren
  • import: das msDs-KeyCredentialLink mit KeyCredentials aus einer JSON-Datei überschreiben

pyWhisker unterstützt die folgenden Authentifizierungen:

  • (NTLM) Klartext-Passwort
  • (NTLM) Pass-the-hash
  • (Kerberos) Klartext-Passwort
  • (Kerberos) Pass-the-key / Overpass-the-hash
  • (Kerberos) Pass-the-cache (eine Art Pass-the-ticket)
  • (LDAP über Schannel) Pass-the-cert

Unter anderem unterstützt pyWhisker mehrstufige Ausführlichkeit; einfach -v, -vv, ... an den Befehl anhängen :)

pyWhisker kann auch domänenübergreifend arbeiten, siehe das Argument -td/--target-domain.

usage: pywhisker [-h] (-t TARGET_SAMNAME | -tl TARGET_SAMNAME_LIST) [-a [{list,add,spray,remove,clear,info,export,import}]] [--use-ldaps] [--use-schannel] [-v] [-q]
                 [--dc-ip ip address] [-d DOMAIN] [-u USER] [-crt CERTFILE] [-key KEYFILE] [-td TARGET_DOMAIN] [--no-pass | -p PASSWORD | -H [LMHASH:]NTHASH | --aes-key hex key]
                 [-k] [-P PFX_PASSWORD] [-f FILENAME] [-e {PEM,PFX}] [-D DEVICE_ID]

Python (re)setter for property msDS-KeyCredentialLink for Shadow Credentials attacks.

optional arguments:
  -h, --help            show this help message and exit
  -t TARGET_SAMNAME, --target TARGET_SAMNAME
                        Target account
  -tl TARGET_SAMNAME_LIST, --target-list TARGET_SAMNAME_LIST
                        Path to a file with target accounts names (one per line)
  -a [{list,add,spray,remove,clear,info,export,import}], --action [{list,add,spray,remove,clear,info,export,import}]
                        Action to operate on msDS-KeyCredentialLink
  --use-ldaps           Use LDAPS instead of LDAP
  --use-schannel        Use LDAP Schannel (TLS) for certificate-based authentication
  -v, --verbose         verbosity level (-v for verbose, -vv for debug)
  -q, --quiet           show no information at all

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
  -crt, --certfile CERTFILE
                        Path to the user certificate (PEM format) for Schannel authentication
  -key, --keyfile KEYFILE
                        Path to the user private key (PEM format) for Schannel authentication
  -td TARGET_DOMAIN, --target-domain TARGET_DOMAIN
                        Target domain (if different than the domain of the authenticating user)

  --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)
  -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

arguments when setting -action to add:
  -P PFX_PASSWORD, --pfx-password PFX_PASSWORD
                        password for the PFX stored self-signed certificate (will be random if not set, not needed when exporting to PEM)
  -f FILENAME, --filename FILENAME
                        filename to store the generated self-signed PEM or PFX certificate and key, or filename for the "import"/"export" actions
  -e {PEM,PFX}, --export {PEM,PFX}
                        choose to export cert+private key in PEM or PFX (i.e. #PKCS12) (default: PFX))

arguments when setting -action to remove:
  -D DEVICE_ID, --device-id DEVICE_ID
                        device ID of the KeyCredentialLink to remove when setting -action to remove

Nachfolgend finden Sie Beispiele und Screenshots, was pyWhisker kann.

Auflisten und Informationen abrufen

Tool herunterladen