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

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

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

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

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

Категории

Все категории
Loading categories
msteams — Профиль Mythic C2, который туннелирует трафик агента через каналы Microsoft Teams с использованием Microsoft Graph API, с шифрованием AES256, джиттером, датами отключения и поддержкой прокси. | Kitploit
Инструменты/GitHubGitHub/whispergate/msteams
Оборонительные ИнструментыФреймворки для пентестаИнструменты шифрования/дешифрованияПост-эксплуатацияКомандование и УправлениеУтилиты и фреймворкиRed TeamingРазработка Полезной Нагрузки
GitHubwhispergate/msteams

msteams

Профиль Mythic C2, который туннелирует трафик агента через каналы Microsoft Teams с использованием Microsoft Graph API, с шифрованием AES256, джиттером, датами отключения и поддержкой прокси.

28172 дней назадЕщё не проверено

Популярное

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

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

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

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

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

msteams

C2-профиль для Mythic, использующий Microsoft Graph API для связи через канал Microsoft Teams.

Как это работает

root@kitploit:~
Agent <---> Microsoft Teams Channel <---> C2 Server <---> Mythic
  1. Агент аутентифицируется в Microsoft Entra ID через OAuth2 client credentials
  2. Публикует своё сообщение Mythic (в base64, зашифрованное AES) в канал Teams
  3. C2-сервер опрашивает канал через Graph API и пересылает новые сообщения в Mythic
  4. Ответ Mythic публикуется обратно в канал
  5. Агент опрашивает канал и забирает ответ

Связь выглядит как обычная активность в канале Teams.

Этот профиль поддерживает:

  • Kill Dates
  • Sleep Intervals with Jitter
  • AES256 Encryption
  • Proxy Configuration
  • Опциональную очистку сообщений (удаление сообщений после обработки)
  • Webhook fallback для отправки

Установка

С вашего сервера Mythic:

root@kitploit:~
sudo ./mythic-cli install github https://github.com/Whispergate/msteams

Или из локальной папки:

root@kitploit:~
sudo ./mythic-cli install folder /path/to/msteams

Настройка Entra ID

  1. App Registration — создайте в Azure Portal > Microsoft Entra ID > App registrations
  2. Client Secret — сгенерируйте в разделе Certificates & secrets
  3. API Permissions — предоставьте разрешения приложения и согласие администратора:
    • ChannelMessage.Read.All — чтение сообщений канала
    • ChannelMessage.Send — отправка сообщений канала
  4. Team & Channel IDs — получите через Graph Explorer или по ссылке на канал в клиенте Teams

Если ChannelMessage.Send недоступно, используйте Group.ReadWrite.All или настройте URL вебхука.

Полные инструкции по настройке приведены на странице документации Mythic после установки по адресу https://<your-mythic-server>:7443/docs/c2-profiles/msteams.

Конфигурация

Редактируется через UI Mythic: C2 Profiles > msteams > View/Edit Config.

ПараметрОписаниеПо умолчанию
tenant_idID тенанта (каталога) Entra ID
client_idID клиента регистрации приложения
client_secretСекрет клиента регистрации приложения
team_idID команды Teams
channel_idID канала Teams
webhook_urlОпциональный URL вебхука для отправки
graph_baseБазовый URL Graph APIhttps://graph.microsoft.com/v1.0
login_baseБазовый URL эндпоинта входаhttps://login.microsoftonline.com
poll_intervalСекунды между опросами10
clear_messagesУдалять сообщения после обработкиfalse
debugВключить подробное логированиеfalse

Совместимые агенты

  • Starburst — полная поддержка через транспорт MS Teams на базе WinHTTP

Любой агент Mythic, реализующий параметры C2-профиля msteams, может использовать этот профиль. Агенту необходимо:

  1. Аутентифицироваться в Graph API с использованием настроенных учётных данных
  2. Публиковать сообщения Mythic в base64 в настроенный канал Teams
  3. Опрашивать канал на предмет ответов от C2-сервера

Тестирование без Azure

