
Imaginary C2 — это инструмент на Python, предназначенный для помощи в поведенческом (сетевом) анализе вредоносного ПО. Imaginary C2 запускает HTTP-сервер, который перехватывает HTTP-запросы к выборочно заданным доменам/IP-адресам. Кроме того, инструмент упрощает воспроизведение перехваченных ответов/загруженных полезных нагрузок от командных центров управления (C2).
автор: Felix Weyne (веб-сайт) (Twitter)
Imaginary C2 — это python-инструмент, предназначенный для помощи в поведенческом (сетевом) анализе вредоносного ПО.
Imaginary C2 запускает HTTP-сервер, который перехватывает HTTP-запросы к выборочно выбранным доменам/IP-адресам. Кроме того, инструмент упрощает воспроизведение захваченных ответов Command-and-Control (C&C) и переданных полезных нагрузок.
С помощью этого инструмента аналитик может подсовывать вредоносному ПО согласованные сетевые ответы (например, C&C-инструкции для выполнения). Кроме того, аналитик может перехватывать и просматривать HTTP-запросы к домену/IP, который на момент анализа недоступен.

Imaginary C2 предоставляет два скрипта для преобразования захватов пакетов (PCAP) или архивов сессий Fiddler в определения запросов, которые могут быть обработаны Imaginary C2.
С помощью этих скриптов пользователь может извлекать URL-адреса и домены HTTP-запросов, а также HTTP-ответы. Таким образом, можно быстро воспроизводить HTTP-ответы для заданного HTTP-запроса.
Требования: Imaginary C2 требует Python 2.7 и Windows.
Модули: В настоящее время Imaginary C2 содержит три модуля и два конфигурационных файла:
Определения запросов: Каждый (HTTP) запрос, определенный в конфигурации запросов, состоит из двух параметров:
Параметр 1: Путь URL HTTP-запроса (также известен как urlType)
| Значение | Описание |
|---|---|
| fixed | Определяет путь URL как литеральную строку |
| regex | Определяет регулярное выражение для сопоставления с путем URL |
Параметр 2: Источник HTTP-ответа (также известен как sourceType)
| Значение | Описание |
|---|---|
| data | Imaginary C2 будет отвечать содержимым файла на диске |
| python | Imaginary C2 запустит Python-скрипт. Вывод Python-скрипта определяет HTTP-ответ. |
Imaginary C2 можно использовать для симуляции размещения компонентов и конфигурационных файлов TrickBot. Кроме того, его можно использовать для симуляции серверов веб-инъекций TrickBot.
При запуске загрузчик TrickBot подключается к набору жестко закодированных IP-адресов для получения нескольких конфигурационных файлов. Один из этих конфигурационных файлов содержит местоположения (IP-адреса) серверов плагинов TrickBot. Загрузчик TrickBot загружает плагины (модули) с этих серверов и расшифровывает их. Расшифрованные модули затем внедряются в экземпляр svchost.exe.

Один из плагинов TrickBot называется injectdll, он отвечает за веб-инъекции TrickBot. Плагин injectdll регулярно получает обновленный набор конфигураций веб-инъекций. Для каждого целевого (банковского) веб-сайта в конфигурации определяется адрес webfake сервера. Когда жертва заходит на (банковский) веб-сайт, который является целью TrickBot, ее браузер незаметно перенаправляется на webfake сервер. Webfake сервер содержит копию целевого веб-сайта. Эта копия обычно используется в атаке социальной инженерии для обмана жертвы.
На видео ниже показан загрузчик TrickBot, работающий внутри svchost.exe и подключающийся к Imaginary C2 для загрузки двух модулей. Каждый загруженный модуль внедряется в новый экземпляр svchost.exe. Модуль веб-инъекций пытается украсть сохраненные пароли браузера и передать украденные пароли на сервер TrickBot. При посещении целевого банковского веб-сайта TrickBot перенаправляет браузер на webfake сервер. В демонстрации webfake сервер показывает сообщение: "Default imaginary C2 server response" (полное видео).

| Имя файла |
|---|
| Назначение |
|---|
| 1. imaginary_c2.py | Запускает простой HTTP-сервер Python. Основной модуль. |
| 2. redirect_to_imaginary_c2.py | Изменяет файл hosts Windows и таблицу маршрутизации Windows (IP). |
| 3. unpack_fiddler_archive.py & unpack_pcap.py | Извлекает HTTP-ответы из захватов пакетов. Добавляет соответствующие домены HTTP-запросов и URL-адреса в конфигурационные файлы. |
| 4. redirect_config.txt | Содержит домены и IP-адреса, которые необходимо перенаправлять на localhost (на HTTP-сервер Python). |
| 5. requests_config.txt | Содержит определения путей URL с соответствующими источниками данных. |