Перейти к содержанию

Umbryx — Интеграции C2

Назначение

Scans / C2 Слой интеграции C2 подключает Umbryx к внешним системам управления и контроля и источникам событий.

Его роль — забирать или принимать операционное состояние и превращать его в сущности проекта.

Типичные результаты:

  • скомпрометированные хосты
  • учётные данные
  • findings
  • контекст активности и топологии

Поддерживаемые источники

Текущая встроенная поддержка включает:

  • Sliver
  • Mythic
  • Adaptix
  • универсальный приём событий через вебхуки проектов

Cobalt Strike на данном этапе не поддерживается

Поддержки Cobalt Strike в Umbryx на данном этапе нет — ни live-интеграции, ни приёма через вебхуки. Она есть в планах; см. Планы.

Основные компоненты

Области бэкенда:

  • backend/app/routers/c2/ (пакет: _integrations, _adaptix, _mythic, _sliver, _sessions, _exec, _sync)
  • backend/app/routers/webhooks.py
  • backend/app/core/job_tracker.py
  • backend/app/plugins/loader.py

Области фронтенда:

  • frontend/src/views/ScansView.jsx
  • frontend/src/views/SystemModulesView.jsx
  • frontend/src/components/C2HostActionsPanel.jsx
  • frontend/src/views/HostsView.jsx
  • frontend/src/views/NetworkView.jsx

Хранение данных

Конфигурация интеграций хранится в global_settings.

Чувствительные поля вроде токенов и паролей шифруются.

Функциональное покрытие

Реализовано

  • админ-CRUD для интеграций
  • область действия интеграций на проект
  • действия test и sync
  • приём событий через вебхуки
  • создание задач для C2-синхронизации
  • автосоздание хостов и консервативное обновление статуса хоста при приёме
  • создание учётных данных из данных, полученных из C2
  • инвентарь live-сессий на каждый проект
  • видимость интеграций в рамках проекта в представлениях сессий и C2
  • live-действия Adaptix из карточек хостов и с сетевой карты
  • выполнение команд Adaptix по совпавшим live-агентам
  • подтягивание каталога BOF Adaptix с сервера axscript/commands
  • нормализация BOF-команд в группы, шаблоны, параметры, значения по умолчанию и варианты выбора
  • объединённый выбор учётных данных из хранилищ Umbryx и Adaptix для рендеринга команд
  • интерактивная отправка задач в стиле CLI с опросом недавних задач для агентов Adaptix
  • активность хоста и создание задач для действий оператора, инициированных через Adaptix

Частично

  • качество параметров BOF зависит от того, сколько метаданных Adaptix возвращает по каждой команде
  • интерактивный CLI сейчас опрашивает недавние задачи, а не использует стриминговый транспорт
  • обогащение сессий топологией и attack path всё ещё ограничено
  • инвентарь, полученный из C2, не считается автоматической компрометацией
  • текущая семантика статусов хоста из C2:
  • только инвентарь -> up
  • live-футхолд пользователя/сессия -> access
  • live-контекст admin/root -> pwned
  • сильнейший привилегированный контроль (SYSTEM) -> owned

Примечания по охвату

  • более богатый сбор loot и артефактов из источников C2 — в разработке
  • более глубокий рабочий процесс оператора вокруг импортированных сессий и истории исполнения — в разработке

Задачи и коннекторы

Этот слой теперь участвует в оркестрации через:

  • коннектор c2_integration
  • коннектор c2_webhook
  • тип задачи c2_sync
  • тип задачи c2_exec

Это значит, что C2-синхронизация теперь часть той же модели оркестрации, что и сканы, действия топологии и работа, созданная плейбуками.

Выполнение, инициированное оператором Adaptix, также фиксируется в той же модели через задачи c2_exec и записи host_activity.

Live-действия Adaptix

Текущий операторский рабочий процесс, специфичный для Adaptix, поддерживает:

  • выбор live-агента, сопоставленного текущему хосту проекта
  • запуск ad hoc-команд в стиле shell через таскинг агента
  • подтягивание полного каталога команд BOF или AxScript с сервера Adaptix
  • рендеринг форм BOF из нормализованных метаданных параметров и плейсхолдеров шаблона
  • рендеринг команд с учётными данными Umbryx или Adaptix через плейсхолдеры вроде {{USER}}, {{PASS}}, {{DOMAIN}} и {{TARGET}}
  • опрос недавних задач агента для лёгкого интерактивного поведения в стиле CLI

Текущий путь исполнения использует таскинг агентов Adaptix, а не постоянный двунаправленный shell-стрим.

Как использовать

Воркфлоу оператора:

  1. Откройте хост в представлении Hosts или кликните узел в Network Map.
  2. В панели деталей хоста найдите Adaptix live actions.
  3. Выберите сопоставленный live-агент Adaptix для этого хоста.
  4. Выберите один из режимов исполнения:

  5. Command для ad hoc-таскинга

  6. BOF для команд BOF/AxScript из каталога
  7. Опционально выберите источник учётных данных:

  8. учётные данные umbryx, хранящиеся в проекте

  9. учётные данные c2, импортированные из Adaptix
  10. Запустите действие и просмотрите результат в:

  11. инлайн-панели вывода

  12. Jobs
  13. Host activity

