Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
chlonium — オフラインDPAPI状態キー復号化を用いてブラウザ間でChromiumのクッキーとパスワードをクローン・インポートし、AES-256 GCM暗号化データベースをサポートするレッドチーム運用向けツールです。 | Kitploit
ツール/GitHubGitHub/rxwx/chlonium
パスワードクラッキング暗号化/復号化ツールデータ流出フォレンジックポストエクスプロイトレッドチーミング
GitHubrxwx/chlonium

chlonium

オフラインDPAPI状態キー復号化を用いてブラウザ間でChromiumのクッキーとパスワードをクローン・インポートし、AES-256 GCM暗号化データベースをサポートするレッドチーム運用向けツールです。

リポジトリを見る
316593年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Chlonium

Chlonium は、Chromium の Cookie をクローンするために設計されたアプリケーションです。

Chromium 80 以降では、Cookie は AES-256 GCM を使用して暗号化され、Local State ファイルに保存される状態キーが使用されます。この状態キーは DPAPI を使用して暗号化されています。これは、以前のバージョンで Cookie データベース内の各 Cookie アイテムを DPAPI で暗号化していた方式からの変更です。つまり、状態キーを入手していれば、DPAPI キーへの継続的なアクセスを必要とせずに、オフラインで Cookie データベースを常に復号化できるということです。

これにより、Cookie データベースは本質的に「ポータブル」になり、状態キーをダンプしていればマシン間で移動できるようになります。Cookie 自体はインポート時に再暗号化する必要があります。なぜなら、状態キーはユーザープロファイルやマシンごとに異なるからです。これは復号化と同じプロセスで行うことができます。まず「ターゲット」ブラウザから状態キーを復号化し、次に各アイテムを新しいキーで再暗号化します。

このプロジェクトは C# で記述されており、2 つの別々のコンポーネントがあります。最初のコンポーネント chlonium.exe は収集用バイナリです。単純に状態キーを復号化して出力します。このキーを記録しておけば、将来更新された Cookie が必要になったときに Cookies データベースファイルをダウンロードして Cookie を復号化できます。デフォルトでは Chrome の状態キーを復号化しようとします。別のブラウザ(例:Edge)の状態キーをダンプしたい場合は、キーへのパスを指定できます。

例:

root@kitploit:~
> Chlonium.exe "c:\users\user\AppData\Local\Microsoft\Edge\User Data\Local State"
[+] Statekey = 3Cms3YxFXVyJRUbulYCnxqY2dO/jubDkYBQBoYIvqfc=

2 つ目のコンポーネント ChloniumUI.exe は「インポーター」ツールです。これは、指定された状態キーで特定の Cookies データベースファイルを復号化し、値を現在のユーザーの状態キーで再暗号化し、選択したブラウザに Cookie をインポートする処理を行います。このツールは、Cookie をインポートしたいマシン上で実行します。

使用するには、ChloniumUI.exe 実行可能ファイルを実行します。事前に抽出した状態キーを入力し、インポートする Cookies ファイルを選択し、Cookie をインポートするブラウザを選択します。そして「Import Cookies」をクリックすると、Cookie がインポートされます。

ChloniumUI は現在、Edge、Chrome、Vivaldi の 3 つの Chromium ベースのブラウザをサポートしています。追加のブラウザは Browsers.cs で追加できます。これにより、例えば Edge の Cookie ファイルを Chrome にインポートしたり、その逆も可能になるという意図しない利点がありますが、ユーザーエージェントが一致しなくなるため、おそらく良いアイデアではありません。

重要: Cookie ファイルをブラウザにインポートすると、古い Cookie はすべてクリアされます!バックアップが現在のディレクトリに(タイムスタンプ付きで)コピーされます。以前の Cookie を復元する必要がある場合は、バックアップファイルを Cookies ファイルに上書きコピーするだけです。

なぜ

Mimikatz や SharpChromium などのツールは既に Chrome 80 の Cookie をダンプする機能を持っています。なぜ別のツールが必要なのでしょうか?

このツールは特に、Cookie を別のブラウザにインポートするのを容易にすることを目的としています。これらのツールは Chromium の Cookie(およびそれ以上)のダンプには優れていますが、私は別のブラウザに簡単にインポートできるものが欲しかったのです。サードパーティの Cookie マネージャープラグインもありますが、これらは扱いにくく、失敗しやすいと常々感じていました。CloniumUI は Cookie をブラウザの sqlite データベースに直接インポートすることで、このプロセスを容易にするように設計されています。

このプロジェクトには状態キーをダンプするのに役立つ chlonium.exe コレクターが付属していますが、これは実際には単なる例です。Mimikatz などの他のツールも、潜在的にステルス性の高い方法で状態キーをダンプしてくれます(実行環境や実行方法などによります)。さらに、SharpDPAPI を使用すると、DPAPI 状態キー、現在のパスワード、またはドメインバックアップキーがあれば Chromium の状態キーファイルを復号化でき、SMB 経由でリモートから Cookie をダンプすることもできます!