Инфраструктура mock-тестирования включена в test/ для локального тестирования без учётной записи Azure или M365. Это позволяет протестировать весь C2-конвейер — включая скомпилированные импланты — против локального поддельного Graph API.

Настройка mock-сервера

  1. Скопируйте test/mock_server.py на ваш хост Mythic и запустите его:

    root@kitploit:~
    python3 mock_server.py
    

    Это запускает поддельный Graph API на порту 8443.

  2. Настройте C2-профиль msteams в Mythic с mock-значениями:

    root@kitploit:~
    {
      "tenant_id": "fake-tenant-id",
      "client_id": "fake-client-id",
      "client_secret": "fake-client-secret",
      "team_id": "fake-team-id",
      "channel_id": "fake-channel-id",
      "graph_base": "http://<mythic-host-ip>:8443/v1.0",
      "login_base": "http://<mythic-host-ip>:8443",
      "poll_interval": 3,
      "clear_messages": true,
      "debug": true
    }
    
  3. Запустите профиль msteams в UI Mythic.

Тестирование со скомпилированным имплантом (Starburst)

Чтобы протестировать реальный скомпилированный агент против mock-сервера, бинарник агента должен быть собран с жёстко прописанными IP и портом mock-сервера вместо реальных эндпоинтов Graph API. В коде агента Starburst (agent_code/src/transport/msteams.cc):

root@kitploit:~
// Change these for mock testing:
#define GRAPH_API_HOST  "<mythic-host-ip>"
#define LOGIN_HOST      "<mythic-host-ip>"
#define API_PORT        8443

// And change WINHTTP_FLAG_SECURE to 0 in WinHttpOpenRequest
// since the mock server uses plain HTTP:
        WINHTTP_DEFAULT_ACCEPT_TYPES,
        0

Затем переустановите Starburst, соберите payload с профилем msteams (используя те же fake tenant/client/team/channel IDs) и запустите его на Windows VM, имеющей доступ к хосту Mythic.

Не забудьте откатить эти изменения перед сборкой production payload:

root@kitploit:~
#define GRAPH_API_HOST  "graph.microsoft.com"
#define LOGIN_HOST      "login.microsoftonline.com"
#define API_PORT        443

        WINHTTP_DEFAULT_ACCEPT_TYPES,
        WINHTTP_FLAG_SECURE

Тестирование с fake-агентом (без компиляции)

Для быстрого теста конвейера без компиляции агента:

root@kitploit:~
GRAPH_URL=http://<mythic-host-ip>:8443 python test/fake_agent.py

Подробности см. в test/README.md.

Соображения OPSEC

  • Используйте выделенный приватный канал с минимальным числом участников
  • Включите clear_messages для очистки после обработки
  • Поддерживайте разумный poll_interval (10–30 с), чтобы избежать ограничения скорости
  • Все сообщения зашифрованы AES256 на уровне payload Mythic
  • Сообщения Teams НЕ имеют сквозного шифрования (видны администраторам тенанта и Microsoft)
  • Ограничение скорости Graph API составляет примерно 30 запросов в секунду на приложение на тенант

Структура файлов

root@kitploit:~
msteams/
  config.json                          # Mythic container config
  C2_Profiles/msteams/
    Dockerfile                         # Container image
    main.py                            # Mythic service entrypoint
    requirements.txt                   # Python dependencies
    rabbitmq_config.json               # RabbitMQ settings
    msteams/
      c2_functions/msteams.py          # C2Profile class + parameters
      c2_code/
        server.py                      # Main polling loop
        graph_client.py                # MS Graph API client
        mythic_client.py               # Mythic API forwarder
        config.py                      # Config singleton
        config.json                    # Default config values
  documentation-c2/msteams/_index.md   # Mythic docs page
  test/
    mock_server.py                     # Mock Graph API server
    fake_agent.py                      # Simulated agent for testing
    test_c2_server.py                  # Standalone C2 server test harness
    test_config.json                   # Test config with fake values
Скачать инструмент