Режим Command

Режим Command поддерживает:

  • ввод сырой команды
  • кнопки быстрых операций для типовых действий по хосту
  • паки операций на основе выбранных учётных данных
  • подстановку плейсхолдеров учётных данных

Быстрые операции сейчас подставляют типовые команды вроде:

  • идентификации хоста
  • сетевой информации
  • листинга процессов
  • вошедших в систему пользователей
  • перечисления локальных админов и шар на Windows
  • инспекции sudo и сервисов на Linux

Паки на основе учётных данных сейчас предзаполняют типовые команды удалённых операций вроде:

  • проверки SMB-аутентификации
  • проверки WinRM
  • WMI exec
  • PsExec
  • Evil-WinRM
  • проверки SSH
  • LDAP bind
  • проверок в стиле pass-the-hash SMB или WMI, если выбранные учётные данные — хэш

Поддерживаемые плейсхолдеры:

  • {{USER}}
  • {{PASS}}
  • {{DOMAIN}}
  • {{TARGET}}
  • {{HASH}}

Как использовать паки на основе учётных данных:

  1. Выберите учётные данные из выпадающего списка.
  2. Оставайтесь в режиме Command.
  3. Кликните одну из кнопок Credential packs.
  4. Просмотрите сгенерированную команду.
  5. Запустите её напрямую или отредактируйте перед выполнением.

Режим BOF

Режим BOF работает, подтягивая полный каталог команд Adaptix с сервера и нормализуя его в поля UI.

Текущее поведение:

  • команды сгруппированы по группе из апстрим-каталога
  • формы параметров рендерятся из метаданных команды, когда они есть
  • поля, выведенные из плейсхолдеров, создаются, когда апстрим-метаданные неполные
  • срендеренная команда показывается перед выполнением

Это значит, что качество форм BOF зависит от метаданных команд, которые отдаёт Adaptix.

Интерактивный CLI

Блок интерактивного CLI — это лёгкая консоль задач для выбранного агента.

Он поддерживает:

  • отправку строк команд напрямую агенту
  • опрос недавней истории задач
  • автообновление или ручное обновление статуса задач

Это пока не полноценный стриминговый shell-транспорт.

Массовые операции на основе учётных данных

В представлении Hosts панель Bulk Run теперь может использоваться как инструмент оркестрации для повторяющихся команд на основе учётных данных по многим выбранным хостам.

Как использовать:

  1. Выберите несколько хостов в Hosts.
  2. Откройте Bulk Run.
  3. Выберите источник исполнения через attacker SSH.
  4. Опционально выберите учётные данные проекта, релевантные выбранным хостам.
  5. Если учётные данные выбраны, используйте одну из сгенерированных кнопок пакетов операций.
  6. Запустите сгенерированную команду по выбранным хостам.

Текущие массовые паки операций сфокусированы на типовых рабочих процессах вроде:

  • SMB auth-свипов
  • WinRM-свипов
  • исполнения в стиле WMI или PsExec
  • SSH-свипов
  • проверок LDAP bind
  • проверок SMB или WMI в стиле pass-the-hash

Bulk run поддерживает эти плейсхолдеры в шаблонах команд:

  • {target}
  • {{TARGET}}
  • {{USER}}
  • {{PASS}}
  • {{DOMAIN}}
  • {{HASH}}

Этот путь сейчас идёт через транспорт attacker SSH, а не через live-таскинг C2-агентов.

Автоматические обновления состояния для массовых запусков на основе учётных данных:

  • Umbryx хранит сводку запуска для оператора в панели Bulk Run
  • успешные запуски могут апсертить cred_host_notes
  • роли доступа добавляются, когда команда подразумевает конкретный тип доступа
  • ssh для команд на базе SSH
  • winrm для команд на базе WinRM
  • local_admin для исполнения в стиле WMI или PsExec
  • хосты со статусом unknown или alive могут быть повышены до access при успешных запусках на основе учётных данных
  • если использовался хост атакующего проекта и оба эндпоинта есть на карте, Umbryx создаёт или обновляет ручное access-ребро в сетевом графе

Это делает массовое исполнение частью модели состояния оркестрации, а не просто одноразовым средством запуска команд.

Текущее поведение обогащения графа:

  • узел-источник: выбранный хост атакующего проекта
  • целевой узел: хост, на котором массовый запуск завершился успешно
  • тип ребра: выводится из пакета команд, например ssh, winrm или local_admin
  • состояние ребра: observed
  • верификация ребра: true
  • причина ребра: успешный массовый запуск на основе учётных данных с контекстом времени

Поддержка live-таскинга

Выполнение команд из панели действий по хосту доступно для Adaptix, Mythic и Sliver (ввод сырой командной строки и подстановка пакетов операций). Cobalt Strike на данном этапе не поддерживается (см. заметку выше). Вкладка C2 Ops в Platform Ops (Enterprise) дополнительно создаёт listener по требованию и генерирует полезные нагрузки для Adaptix.