レッドチーム活動を行う際、長期にわたって(例えば毎日/毎週)ユーザーの Cookie を複数回ダンプする必要がある場合があります。.NET アセンブリ、リフレクティブ DLL、その他のメモリ内実行技術を使用してターゲットシステム上で直接 Cookie ファイルから個々の Cookie を抽出することは不必要であり、検出リスクを高めます。代わりに、状態キーを一度ダンプし、新しい Cookie が必要になったときに Cookies データベースファイルをコピーするだけで済み、追加の実行は必要ありません。

デモ

ビデオデモはこちらを参照してください。

パスワードのインポート/エクスポート

ChloniumUI はパスワードのインポートとエクスポートもサポートしています。この機能を使用するには、状態キーとともに、Cookies DB の代わりに Login Data データベースのパスを指定し、インポート先のブラウザを選択します(エクスポートの場合はこれは関係ありません)。これにより、パスワードをプレーンテキストでファイルにエクスポートしたり、ブラウザにインポートしたりできます。Cookie と同様に、Chrome のパスワードを Edge に、Edge のパスワードを Vivaldi にインポートすることもできます。

オフライン状態キー復号化

Chlonium はオフライン状態キー復号化をサポートしており、以下のすべてのファイルがある場合、ユーザーの状態キーをオフラインで復号化できます。

  • C:\Users\<user>\AppData\Local\<browser>\User Data\Local State からの Local State ファイル
  • C:\Users\<user>\AppData\Roaming\Microsoft\Protect\<SID>\ からの DPAPI マスターキーファイル

かつ以下のいずれか:

  • ドメインバックアップキー .pvk ファイル(例:NTDS.dit から)
  • ドメインバックアップキー(base64、例:Mimikatz/SharpDPAPI の LsaRetrievePrivateData API メソッドから)
  • ユーザーのパスワード

次に、「オフライン状態キー復号化」タブでこれらの値を指定するだけで、Chlonium はまず DPAPI マスターキーを(バックアップキーまたはパスワードを使用して)復号化し、次にこれらのキーを使用して状態キーを復号化します。状態キーが復号化されたら、「データベースのインポートまたはエクスポート」タブで Cookie/パスワードを取得できます。

使用上の注意:ユーザーのパスワードを使用して DPAPI マスターキーを復号化する場合、Chlonium は最初に DPAPI マスターキーフォルダ内の BK-<NETBIOSDOMAINNAME> ファイルからユーザーの SID を抽出しようとします。これが失敗した場合(またはファイルが存在しない場合)、代わりに DPAPI マスターキーフォルダ名(デフォルトではユーザーの SID にちなんで命名されています)から SID を取得しようとします。フォルダ名を変更した場合、または BK ファイルのコピーがない場合、パスワードを使用してマスターキーを復号化することはできません。

この機能は、@harmj0y による優れた SharpChrome および SharpDPAPI プロジェクトを利用しています。完全なクレジットは SharpDPAPI の原作者に帰属します。

インポーターの種類

Cookie またはログインデータベースをインポートする際、Chlonium は「インポーター」を選択するオプションを提供します。「データベースインポーター」(デフォルト)または「状態キーインポーター」のいずれかを選択できます。デフォルトのデータベースインポーターは、ソースデータベース内の各アイテムを復号化し、現在の状態キーで再暗号化してから、現在のブラウザのデータベースにインポートします。これは通常正常に動作しますが、ブラウザのアップデートによってデータベーススキーマが変更された場合、Chlonium を新しいスキーマに対応させるために更新する必要があるかもしれません。この問題を回避するために、状態キーインポーターが作成されました。データベース内の各アイテムを再暗号化する(データベーススキーマに依存する)代わりに、Local State ファイルに保存されている状態キーを(DPAPI を使用して)ソースデータベースのものと一致するように再暗号化するだけです。そうすれば、SQL でデータベースの内容をいじる必要なく、Cookie DB ファイルを交換できます。この方法はスキーマ変更に対してより耐性があるはずですが、副作用として、状態キーが無効になるため古い Cookie ファイルを使用できなくなります。復元の問題を避けるために、Local State ファイルは元の Cookie/ログインデータベースとともに現在のディレクトリにバックアップされます。必要に応じて手動で復元できます。さらに、各データベースアイテムを再暗号化する必要がないため、状態キーインポーターははるかに高速です!

要約:データベースインポーター で問題が発生している場合は、代わりに 状態キーインポーター を選択してみてください :)

検出

Chrome の Local State および Cookies ファイル(および Login Data、History などの他の機密ファイル)に SACL を設定します。これらのファイルを開く不審な(ブラウザ関連以外の)プロセスを監視します。

SACL の設定については、@cryps1s によるこの素晴らしいブログ記事を参照してください。

ファイルシステムフィルタードライバーを使用する AV ベンダーの場合、ブラウザ関連以外のプロセスがこれらのファイルを開くのをブロックすることを検討してください。例えば、PowerShell が Cookies ファイルを開くのをブロックします。

参考資料

  • https://github.com/gentilkiwi/mimikatz/wiki/module-~-dpapi
  • https://github.com/djhohnstein/SharpChromium
  • https://github.com/GhostPack/SharpDPAPI
  • https://www.harmj0y.net/blog/redteaming/operational-guidance-for-offensive-user-dpapi-abuse/
  • https://medium.com/@cryps1s/detecting-windows-endpoint-compromise-with-sacls-cd748e10950
ツールをダウンロード