
Legen Sie ein beliebiges Windows-DPAPI-Artefakt ab, und es identifiziert das Format und den exakten benötigten Master-Key und entschlüsselt dann, sobald Sie den Key bereitstellen. Offline, CLI + Web-UI.
Ein Offline-Toolkit für Windows-DPAPI-Beweismaterial. Sie sammeln die Dateien, richten das Tool auf ein Artefakt, und es erkennt das Format und teilt Ihnen genau mit, welchen Master Key es benötigt; Sie liefern das Schlüsselmaterial und es entschlüsselt.
Die meiste DPAPI-Tooling besteht aus einem Skript pro Format oder einem Feature, das in einem größeren Offensive-Framework vergraben ist. Dies ist ein Tool für die gesamte Bandbreite — Master Keys, DPAPI-Blobs, Credential Manager, Vault, CREDHIST, Wi-Fi, RDP/RDCMan, CAPI/CNG-Schlüssel und -Zertifikate, PowerShell SecureStrings, KeePass, SCCM, Chromium-os_crypt-Schlüssel und (mit einem optionalen Plugin) DPAPI-NG — angetrieben allein aus gesammelten Dateien, mit einer Kommandozeilenschnittstelle und einer lokalen Drag-and-Drop-Weboberfläche über denselben Kern.
Es ist für Red Team und Penetrationstests, DFIR und Sicherheitsforschung konzipiert. Es wird kein Zugriff auf einen Live-Host, Domain Controller, das Netzwerk, BKRP oder LSASS verwendet, und es werden keine Passwörter oder PINs per Brute-Force geknackt: Sie liefern die gesammelten Artefakte und das Schlüsselmaterial explizit.
Verwenden Sie dies nur gegen Systeme und Beweismaterial, die Ihnen gehören oder die Sie ausdrücklich untersuchen dürfen.

