WSASS — PPL保護下のLSASSメモリをダンプするツール
概要
WSASSは、Windows 11環境でProtected Process Light(PPL)として保護されたプロセスのメモリダンプを取得するためのツールです。LSASS.EXEなどのPPL保護プロセスは通常のユーザープロセスから直接メモリを読み取れませんが、本ツールは古い署名済み実行ファイルであるWerFaultSecure.exeを利用して、システム側でダンプを作成させる手法を取ります。出力はWindowsのMINIDUMP形式で生成されますが、検出回避のためか一時的にファイル先頭の”MDMP”マジックがPNGのヘッダに書き換えられるため、解析前に元の”MDMP”ヘッダへ戻す必要があります。
リポジトリの統計情報
- スター数: 13
- フォーク数: 2
- ウォッチャー数: 13
- コミット数: 5
- ファイル数: 10
- メインの言語: C++
主な特徴
- WerFaultSecure.exe(署名済み/高権限実行ファイル)を悪用してPPL保護プロセスのダンプを取得
- 出力はWindows MINIDUMP形式(ただし先頭4バイトが一時的にPNGヘッダへ置換)
- C++で実装され、WindowsネイティブAPIを利用したプロセス操作を行う
- 研究・検証向けのユーティリティ(正当な権限と合意の下で使用することを前提)
技術的なポイント
WSASSは、PPLにより通常手段でアクセスできないプロセス(特にLSASS)のメモリをダンプするために、システム側で動作する正規バイナリを“代行”として利用する手法を採っています。WerFaultSecure.exeはWindows Error Reportingの一部で、過去の実装や互換性のために高い特権や特殊な保護属性を持つことがあり、こうした特性を利用してダンプ作成を行わせます。具体的には、WerFaultSecure.exeを適切な引数や環境で起動・誘導し、対象プロセスに対するメモリダンプを生成させ、そのファイルを取得する流れが典型です。
コード構成から推測すると、PPLHelp系のモジュールで権限昇格やプロセス選択、ダンプ生成のトリガー処理をラップしており、ネイティブAPI呼び出し(プロセス作成、ハンドル操作、ファイルIOなど)を行っています。出力はMINIDUMPフォーマットなので、MimikatzやWinDbg、Volatility等の解析ツールで二次解析が可能です。ただし本ツールはダンプファイルの冒頭4バイト(通常は”MDMP”)をPNGのマジックヘッダに置換する機能を持っており、これはファイル拡張子やシグネチャベースの検知回避、あるいは単純な運搬時の目隠しを目的としていると考えられます。解析する際は、先に先頭4バイトを元の{0x4D,0x44,0x4D,0x50} (“MDMP”) に戻すことが必須です。
セキュリティ面では、PPLはプロセス間の機密性保護を目的としており、こうした「既存の高権限バイナリを利用する」手法は攻撃チェーンに組み込まれることがあるため注意が必要です。防御側では、WerFaultSecure.exeの利用状況やプロセス起動の異常なパターン、予期しないダンプ生成といった兆候を検知ルールに加えると効果的です。また、本ツールは合法的な検証やインシデントレスポンスでの利用に限定されるべきであり、無断での使用は重大な法的・倫理的問題を引き起こします。
プロジェクトの構成
主要なファイルとディレクトリ:
- .gitattributes: file
- .gitignore: file
- PPLHelp.cpp: file
- PPLHelp.h: file
- README.md: file
…他 5 ファイル
まとめ
PPL保護下のLSASSダンプを自動化する実験的ツール。研究目的で限定利用を。
リポジトリ情報:
- 名前: WSASS
- 説明: This is the tool to dump the LSASS process on modern Windows 11
- スター数: 13
- 言語: C++
- URL: https://github.com/2x7EQ13/WSASS
- オーナー: 2x7EQ13
- アバター: https://avatars.githubusercontent.com/u/183250995?v=4
READMEの抜粋:
WSASS
This is a tool that uses the old WerfaultSecure.exe program to dump the memory of processes protected by PPL (Protected Process Light), such as LSASS.EXE. The output is in Windows MINIDUMP format.
This tool automatically replaces the “MDMP” magic header with a PNG magic header. After the dump is complete, you need to restore the original 4-byte magic at the beginning of the file with the original 4 bytes: {0x4D, 0x44, 0x4D, 0x50} “MDMP”.
Command Line Syntax
**WSASS.ex…