
Cobalt Strike 外部 C2 統合(Azure Servicebus 使用)、Azure Servicebus 経由の C2 トラフィック
Azure Servicebus を使用した Cobalt Strike 外部 C2 統合。C2 トラフィックは Azure Servicebus 経由で転送されます。

CobaltBus DotNetCore バイナリは Cobalt Strike の ExternalC2 と統合し、複数のビーコンを追跡するためにローカルの SqliteDB を作成します。CobaltBus への受信メッセージはキャプチャされ、データベースに書き込まれます。データベース「CobaltBus.db」と「CobaltBus-log.db」は、CobaltBus.dll が実行されているディレクトリに作成されます。Beacon バイナリが実行されると、ランダムに生成された BeaconId と Pipename を含む「INITIALIZE」メッセージを baseQueueName キューにプッシュします。CobaltBus ハンドラーがこれをキャプチャし、送信された BeaconId に基づいて 2 つの新しいキューを作成して移動し、Cobalt Strike からステージャーシェルコードを要求し、それを新しいキューに「INJECT」メッセージとしてプッシュして戻します。ここから、Beacon プロジェクトはキャプチャしたシェルコードをメモリに注入し、生成されたパイプ名を介して Cobalt Strike ビーコンとの接続を確立します。CobaltBus からコマンドが発行されると、対応するビーコンキューを介してプッシュされ、ビーコンパイプ名に送られます。
現在のメッセージフローには複数の欠陥があり、実際の運用で使用する前に対処する必要があります。これは未完成の POC と考えてください。もしこれを安全に使用できるマウスと C2 の専門家がいればいいのですが...
@ryHanson の研究に多大な感謝を捧げます https://github.com/ryhanson/ExternalC2