DumpBrowserSecrets
最新のChromium系およびGecko系ブラウザ(Chrome、Microsoft Edge、Firefox、Opera、Opera GX、Vivaldi)から、リフレッシュトークン、Cookie、保存された認証情報、クレジットカード、自動入力エントリ、閲覧履歴、ブックマークなどのブラウザ保存データを抽出します。
仕組み
本プロジェクトは DumpChromeSecrets の改良版であり、同様に2つのコンポーネントで構成されています:
- 実行ファイル(
DumpBrowserSecrets.exe)
ヘッドレスのChromiumプロセスを作成し、 Early Bird APCインジェクション によりDLLを注入し、抽出された復号鍵を受け取ります。これらの鍵は、App-Bound(Chrome、Brave、Microsoft Edgeから抽出)またはDPAPI鍵(Opera、Opera GX、Vivaldiで使用)のいずれかです。必要な鍵を回収すると、この実行ファイルはディスク上のブラウザのSQLiteデータベースおよびJSONファイルを解析し、認証情報、Cookie、トークン、その他の閲覧データを含む保存データを復号します。さらに、非Chromium系ブラウザ(例:Firefox)を対象とする場合、 DumpBrowserSecrets.exe がデータ抽出と復号に必要な全手順を(DLLインジェクションなしで)処理します。
- DLL(
DllExtractChromiumSecrets.dll)
Chromiumブラウザ内で実行され、 IElevator COMインターフェイスを使用してApp-Bound暗号化キーを復号します。 IElevator COMインターフェイスを活用してApp-Bound暗号化キーを復号し、対象ブラウザの Local State ファイルから app_bound_encrypted_key および encrypted_key の復号済み値を取得します。これらの値は実行ファイルに返され、実行ファイルがすべての抽出処理を実行します。
注記
DumpChromeSecrets プロジェクトとは異なり、本実装ではブラウザデータの抽出はすべて DumpBrowserSecrets.exe 実行ファイル内で行われ、DLLはChromium系ブラウザから暗号化キーを取得することに限定されています。
抽出されるデータ
以下の表は、対応ブラウザごとに使用される正確なデータの場所、形式、暗号化モデルを示しています。
Chrome(App-Bound)
| データ種別 | データベースパス | 形式 | 暗号化 |
|---|---|---|---|
| Cookie | %LOCALAPPDATA%\Google\Chrome\User Data\Default\Network\Cookies |
SQLite | V20 |
| ログイン情報 | %LOCALAPPDATA%\Google\Chrome\User Data\Default\Login Data |
SQLite | V20 |
| クレジットカード | %LOCALAPPDATA%\Google\Chrome\User Data\Default\Web Data |
SQLite | V20 |
| トークン | %LOCALAPPDATA%\Google\Chrome\User Data\Default\Web Data |
SQLite | V20 |
| 自動入力 | %LOCALAPPDATA%\Google\Chrome\User Data\Default\Web Data |
SQLite | 暗号化なし |
| 履歴 | %LOCALAPPDATA%\Google\Chrome\User Data\Default\History |
SQLite | 暗号化なし |
| ブックマーク | %LOCALAPPDATA%\Google\Chrome\User Data\Default\Bookmarks |
JSON | 暗号化なし |
Edge(App-Bound)
| データ種別 | データベースパス | 形式 | 暗号化 |
|---|---|---|---|
| Cookie | %LOCALAPPDATA%\Microsoft\Edge\User Data\Default\Network\Cookies |
SQLite | V20 |
| ログイン情報 | %LOCALAPPDATA%\Microsoft\Edge\User Data\Default\Login Data |
SQLite | V20 |
| クレジットカード | %LOCALAPPDATA%\Microsoft\Edge\User Data\Default\Web Data |
SQLite | V20 |
| トークン | %LOCALAPPDATA%\Microsoft\Edge\User Data\Default\Web Data |
SQLite | X |
| 自動入力 | %LOCALAPPDATA%\Microsoft\Edge\User Data\Default\Web Data |
SQLite | 暗号化なし |
| 履歴 | %LOCALAPPDATA%\Microsoft\Edge\User Data\Default\History |
SQLite | 暗号化なし |
| ブックマーク | %LOCALAPPDATA%\Microsoft\Edge\User Data\Default\Bookmarks |
JSON | 暗号化なし |
Brave(App-Bound)
| データ種別 | データベースパス | 形式 | 暗号化 |
|---|---|---|---|
| Cookie | %LOCALAPPDATA%\BraveSoftware\Brave-Browser\User Data\Default\Network\Cookies |
SQLite | V20 |
| ログイン情報 | %LOCALAPPDATA%\BraveSoftware\Brave-Browser\User Data\Default\Login Data |
SQLite | V20 |
| クレジットカード | %LOCALAPPDATA%\BraveSoftware\Brave-Browser\User Data\Default\Web Data |
SQLite | V20 |
| トークン | %LOCALAPPDATA%\BraveSoftware\Brave-Browser\User Data\Default\Web Data |
SQLite | X |
| 自動入力 | %LOCALAPPDATA%\BraveSoftware\Brave-Browser\User Data\Default\Web Data |
SQLite | 暗号化なし |
| 履歴 | %LOCALAPPDATA%\BraveSoftware\Brave-Browser\User Data\Default\History |
SQLite | 暗号化なし |
| ブックマーク | %LOCALAPPDATA%\BraveSoftware\Brave-Browser\User Data\Default\Bookmarks |
JSON | 暗号化なし |
Opera(DPAPI)
| データ種別 | データベースパス | 形式 | 暗号化 |
|---|---|---|---|
| Cookie | %APPDATA%\Opera Software\Opera Stable\Default\Network\Cookies |
SQLite | V10 |
| ログイン情報 | %APPDATA%\Opera Software\Opera Stable\Default\Login Data |
SQLite | V10 |
| クレジットカード | %APPDATA%\Opera Software\Opera Stable\Default\Web Data |
SQLite | V10 |
| トークン | %APPDATA%\Opera Software\Opera Stable\Default\Web Data |
SQLite | V10 + Base64 |
| 自動入力 | %APPDATA%\Opera Software\Opera Stable\Default\Web Data |
SQLite | 暗号化なし |
| 履歴 | %APPDATA%\Opera Software\Opera Stable\Default\History |
SQLite | 暗号化なし |
| ブックマーク | %APPDATA%\Opera Software\Opera Stable\Default\Bookmarks |
JSON | 暗号化なし |
Opera GX(DPAPI)
| データ種別 | データベースパス | 形式 | 暗号化 |
|---|---|---|---|
| Cookie | %APPDATA%\Opera Software\Opera GX Stable\Default\Network\Cookies |
SQLite | V10 |
| ログイン情報 | %APPDATA%\Opera Software\Opera GX Stable\Default\Login Data |
SQLite | V10 |
| クレジットカード | %APPDATA%\Opera Software\Opera GX Stable\Default\Web Data |
SQLite | V10 |
| トークン | %APPDATA%\Opera Software\Opera GX Stable\Default\Web Data |
SQLite | V10 + Base64 |
| 自動入力 | %APPDATA%\Opera Software\Opera GX Stable\Default\Web Data |
SQLite | 暗号化なし |
| 履歴 | %APPDATA%\Opera Software\Opera GX Stable\Default\History |
SQLite | 暗号化なし |
| ブックマーク | %APPDATA%\Opera Software\Opera GX Stable\Default\Bookmarks |
JSON | 暗号化なし |
Vivaldi(DPAPI)
| データ種別 | データベースパス | 形式 | 暗号化 |
|---|---|---|---|
| Cookie | %LOCALAPPDATA%\Vivaldi\User Data\Default\Network\Cookies |
SQLite | V10 |
| ログイン情報 | %LOCALAPPDATA%\Vivaldi\User Data\Default\Login Data |
SQLite | V10 |
| クレジットカード | %LOCALAPPDATA%\Vivaldi\User Data\Default\Web Data |
SQLite | V10 |
| トークン | %LOCALAPPDATA%\Vivaldi\User Data\Default\Web Data |
SQLite | X |
| 自動入力 | %LOCALAPPDATA%\Vivaldi\User Data\Default\Web Data |
SQLite | 暗号化なし |
| 履歴 | %LOCALAPPDATA%\Vivaldi\User Data\Default\History |
SQLite | 暗号化なし |
| ブックマーク | %LOCALAPPDATA%\Vivaldi\User Data\Default\Bookmarks |
JSON | 暗号化なし |
Firefox(NSS)
| データ種別 | ファイル/データベースパス | 形式 | 暗号化 |
|---|---|---|---|
| Cookie | %APPDATA%\Mozilla\Firefox\Profiles\<profile>\cookies.sqlite |
SQLite | 暗号化なし |
| ログイン情報 | %APPDATA%\Mozilla\Firefox\Profiles\<profile>\logins.json |
JSON | AES‑256‑CBC または 3DES‑CBC |
| トークン | %APPDATA%\Mozilla\Firefox\Profiles\<profile>\signedInUser.json |
JSON | 暗号化なし |
| 自動入力 | %APPDATA%\Mozilla\Firefox\Profiles\<profile>\formhistory.sqlite |
SQLite | 暗号化なし |
| 履歴 | %APPDATA%\Mozilla\Firefox\Profiles\<profile>\places.sqlite |
SQLite | 暗号化なし |
| ブックマーク | %APPDATA%\Mozilla\Firefox\Profiles\<profile>\places.sqlite |
SQLite | 暗号化なし |
ダウンロード
翻訳元: https://meterpreter.org/beyond-the-vault-how-dumpbrowsersecrets-bypasses-modern-browser-encryption/