Sie haben den Protect-Ordner eines Benutzers und eine Credential-Manager-Datei offline gesammelt und kennen das Kontopasswort. Untersuchen Sie zuerst die Credential — kein Schlüssel erforderlich:
python3 dpapi_toolkit.py CREDENTIAL_FILE
Es gibt den eingebetteten DPAPI-Blob und die benötigte Master-Key-GUID aus. Richten Sie es auf das Protect-Verzeichnis und lassen Sie es diesen Master Key zuordnen und entsperren, dann entschlüsseln Sie:
python3 dpapi_toolkit.py CREDENTIAL_FILE --type credential \
--masterkey-dir Protect-S-1-5-21-... \
--sid S-1-5-21-... \
--password 'password'
Das Ergebnis ist JSON mit dem Ziel, dem Benutzernamen und der wiederhergestellten Credential. Derselbe Ablauf — erst untersuchen, dann entschlüsseln — gilt für jedes unterstützte Format.
Python 3.10 oder neuer. Die einzige harte Abhängigkeit ist
cryptography:
python3 -m pip install cryptography
Optionale Abhängigkeiten aktivieren bestimmte Funktionen:
python3 -m pip install python-registry # Outlook-Daten aus NTUSER.DAT lesen
python3 -m pip install dpapi-ng # Offline-DPAPI-NG-Plugin
python3 -m pip install impacket # Offline-SYSTEM/SECURITY/SAM-Hive-Plugin
Es ist kein Live-Windows-Host, Domain Controller, keine Netzwerkverbindung und kein LSASS-Zugriff erforderlich. Registry-Secrets und Master Keys müssen bereits gesammelt worden sein.
ConvertFrom-SecureString / Export-Clixml SecureStrings..vpol/.vcrd) und CREDHIST-Passworthistorie..rdp-Dateien und RDCMan .rdg/.settings.ProtectedUserKey.bin, SCCM-Policy-Secrets, Outlook IMAP, softwaregestützte Windows Hello / NGC-Schlüssel und Chromium-os_crypt-Schlüssel.$DPAPImk$-Master-Keys (Hashcat 15300/15310/15900/15910), $MSONLINEACCOUNT$ CacheData (Modus 33700) und lokale SAM-NT-Hashes. Siehe docs/hashes.md.Die Entsperrmethode hängt davon ab, was Sie bereits haben. Dies ordnet es der CLI-Option zu; dieselben Auswahlmöglichkeiten erscheinen in der Weboberfläche unter 2. Unlock key.
| Was Sie haben | Größe / Form | Option |
|---|---|---|
| Verschlüsselter Windows-Master-Key | GUID-benannte Datei unter Protect | --masterkey FILE plus eine Entsperrmethode |
| Entschlüsselter Master-Key | 64 Bytes | --real-masterkey FILE_OR_HEX_OR_BASE64 |
| SHA1-Mapping eines entschlüsselten Master-Keys | 20 Bytes | --real-masterkey FILE_OR_HEX_OR_BASE64 |
| DPAPI_SYSTEM-Secret | 40-Byte MachineKey || UserKey, ein 20-Byte-Schlüssel oder 44 Bytes mit Version | --dpapi-system FILE_OR_HEX_OR_TEXT |
| Finaler SID-gebundener Benutzer-Prekey | 20 Bytes | --prekey FILE_OR_HEX |
| NT-Hash | 16 Bytes | --nt-hash FILE_OR_HEX --sid SID |
| Lokaler SHA1-Passwort-Hash | 20-Byte SHA1(password as UTF-16LE) | --sha1-hash FILE_OR_HEX --sid SID |
| Ungebundener Credential Key | 16–128 Bytes | --credkey FILE_OR_HEX --sid SID |
| AD-DPAPI-Backup-Material | PEM, DER, PVK, CAPI PRIVATEKEYBLOB oder 256-Byte ServerWrap-Key | --domain-backup-key VALUE oder --pvk VALUE |
Der 40/44-Byte-DPAPI_SYSTEM-Wert ist kein entschlüsselter Master Key. Verwenden Sie ihn, um einen GUID-benannten SYSTEM-Master-Key zu entschlüsseln, und verwenden Sie dann den resultierenden 64-Byte-Master-Key, um das Artefakt zu entschlüsseln.
Die Weboberfläche ist ein dünnes Frontend über denselben Offline-Kern, sodass ihre Ergebnisse exakt mit der Kommandozeile übereinstimmen:
python3 dpapi_web.py # http://127.0.0.1:8765/
Sie bindet nur an 127.0.0.1, hat keine LAN/Public-Bind-Option, hält entschlüsselte Ergebnisse in begrenztem Speicher für einen einzigen einmaligen Download und schreibt niemals persistente entschlüsselte Ausgaben. Siehe docs/web-ui.md für den vollständigen Workflow, die formatbezogenen Abläufe und die Sicherheitslage.
| Leitfaden | Inhalt |
|---|---|
| docs/cli-reference.md | Inspektion, Master-Key-Entsperrung, Ausgabeoptionen, Entropie, Hashcat-Export, Batch-Modus, Standard-Sammelorte, Fehlerbehebung. |
| docs/artifacts.md | Formatbezogene Befehlsbeispiele für jedes unterstützte Artefakt. |
| docs/web-ui.md | Die lokale Weboberfläche: vollständiger Workflow, zentrale Artefakt-Abläufe, verkettete Wiederherstellung und ihr Sicherheitsmodell. |
| docs/plugins.md | Entfernbare Offline-Plugins (Certificate/PFX, CacheData, Windows Hives, DPAPI-NG) und die DPAPI-NG-Anleitung. |
| docs/hashes.md | Crackbare Hashes für die Offline-Passwortwiederherstellung erhalten — $DPAPImk$, $MSONLINEACCOUNT$ und SAM-NT-Hashes, mit den Hashcat-Befehlen. |
Eine Schnellhilfe ist ebenfalls integriert: python3 dpapi_toolkit.py -h für kurze Hilfe, -hh für detaillierte Hilfe zu Keys/Artefakten/Orten/Einschränkungen, und das Anhängen von --structure an ein beliebiges Artefakt gibt dessen geparste Felder aus, ohne zu entschlüsseln.