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

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

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

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

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

Категории

Все категории
Loading categories
GraphStrike — Cobalt Strike HTTPS-биконинг через Microsoft Graph API | Kitploit
Инструменты/GitHubGitHub/redsiege/graphstrike
Фреймворки для пентестаФреймворки для эксплойтовБезопасность облачных средКомандование и УправлениеRed TeamingБезопасность API
GitHubredsiege/graphstrike

GraphStrike

Cobalt Strike HTTPS-биконинг через Microsoft Graph API

Репозиторий
63599142 лет назадПроверено Kitploit

Популярное

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

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

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

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

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

GraphStrike

gscolor

Блог о релизе: GraphStrike: Использование Microsoft Graph API для исчезновения трафика Beacon
Блог разработчика: GraphStrike: Анатомия разработки наступательных инструментов

Введение

GraphStrike — это набор инструментов, который позволяет HTTPS Beacon от Cobalt Strike использовать Microsoft Graph API для связи C2. Весь трафик Beacon будет передаваться через два файла, созданные на сайте SharePoint атакующего, и все коммуникации от Beacon будут направляться на https://graph.microsoft.com:

image

GraphStrike включает в себя провизионер для создания необходимых ресурсов Azure для Cobalt Strike HTTPS через Graph API:

image

GraphStrike не создает платных ресурсов в Azure, поэтому использование GraphStrike или его провизионера не влечет дополнительных затрат.

Зачем?

Была опубликована информация об угрозах, касающаяся нескольких различных APT, использующих Microsoft Graph API и другие сервисы Microsoft для наступательных кампаний:

  1. BLUELIGHT - APT37/InkySquid/ScarCruft
  2. Graphite - APT28/Fancy Bear
  3. Graphican - APT15/Nickel/The Flea
  4. SiestaGraph - UNKNOWN

Злоумышленники продолжают использовать легитимные сервисы в нелегитимных целях. Использование домена с высоким рейтингом, такого как graph.microsoft.com, для связи C2 чрезвычайно эффективно и желательно, но часто сложно и трудоемко. Большинство C2-фреймворков не поддерживают методы получения или ротации токенов доступа, что не позволяет им использовать Graph API. Это может затруднить для красных команд воспроизведение этих техник и лишает защитников возможности наблюдать и разрабатывать сигнатуры для такого рода активности. GraphStrike стремится облегчить это бремя и предоставить надежный и повторяемый процесс использования Microsoft Graph API, сохраняя при этом знакомство и надежность пользовательского опыта Cobalt Strike.

Это External C2?

Технически нет. Ранее создав настоящий External C2 с использованием Graph API (который отправлял трафик Beacon в виде сообщений Microsoft Teams), бремя разработки, поддержки и интеграции пользовательского импланта, соответствующего спецификации External C2 и выполняющего задачу, слишком знакомо. GraphStrike вместо этого использует открытый User Defined Reflective Loader(UDRL) под названием AceLdr от Кайла Эйвери (адаптированный как 'GraphLdr' в этом проекте) для перехвата вызовов библиотеки WinINet, которые обычно делает Beacon, и манипулирования ими по мере необходимости для использования Graph API. Нет никакого пользовательского импланта или дополнительного процесса, о котором стоит говорить, просто процесс Beacon с парой перехваченных Windows API. На стороне сервера есть программа на Python3, которая переводит трафик Cobalt Strike Team Server в трафик Graph API и обратно.

Возможности

GraphStrike поддерживает почти все обычные действия Cobalt Strike, включая:

  1. Использование Proxychains через SOCKS-прокси Cobalt Strike (хотя это очень медленно...)
  2. Загрузка/выгрузка больших файлов
  3. BOFs, execute-assembly и т.д.

Это также включает интеграцию GraphStrike команд sleep, exit и remove для согласования времени сна GraphStrike Server с Beacon, а также удаление файлов в SharePoint при выходе или удалении Beacon.

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

Требования

GraphStrike требует следующего перед началом работы:

  1. Клиент Microsoft Azure с назначенной лицензией SharePoint/O365 и созданным сайтом. Стандартный сайт подойдет.
  2. Учетная запись Azure с правами глобального администратора в этом клиенте.
  3. Python 3.8-3.11Примечание №4 (и дополнительные зависимости, которые будут установлены в процессе настройки)

Правила брандмауэра

  1. Убедитесь, что каждая машина, на которой запущен клиент Cobalt Strike, может подключаться к машине Cobalt Strike team server на портах 443 и 5000.

Настройка

Обратите внимание на следующее перед началом процесса настройки:

1. Некоторые компоненты используют относительные пути для поиска других ресурсов. Пожалуйста, переходите в каталоги, как указано ниже.
2. Профиль Cobalt Strike можно редактировать ТОЛЬКО ДО шага 5 в процессе настройки нижеПримечание №1.

На машине, которая будет запускать Cobalt Strike team server:

  1. Клонируйте репозиторий.
  2. Из каталога репозитория выполните sudo setup/install_dependencies.sh для установки необходимых системных зависимостей.
  3. Выполните python3 -m venv virtual, а затем source virtual/bin/activate для создания и входа в виртуальное окружение.
  4. Перейдите в каталог setup и выполните pip3 install -r requirements.txt.
  5. Запустите ./provisioner.py new и завершите процесс настройки.
  6. Запустите Cobalt Strike team server, используя graphstrike.profile в качестве изменяемого профиля C2.
  7. Запустите экземпляр клиента Cobalt Strike (это можно сделать на клиентской машине или на машине TS и затем завершить его) и создайте HTTPS-прослушиватель Cobalt Strike на порту 443 с graph.microsoft.com в полях HTTPS Hosts и HTTPS Host(Stager).
  8. Вернитесь в основной каталог репозитория и запустите GraphStrike Server с помощью ./GraphStrike.py.

На ВСЕХ машинах, которые будут запускать клиент Cobalt Strike:

  1. Скопируйте каталог GraphStrike/client с машины TS на клиентскую машину. Это должно быть сделано ТОЛЬКО ПОСЛЕ завершения провизионирования!
  2. Импортируйте GraphStrike.cna в Cobalt Strike через Script Manager.
  3. Создайте полезные нагрузки Cobalt Strike, будь то сырой шелл-код или скомпилированные артефакты с помощью Artifact Kit или альтернативного фреймворка генерации полезных нагрузок. Пользователи Artifact Kit смотрите ниже!
  4. Профит.

Пользователи Artifact Kit

Из-за размера GraphLdr пользователям Artifact Kit потребуется перекомпилировать его с конкретными параметрами, чтобы GraphStrike был совместим с полезными нагрузками, созданными Artifact Kit. В частности, поля 'Stage Size' и 'RDLL Size' должны быть указаны для использования размера RDLL 100K. Ниже приведены два примера рабочего синтаксиса:

./build.sh pipe VirtualAlloc 505029 100 false false none /opt/cobaltstrike/artifacts
./build.sh peek HeapAlloc 492376 100 false true indirect /opt/cobaltstrike/artifacts

Очистка

На машине, на которой запущены TS + GraphStrike Server:

  1. Остановите GraphStrike server
  2. Вернитесь в каталог setup и выполните ./provisioner.py delete для удаления созданных ресурсов Azure.
Скачать инструмент