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

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

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

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

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

Категории

Все категории
Loading categories
OneDrive-UDC2 — OneDrive как скрытый C2-транспорт для Cobalt Strike | Kitploit
Инструменты/GitHubGitHub/nmht3t/onedrive-udc2
Оборонительные ИнструментыФреймворки для пентестаПост-эксплуатацияБезопасность облачных средКомандование и УправлениеRed TeamingРазработка Полезной Нагрузки
GitHubnmht3t/onedrive-udc2

OneDrive-UDC2

OneDrive как скрытый C2-транспорт для Cobalt Strike

Репозиторий
348435 дней назадЕщё не проверено

Популярное

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

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

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

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

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

OneDrive UDC2

Пользовательский C2-канал Cobalt Strike, использующий OneDrive в качестве транспортного уровня.

Архитектура

Что вам нужно

  • Арендатор Microsoft Entra ID с пользователем, у которого есть OneDrive для бизнеса.
  • Регистрация приложения с разрешением приложения Files.ReadWrite.All.

Настройка

1. Зарегистрируйте приложение

В портале Azure перейдите в Регистрация приложений и создайте новое приложение:

  • Тип учётной записи: Один арендатор.
  • URI перенаправления: Оставьте пустым.

Запишите ID арендатора и ID клиента со страницы обзора.

2. Добавьте разрешение Graph

В разделе Разрешения API:

  1. Добавьте Microsoft Graph, затем , затем .
Разрешения приложения
Files.ReadWrite.All
  • Нажмите Предоставить согласие администратора.
  • 3. Создайте секрет клиента

    В разделе Сертификаты и секреты создайте новый секрет и скопируйте его значение.

    4. Создайте папки OneDrive

    В OneDrive пользователя создайте две папки: одну для входящих и одну для исходящих (например, c2inbox и c2outbox).

    5. Получите ID диска и папок

    Откройте Graph Explorer, войдите как этот пользователь и выполните:

    root@kitploit:~
    GET https://graph.microsoft.com/v1.0/me/drive/root/children
    

    Возьмите id каждой папки и driveId из любой записи в ответе JSON.

    Сборка

    root@kitploit:~
    cp server/config.json.example server/config.json
    

    Заполните server/config.json:

    ПолеЗначение
    tenant_idID арендатора Microsoft Entra ID
    client_idID клиента приложения
    client_secretЗначение секрета клиента
    drive_idID диска OneDrive
    inbox_folder_idID папки входящих
    outbox_folder_idID папки исходящих

    Затем соберите клиент:

    root@kitploit:~
    make
    

    Запуск

    Запустите ретранслятор (используйте screen или tmux, чтобы он продолжал работать при отключении терминала):

    root@kitploit:~
    python3 server/relay.py --config server/config.json --ts-addr <teamserver-ip> --ts-port <udc2-port>
    

    В Cobalt Strike создайте слушатель UDC2 на том же порту и загрузите client/bof.o.

    Параметры ретранслятора

    ФлагОписание
    --configПуть к config.json (обязательно)
    --ts-addrIP Teamserver
    --ts-portПорт слушателя UDC2
    --pollИнтервал опроса в секундах (по умолчанию 2.0)
    --stateПуть к файлу состояния (по умолчанию: <config>.state.json)
    --debugВключить отладочное логирование
    --cleanУдалить файл состояния и каталог spool, затем выйти

    Файл состояния, spool и блокировки

    Ретранслятор создаёт несколько файлов рядом с вашим конфигом, чтобы отслеживать состояние между перезапусками:

    • Файл состояния (config.json.state.json) — отслеживает, какие файлы входящих были обработаны, ожидающие загрузки и информацию о сессии beacon. Задайте пользовательский путь с помощью --state.
    • Каталог spool (config.json.state.json.spool/) — хранит данные ответов, которые ещё не были загружены в OneDrive. Если ретранслятор аварийно завершится во время загрузки, spool сохранит данные, чтобы повторить попытку при следующем запуске.
    • Файл блокировки (config.json.state.json.lock) — предотвращает запуск двух экземпляров ретранслятора с одним и тем же состоянием. Если вы видите Another relay holds the lock, а других ретрансляторов не запущено, блокировка устарела после сбоя.

    Сброс состояния ретранслятора

    Если локальное состояние ретранслятора повреждено или устаревшая блокировка мешает запуску, используйте --clean, чтобы очистить файл состояния и каталог spool, и ретранслятор запустится с чистого листа:

    root@kitploit:~
    python3 server/relay.py --config server/config.json --clean
    

    Файл блокировки сохраняется. Ретранслятор не будет очищать, пока запущен другой экземпляр. При следующем обычном запуске он повторно инициализируется и пропускает любые файлы входящих старше 30 минут.

    Вы также можете сбросить вручную, удалив файл состояния и каталог spool самостоятельно. Если файл блокировки устарел (ретранслятор не запущен), удалите и его.

    Демо

    POC

    Ссылки

    • Документация Cobalt Strike UDC2
    • Cobalt Strike ICMP UDC2
    • WKL Slack UDC2
    Скачать инструмент