現在位置: ホーム / ハッキングツール / DumpBrowserSecrets – ブラウザ認証情報収集とApp-Bound Encryption バイパス
DumpBrowserSecrets は、Maldev Academy による後段階攻撃用の認証情報収集ツールで、単一の Windows 実行ファイルからすべての主要ブラウザ全体にわたってシークレット情報を抽出します。これは以前の DumpChromeSecrets プロジェクトの後継であり、現在は非推奨となっており、Chrome だけからすべての主要な Chromium ベースおよび Gecko ベースのブラウザへとカバレッジを拡張しています。

最新のブラウザは認証情報の保管庫です。Chrome、Microsoft Edge、Firefox、Opera、Opera GX、Vivaldi はすべて保存されたパスワード、セッションクッキー、OAuth リフレッシュトークン、クレジットカード番号、自動入力データ、および完全なブラウジング履歴をディスク上のローカル SQLite データベースと JSON ファイルに保存します。侵害された Windows ホストでは、そのデータは横展開、クラウドアカウント乗っ取り、または LSASS に触れることなく企業 SaaS プラットフォームへの永続的なアクセスへの最速パスであることが多いです。
Mimikatz のような LSASS および Security Account Manager (SAM) などの Windows 認証情報ストアを対象とするツールとは異なり、DumpBrowserSecrets はブラウザ層に完全に焦点を当てており、企業が SSO、OAuth、およびブラウザベースの SaaS ワークフローを採用する際に認証情報が構成されることが増えています。脅威モデルは変化しています。今日の開発者のブラウザセッションは、GitHub、AWS コンソール、Okta、Slack、および内部ツールの有効なトークンを同時に保持する可能性があります。
動作原理
DumpBrowserSecrets は、連携して動作する 2 つのコンポーネントで構成されています。コンパイル済み実行ファイル(DumpBrowserSecrets.exe)と DLL(DllExtractChromiumSecrets.dll)です。
App-Bound Encryption を使用する Chromium ベースのブラウザ(Chrome、Brave、Microsoft Edge)の場合、課題は Google が Chrome 127 で App-Bound Encryption を導入し、クッキーと認証情報の暗号化キーを Chrome アプリケーション ID に結合したことです。ブラウザの Local State ファイルに app_bound_encrypted_key として保存される暗号化キーは、IElevator COM(Component Object Model)インターフェイスを通じてのみ Chrome の昇格サービスによって復号化できます。
DumpBrowserSecrets はこれを処理するために、ヘッドレス Chromium プロセスを生成し、Early Bird APC(非同期プロシージャコール)インジェクションを通じて DLL をそれに注入します。これは、ターゲットプロセスのメインスレッドが開始される前にシェルコード実行をキューに入れるテクニックです。DLL は Chromium プロセスコンテキスト内で実行され、IElevator COM インターフェイスを使用して App-Bound Encryption キーを復号化し、名前付きパイプを介して復号化されたキーを実行ファイルに返します。実行ファイルは、ブラウザのオンディスク SQLite データベースを解析し、保存されたデータをローカルに復号化します。
App-Bound Encryption ではなく DPAPI(Data Protection API)キーを使用する Opera、Opera GX、および Vivaldi の場合、同じインジェクションアプローチが代わりに DPAPI キーを取得します。
Mozilla の NSS(Network Security Services)ライブラリを使用して AES-256-CBC または 3DES-CBC 暗号化を使用するログインを行う Firefox の場合、実行ファイルは DLL インジェクションなしで抽出と復号化をすべて直接処理します。
ツールには、運用上の使用に関連する複数の回避機能が含まれています。コンパイル時の文字列難読化、静的分析を破るための API ハッシング、PPID(親プロセス ID)、および NtCreateUserProcess を介した引数スプーフィングと手動 CSRSS 登録、実行中のブラウザが保持するファイルロックをバイパスするためのハンドルの複製、および sqlite-amalgamation 依存関係を置き換える カスタム SQLite3 ファイル形式パーサー(SQLoot、v1.1.1 で導入)は、静的フットプリントを削減します。
抽出されるデータ
ブラウザごとに以下のデータ型が抽出されます。暗号化モデルは異なります。Chrome、Brave、Edge は App-Bound Encryption(V20)を使用し、Opera、Opera GX、Vivaldi は DPAPI(V10)を使用し、Firefox は NSS ベースの暗号化をログイン用に使用し、他のデータ型は暗号化されていない状態で保存します。
- Chrome、Brave、Microsoft Edge(App-Bound / V20): クッキー、保存されたログイン、クレジットカード、OAuth トークン、自動入力エントリ、閲覧履歴、ブックマーク。
- Opera、Opera GX、Vivaldi(DPAPI / V10): クッキー、保存されたログイン、クレジットカード、OAuth トークン(Opera/Opera GX 用の V10 + Base64)、自動入力エントリ、閲覧履歴、ブックマーク。
- Firefox(NSS): クッキー、保存されたログイン(AES-256-CBC または 3DES-CBC 暗号化)、
signedInUser.jsonからの OAuth トークン、自動入力フォーム履歴、閲覧履歴、ブックマーク。
出力は、デフォルトでは <browser>Data.json という名前のファイルに JSON として書き込まれるか、/o フラグで指定されたパスに書き込まれます。
インストール
DumpBrowserSecrets は、プリコンパイル済みの Windows 実行ファイルとして配布されます。インストールは必要ありません。GitHub リリースページからコンパイル済みバイナリをダウンロードし、DumpBrowserSecrets.exe と DllExtractChromiumSecrets.dll をターゲットホストにコピーして実行します。
ソースからコンパイルする必要があるオペレーターの場合、リポジトリは Visual Studio ソリューションファイル(DumpBrowserSecrets.sln)を 3 つのプロジェクト(Common、DllExtractChromiumSecrets、DumpBrowserSecrets)と共に提供します。Visual Studio で x64 Release をターゲットにしてビルドします。
使用方法
このリポジトリは、従来の意味での グローバル --help フラグを提供していません。以下の使用ブロックは README から逐語的に再現されています。
使用方法: DumpBrowserSecrets.exe [オプション]
オプション:
/b:<browser> ターゲットブラウザ: chrome、edge、brave、opera、operagx、vivaldi、firefox、all
(デフォルト: システムデフォルトブラウザ)
/o <file> 出力 JSON ファイル(デフォルト: <browser>Data.json)
/all すべてのエントリをエクスポート(デフォルト: カテゴリごとに最大 16 個)
/? このヘルプメッセージを表示
例:
DumpBrowserSecrets.exe デフォルトブラウザから 16 個のエントリを抽出
DumpBrowserSecrets.exe /b:chrome Chrome から 16 個のエントリを抽出
DumpBrowserSecrets.exe /b:firefox /all Firefox からすべてのエントリをエクスポート
DumpBrowserSecrets.exe /b:brave /o Output.json Brave から 16 個のエントリを Output.json に抽出
DumpBrowserSecrets.exe /b:all /all インストールされているすべてのブラウザからすべてを抽出
デフォルトでは、ツールはデータカテゴリごとに最大 16 個のエントリを抽出します。/all フラグはこの上限を削除します。/b:all フラグは、単一の実行でインストールされているすべてのブラウザを対象とします。
攻撃シナリオ
オペレーターが Windows 侵害を前提とした対応中に開発者ワークステーションに着地します。ユーザーは Chrome、AWS コンソール、Okta、および会社の内部 GitLab インスタンスに認証されています。LSASS は Credential Guard で保護されており、有用な情報は得られません。オペレーターは DumpBrowserSecrets.exe と付属する DLL を書き込み可能なディレクトリにドロップして、以下を実行します。
DumpBrowserSecrets.exe /b:all /all /o C:\Users\Public\out.json
ツールはヘッドレス Chrome プロセスを生成し、Early Bird APC インジェクション経由で DLL を注入し、IElevator COM インターフェイス経由で App-Bound Encryption キーを取得し、Login Data、Cookies、Web Data SQLite データベースを復号化します。結果の JSON には、認証されたすべての SaaS サービスのアクティブなセッションクッキー、パスワードリセット後も有効である OAuth リフレッシュトークン、保存されたプレーンテキスト認証情報、および内部ホスト名とユーザー名を含む自動入力データが含まれます。
オペレーターは OAuth トークンを evilreplay にパイプしてターゲットのクラウドサービスに対するセッションリプレイを行い、CredNinja を使用して、回転される前にドメインに対して復元されたプレーンテキスト認証情報の有効性を検証します。認証情報抽出フェーズ全体は、ライブエンドポイント上で 30 秒以内に完了します。
レッドチーム関連性
ブラウザ認証情報盗難は、実世界の侵入における最も一貫した後段階攻撃ステップの 1 つです。Redline、Raccoon、Vidar、Lumma Stealer を含む情報窃取マルウェア市場は、DumpBrowserSecrets が実装する同じプリミティブ上にほぼ完全に構築されています。区別は、DumpBrowserSecrets がコモディティマルウェア展開ではなくレッドチーム対応向けに構築されていることです。C2 パネルに流出させる代わりに構造化 JSON を出力し、その回避機能は監視されていない消費者向けマシンをターゲットにするのではなく、強化された企業エンドポイント上の EDR(Endpoint Detection and Response)精査から生き残るように設計されています。
App-Bound Encryption は、Chrome 127 で出荷された際のこのテクニックのコストを上げようとする Google の意図的な試みでした。これは DPAPI 復号化のみに依存していた古いツールに対してはほぼ成功しました。DumpBrowserSecrets は IElevator COM バイパスのより完全な公開実装の 1 つであり、組織のエンドポイント制御がこのクラスの攻撃を検出または防止するかをテストするために直接関連しています。
このツールは、侵害された開発者エンドポイントの現実的なブラスト半径をテストするためにも有用であり、Active Directory パスに焦点を当てながら SaaS 認証情報サーフェスを無視するシナリオは、多くの想定された侵害演習で体系的に過小評価されています。
検出および軽減
主要な検出機会は以下の通りです。予期しない親からの Chromium ブラウザプロセスへのプロセスインジェクション、CI/CD または自動化コンテキスト外でのヘッドレスブラウザインスタンス化、ブラウザプロセス自体以外のプロセスによるブラウザ SQLite データベース(Login Data、Cookies、Web Data)の読み取り、および非ブラウザプロセスからの IElevator COM インターフェイスへの呼び出し。
DumpBrowserSecrets の PPID および引数スプーフィングは、プロセス系統ベースの検出を破るために特に設計されています。IElevator COM インターフェイス呼び出しを直接監視する EDR 製品、またはアンセストリのみではなくプロセス動作によってヘッドレスブラウザインスタンス化にフラグを立てる製品は、このテクニックに対してより効果的です。
ポリシーレベルでは、ブラウザの外部にシークレット情報を保存する認証情報マネージャー(Bitwarden、1Password、または同様のネイティブデスクトップクライアント)は、この攻撃サーフェスを完全に回避します。ブラウザに保存されたパスワードは、ほとんどの企業環境における認証情報衛生における最も弱いリンクのままです。
よくある質問
DumpBrowserSecrets は Chrome 127 以降で App-Bound Encryption が有効になっている場合に機能しますか?
はい。DumpBrowserSecrets は、Chrome 127 以降で実装されている App-Bound Encryption をバイパスするために特に設計されています。ヘッドレス Chromium プロセスを生成し、Early Bird APC インジェクション経由で DLL を注入し、ブラウザプロセスコンテキスト内から IElevator COM インターフェイスを使用して app_bound_encrypted_key を復号化します。これにより、現在の Chrome、Brave、および Microsoft Edge ビルドに対して効果的です。
DumpBrowserSecrets はどのブラウザをサポートしていますか?
DumpBrowserSecrets は Chrome、Microsoft Edge、Brave、Opera、Opera GX、Vivaldi、および Firefox をサポートしています。Chrome、Brave、Edge は App-Bound Encryption バイパス経由で処理されます。Opera、Opera GX、Vivaldi は DPAPI 復号化を使用します。Firefox は DLL インジェクションなしで NSS ベースの復号化を使用します。
DumpBrowserSecrets は何をするデータを抽出しますか?
ツールは保存されたパスワード、セッションクッキー、OAuth リフレッシュトークン、クレジットカード番号、自動入力エントリ、閲覧履歴、およびブックマークを抽出します。出力はデフォルトではターゲットブラウザの名前を付けたファイルに JSON として書き込まれます。
DumpBrowserSecrets はターゲットブラウザが実行されている必要がありますか?
App-Bound Encryption を使用する Chromium ベースのブラウザの場合、ツールは IElevator COM インターフェイスにアクセスするために独自のヘッドレスプロセスを生成するため、ブラウザを開く必要はありません。ハンドルの複製は、実行中のブラウザインスタンスが保持する可能性のある SQLite データベース上のファイルロックをバイパスするために使用されます。
DumpBrowserSecrets はアンチウイルスまたは EDR によって検出されていますか?
ツールは、静的フットプリントと動作検出フットプリントを削減するためにコンパイル時文字列難読化、API ハッシング、NtCreateUserProcess 経由の PPID スプーフィング、および引数スプーフィングを含みます。検出率は製品によって異なります。非ブラウザプロセスによる IElevator COM インターフェイス呼び出しを監視する EDR ソリューション、または親系統ではなくプロセス動作によってヘッドレスブラウザインスタンス化にフラグを立てるソリューションは、検出される可能性が高くなります。
認証情報収集における DumpBrowserSecrets と Mimikatz の違いは何ですか?
Mimikatz は LSASS メモリおよび Security Account Manager(SAM)を含む Windows 認証情報ストアを対象とします。DumpBrowserSecrets はブラウザに保存された認証情報のみに焦点を当てており、Mimikatz が対応していない別のレイヤーに存在します。Credential Guard が LSASS を保護する環境では、ブラウザ認証情報収集は多くの場合、従来の LSASS パスを超えた、より信頼できる後段階攻撃パスです。
結論
DumpBrowserSecrets は、ほとんどのエンドポイント強化プログラムが事後的な問題として扱う認証情報サーフェスに対処する、技術的に十分に構築された後段階攻撃ツールです。主要なブラウザの全範囲のカバレッジ、App-Bound Encryption と DPAPI モデルの両方の正しい処理、および運用上の回避機能の含有により、従来の LSASS パス以上の現実的な認証情報流出を実証することを目標とする想定された侵害対応のためのレッドチームツールキットへの信頼できる追加となります。
詳細については、または DumpBrowserSecrets をダウンロードするには、こちらを参照してください。https://github.com/Maldev-Academy/DumpBrowserSecrets