デジタル署名ハイジャック
正規のデジタル署名をハイジャックする手法は、レッドチーム評価においてPowerShellコードやバイナリに署名するために使用できる技術です。これにより、Device Guardの制限を回避し、エンゲージメント中にステルス性を維持するのに役立ちます。DigitalSignatureHijackはMatt Graeberの研究に基づくPowerShellスクリプトで、以下の操作を実行できます:
- ホスト上のすべてのポータブル実行可能ファイルにMicrosoftとしてデジタル署名する
- ホスト上のすべてのPowerShellスクリプトにMicrosoftとしてデジタル署名する
- すべてのポータブル実行可能ファイルのデジタル署名を検証する
- すべてのPowerShellスクリプトのデジタル署名を検証する
これは、レジストリをハイジャックして必要な値を追加し、Matt Graeberが開発したカスタムSIP DLLファイルを利用することで実現されます。ユーザーはMySIP.dllのパスを自分のローカルパスに変更する必要があります。
デモ
ポータブル実行可能ファイルへの署名

署名検証

PowerShellスクリプトへの署名

署名検証

リソース
免責事項
- このリポジトリの目的は、コンパイル済みのDLL、バイナリ、スクリプトを保存し、デジタル署名ハイジャックに関する既存の情報を一元化することです。すべてのクレジットはこれらのツールの原作者に帰属します。
- このリポジトリに保存されているバイナリとDLLは、元の状態から変更されておらず、完全に安全です。ただし、何らかの理由でこのリポジトリを信頼できない場合は、これらのツールのソースコードを含む元のリポジトリを提供しているので、自分でコンパイルすることができます。
クレジット