
Cobalt Strike BOFは、NTFSメタデータを解析し、ディスクから直接ファイルデータを読み取ることで、生のNTFSボリュームから選択したWindowsレジストリハイブを抽出します。
RawHive は、生の NTFS ボリュームから選択した Windows レジストリ ハイブを直接取得するための Cobalt Strike BOF です。通常のファイル API をスキップし、NTFS メタデータを走査して対象のファイル レコードを見つけ、ディスクから直接バイトをコピーします。
現在、以下を対象としています:
C:\Windows\System32\config\SAMC:\Windows\System32\config\SYSTEMC:\Windows\System32\config\SECURITYC:\Windows\NTDS\ntds.dit(ホストがドメインコントローラーの場合)デフォルトでは C: から読み取りますが、別のローカルドライブ文字を指定することもできます。
\\.\C:)を開きます。$MFT を見つけます。Windows、System32、config、および対象ファイルのディレクトリインデックスを走査します。.tmp ファイルとして書き込みます。x86_64-w64-mingw32-gcc と make が必要です。make
これにより以下がビルドされます:
dist/rawhive.x64.o
rawhive.cna は dist/ からオブジェクトを読み込むため、rawhive.c を変更した後は再ビルドしてください。
rawhive C:\Windows\Temp
C: を明示的に読み取る場合:
rawhive C C:\Windows\Temp
D: を読み取り、出力を C:\Temp に書き込む場合:
rawhive d C:\Temp
ボリュームは C、c、C: のいずれかの形式で指定できます。出力ディレクトリは既に存在している必要があります。
<host>_<timestamp>_sam.tmp
<host>_<timestamp>_system.tmp
<host>_<timestamp>_security.tmp
<host>_<timestamp>_ntds.tmp
ntds.tmp は、選択したボリュームに C:\Windows\NTDS\ntds.dit が存在し、RawHive がそれを読み取れる場合にのみ書き込まれます。
outdir does not exist
指定したディレクトリがターゲット上に存在しないか、ディレクトリではありません。
open \\.\C: failed
Beacon に十分な権限がないか、raw ボリュームアクセスがブロックされている可能性があります。
not NTFS
選択したボリュームが NTFS ではないようです。
$mft runlist malformed または unsupported NTFS geometry
ボリュームレイアウトがサポートされていないか、損傷しています。
output path too long
より短い出力ディレクトリパスを使用してください。
