
Imaginary C2は、マルウェアの行動(ネットワーク)分析を支援するPythonツールです。Imaginary C2はHTTPサーバーをホストし、選択的に指定されたドメイン/IPへのHTTPリクエストをキャプチャします。さらに、このツールはキャプチャしたC2(コマンド&コントロール)応答や提供されたペイロードを簡単にリプレイできるようにすることを目的としています。
著者: Felix Weyne (ウェブサイト) (Twitter)
Imaginary C2は、マルウェアの行動(ネットワーク)分析を支援するPythonツールです。
Imaginary C2は、選択したドメイン/IPへのHTTPリクエストをキャプチャするHTTPサーバーをホストします。さらに、このツールはキャプチャしたC2(コマンド&コントロール)応答や配信ペイロードを簡単に再生できるようにすることを目的としています。
このツールを使用することで、アナリストはマルウェアに一貫したネットワーク応答(例:マルウェアが実行するC&C指示)を提供できます。また、分析時にオフラインとなっているドメイン/IPへのHTTPリクエストをキャプチャして検査することもできます。

Imaginary C2は、パケットキャプチャ(PCAP) または Fiddlerセッションアーカイブ をimaginary C2で解析可能な リクエスト定義 に変換する2つのスクリプトを提供します。
これらのスクリプトを使用すると、ユーザーはHTTPリクエストのURLとドメイン、およびHTTP応答を抽出できます。これにより、特定のHTTPリクエストに対するHTTP応答を迅速に再生できます。
要件: Imaginary C2はPython 2.7とWindowsが必要です。
モジュール: 現在、Imaginary C2には3つのモジュールと2つの設定ファイルが含まれています:
| ファイル名 | 機能 |
|---|---|
| 1. imaginary_c2.py | Pythonの簡易HTTPサーバーをホストする。メインモジュール。 |
| 2. redirect_to_imaginary_c2.py | WindowsのhostsファイルとWindowsの(IP)ルーティングテーブルを変更する。 |
| 3. unpack_fiddler_archive.py & unpack_pcap.py | パケットキャプチャからHTTP応答を抽出する。対応するHTTPリクエストのドメインとURLを設定ファイルに追加する。 |
| 4. redirect_config.txt | localhost(Python HTTPサーバー)にリダイレクトする必要があるドメインとIPを含む。 |
| 5. requests_config.txt | 対応するデータソースを含むURLパス定義を含む。 |
リクエスト定義: リクエスト設定で定義された各(HTTP)リクエストは、2つのパラメータで構成されます:
パラメータ1: HTTPリクエストURLパス (別名urlType)
| 値 | 意味 |
|---|---|
| fixed | URLパスをリテラル文字列として定義 |
| regex | URLパスにマッチする正規表現パターンを定義 |
パラメータ2: HTTP応答ソース (別名sourceType)
| 値 | 意味 |
|---|---|
| data | Imaginary C2はディスク上のファイルの内容を応答として返す |
| python | Imaginary C2はPythonスクリプトを実行する。Pythonスクリプトの出力がHTTP応答を定義する。 |
Imaginary C2は、TrickBotコンポーネントや設定ファイルのホスティングをシミュレートするために使用できます。さらに、TrickBotのWebインジェクションサーバーのシミュレートにも使用できます。
実行時、TrickBotダウンローダーはハードコードされた一連のIPに接続して、いくつかの設定ファイルを取得します。これらの設定ファイルの1つには、TrickBotプラグインサーバーの位置(IPアドレス)が含まれています。TrickBotダウンローダーはこれらのサーバーからプラグイン(モジュール)をダウンロードし、復号します。復号されたモジュールは_svchost.exe_インスタンスに注入されます。

TrickBotのプラグインの1つは_injectdll_と呼ばれ、TrickBotのWebインジェクションを担当するプラグインです。_injectdll_プラグインは定期的に更新されたWebインジェクション設定を取得します。設定内の各標的(銀行)Webサイトに対して、_webfakeサーバー_のアドレスが定義されています。被害者がTrickBotに標的とされた(銀行)Webサイトにアクセスすると、被害者のブラウザは秘密裏に_webfakeサーバー_にリダイレクトされます。_webfakeサーバー_は標的Webサイトのレプリカをホストしています。このレプリカWebサイトは通常、ソーシャルエンジニアリング攻撃で被害者を欺くために使用されます。
以下の動画は、_svchost.exe_内で実行されるTrickBotダウンローダーがimaginary C2に接続して2つのモジュールをダウンロードする様子を示しています。ダウンロードされた各モジュールは、新たに生成された_svchost.exe_インスタンスに注入されます。Webインジェクションモジュールはブラウザの保存済みパスワードを盗もうとし、盗んだパスワードをTrickBotサーバーに流出させます。標的の銀行Webサイトにアクセスすると、TrickBotはブラウザを_webfakeサーバー_にリダイレクトします。デモでは、_webfakeサーバー_は「デフォルトのImaginary C2サーバー応答」というメッセージをホストしています(フル動画)。
