Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
convoC2 — Инфраструктура C2 через Microsoft Teams. | Kitploit
Инструменты/GitHubGitHub/cxnturi0n/convoc2
Механизмы персистентностиОбход IDS/IPSЭксфильтрация данныхПост-эксплуатацияТестирование на ПроникновениеКомандование и УправлениеRed TeamingИнструмент Удаленного ДоступаРазработка Полезной Нагрузки
GitHubcxnturi0n/convoc2

convoC2

Инфраструктура C2 через Microsoft Teams.

7591191 год назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Репозиторий
Поделиться

convoC2

Содержание

  • Введение
  • Демонстрация
  • Использование
  • Требования
  • Вдохновение
  • Участие в разработке

Введение

Инфраструктура командования и управления (C2), которая позволяет Red Team-специалистам выполнять системные команды на скомпрометированных хостах через Microsoft Teams.
Она внедряет данные в скрытые теги span в сообщениях Microsoft Teams и эксфильтрует вывод команд через URL-адреса изображений в Adaptive Cards, инициируя исходящие запросы (out-of-band) к C2-серверу.
Отсутствие прямого взаимодействия между жертвой и атакующим в сочетании с тем, что жертва отправляет HTTP-запросы только на серверы Microsoft, а антивирусы не проверяют лог-файлы MS Teams, затрудняет обнаружение.

convoC2-Architecture

Демонстрация

Следующее видео демонстрирует использование сервера для управления двумя скомпрометированными хостами: один работает под управлением нового Teams на Windows 11, другой — под управлением старого Teams на Windows 10. В первом случае атакующий не находится в той же организации, что и жертва.

https://github.com/user-attachments/assets/d9fcccc1-de73-49cd-aaa7-df53303dbc6a

Примечание: В первом случае жертва уже приняла чат с внешним атакующим, но в реальном сценарии, когда атакующий впервые начинает чат с жертвой, жертве потребовалось бы подтвердить чат с атакующим (хотя это предупреждающее сообщение можно легко обойти, см. здесь). Это не проблема: поскольку сообщения в любом случае кэшируются в лог-файле, команды принимаются и выполняются, даже если жертва ещё не просмотрела или не приняла чат.

Использование

Сервер

wget https://github.com/cxnturi0n/convoC2/releases/download/v0.1.0-alpha/convoC2_server_amd64.tar.gz
tar -xzvf convoC2_server_amd64.tar.gz --one-top-level
root@convoC2-server-VPS:~# ./convoC2_server_amd64 -h
Usage of convoC2 server:
  -t, --msgTimeout  How much to wait for command output (default 30 s)
  -b, --bindIp      Bind IP address (default 0.0.0.0)

Агент

wget https://github.com/cxnturi0n/convoC2/releases/download/v0.1.0-alpha/convoC2_agent.tar.gz
tar -xzvf convoC2_agent.tar.gz --one-top-level
C:\Windows>convoC2_agent.exe -h
Usage of convoC2 agent:
  -v, --verbose   Verbose logging (default false)
  -s, --server    C2 server URL (i.e. http://10.11.12.13/)
  -t, --timeout   Teams log file polling timeout [s] (default 1)
  -w, --webhook   Teams Webhook POST URL
  -r, --regex     Regex to match command (default "<span[^>]*aria-label=\"([^\"]*)\"[^>]*></span>")

Требования

Чтобы всё заработало, вам потребуется настроить несколько вещей:

  • Создать канал Teams с Workflow Incoming Webhook: это место, куда будут поступать адаптивные карточки с выводом. Важно держать окно браузера с этим каналом открытым во время использования сервера, иначе сервер не будет получать сообщения от агентов.

WebhookChannel

  • Получить Ids и Auth Token: Teams инициализирует чат с помощью POST-запроса к https://teams.microsoft.com/api/chatsvc/emea/v1/threads с уникальными идентификаторами жертвы и атакующего в теле запроса. В ответе threadId будет возвращён в пути URL заголовка Location. Bearer-токен того же запроса используется для аутентификации в https://teams.microsoft.com/api/chatsvc/emea/v1/users/ME/conversations/<threadId>/messages, который является эндпоинтом для отправки сообщений. Таким образом, нам нужно всего лишь получить эти три вещи, а остальное сервер сделает сам.
  • Убедитесь, что у вас есть публично доступный хост, принимающий входящий HTTP-трафик на порту 80.
  • Teams должен быть запущен на хосте жертвы, в фоновом режиме тоже подойдёт.

После запуска сервера вы можете принимать новых агентов и управлять ими, используя ранее полученные данные для аутентификации. Пример использования смотрите в демо.

Создать канал Teams с Workflow Incoming Webhook

Прежде всего, вам нужно создать канал Teams.

CreateTeams

Щёлкните правой кнопкой мыши по трём точкам, затем нажмите «Workflows».

CreateTeams_1

В строке поиска введите «Webhook» и нажмите «Post to a channel when a webhook request is received».

CreateTeams_5

Продолжите с настройками по умолчанию и в конце скопируйте url.

Create_Teams_6

Получить Ids и Auth Token

Начните с поиска жертвы.

GetOrgIds

После выбора учётной записи жертвы, при перехвате запросов веб-прокси, вы можете отправить тестовое сообщение.

GetOrgIds_1

Сохраните два идентификатора, присутствующих в запросе api/chatsvc/emea/v1/threads, затем DROP-ните запрос. Auth-токеном будет Bearer-токен того же запроса.

GetOrgIds_2

Вдохновение

Эта инфраструктура была вдохновлена исследованием Teams GIFShell, проведённым Bobbyrsec.
Изначально моей целью было воспроизвести эту проблему, но решение оказалось частично исправленным. Исследование заключалось во внедрении команд в GIF-файлы, закодированные в Base64, но они больше не отображались корректно: вместо них в чате появлялась иконка повреждённого изображения, из-за чего жертва потенциально могла начать подозревать неладное.
После тестирования различных методов я заметил, что можно внедрять команды непосредственно в сообщения, а не в GIF-файлы или изображения: отправка нескольких изображений с большей вероятностью вызовет подозрение по сравнению с отправкой простых сообщений, верно? Изначально я рассматривал внедрение команд в теги вроде <script>, <meta> или пользовательские теги, но все они отфильтровывались. В конце концов, внедрение команд в атрибут aria-label тегов <span> с display:none увенчалось успехом: жертва видела только сообщение, но скрытая команда фактически отравляла лог-файл Teams.

Скачать инструмент