MeetC2 - GoogleカレンダーAPIを悪用するサーバーレスC2フレームワーク
概要
MeetC2は、GoogleカレンダーAPIを通信手段として利用するサーバーレスのコマンド&コントロール(C2)フレームワークです。従来のC2サーバーとは異なり、外部に独自のサーバーを持たず、正規のGoogleカレンダーのAPIリクエストを介して攻撃者と被害端末間でコマンドやレスポンスをやり取りします。これにより、通信の検知や遮断を困難にし、検知回避能力の向上を狙っています。Go言語で開発されており、シンプルな構造ながら実用的な機能を備え、教育用やペネトレーションテストでの利用にも適しています。
リポジトリの統計情報
- スター数: 17
- フォーク数: 2
- ウォッチャー数: 17
- コミット数: 6
- ファイル数: 7
- メインの言語: Go
主な特徴
- GoogleカレンダーAPIを悪用し、正規通信に見せかけたC2チャネルを実現
- サーバーレス構成により、攻撃インフラの維持コストや検出リスクを低減
- Go言語によるシンプルかつコンパクトな実装で移植性が高い
- 公式ドキュメントや動画によるセットアップガイドを提供
技術的なポイント
MeetC2の最大の技術的特徴は、GoogleカレンダーAPIを通信チャネルとして利用する点にあります。通常、C2フレームワークは独自のサーバーに対して通信を行うため、ネットワーク監視や通信解析によって検知されやすいリスクがあります。それに対しMeetC2は、Googleの提供する正規APIを通じてコマンドやレスポンスをやり取りするため、通信内容が通常のGoogleサービスの利用に紛れ込み、セキュリティ監視の目を掻い潜ることが可能です。
具体的には、攻撃者はGoogleカレンダー上の特定のイベントやメモを操作し、そこにコマンドを埋め込みます。一方、被害端末のエージェントは定期的にAPIを通じてカレンダーをチェックし、新たなコマンドがあれば取得して実行し、結果を同じくカレンダーに書き戻します。これにより、C2サーバーを建てる必要がなく、攻撃インフラの露見リスクを大幅に抑えられます。
また、Go言語で書かれているため、高速で軽量なバイナリが作成可能であり、クロスプラットフォーム対応もしやすい点もメリットです。コードベースは比較的シンプルで、APIの認証・通信処理、コマンドのパースおよび実行、レスポンスのアップロードなどがコンパクトにまとめられています。これにより、カスタマイズや拡張も容易で、ペネトレーションテスト用途にも適しています。
さらに、READMEやセットアップガイドではGoogle APIの認証設定、必要なOAuthトークン取得方法なども詳しく解説されており、導入ハードルを下げています。加えて、Proof-of-Concept動画も公開されているため、動作イメージを掴みやすく、教育用途にも活用しやすい点が特徴です。
このようにMeetC2は、合法的なクラウドAPIを悪用して通信を隠蔽する最新の攻撃手法を実証しており、攻撃者側のステルス性向上と防御側の検知困難性を示す貴重なツールとなっています。
プロジェクトの構成
主要なファイルとディレクトリ:
- LICENSE: ライセンスファイル
- README.md: プロジェクト概要と使用方法の説明
- build-all.sh: ビルドスクリプト(クロスコンパイル対応)
- controller: コントローラ関連のソースコードを格納するディレクトリ
- go.mod: Goモジュール管理ファイル
その他2ファイルも含め、全7ファイルで構成されており、Go製のシンプルかつ必要最小限のファイル群でプロジェクトが成り立っています。
まとめ
GoogleカレンダーAPIを活用した革新的なサーバーレスC2フレームワーク。
リポジトリ情報:
- 名前: MeetC2
- 説明: (MeetC2 a.k.a Meeting C2) - A framework abusing Google Calendar APIs.
- スター数: 17
- 言語: Go
- URL: https://github.com/deriv-security/MeetC2
- オーナー: deriv-security
- アバター: https://avatars.githubusercontent.com/u/230177297?v=4