Umbryx — Интеграции 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.pybackend/app/core/job_tracker.pybackend/app/plugins/loader.py
Области фронтенда:
frontend/src/views/ScansView.jsxfrontend/src/views/SystemModulesView.jsxfrontend/src/components/C2HostActionsPanel.jsxfrontend/src/views/HostsView.jsxfrontend/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-стрим.
Как использовать¶
Воркфлоу оператора:
- Откройте хост в представлении
Hostsили кликните узел вNetwork Map. - В панели деталей хоста найдите
Adaptix live actions. - Выберите сопоставленный live-агент Adaptix для этого хоста.
-
Выберите один из режимов исполнения:
-
Commandдля ad hoc-таскинга BOFдля команд BOF/AxScript из каталога-
Опционально выберите источник учётных данных:
-
учётные данные
umbryx, хранящиеся в проекте - учётные данные
c2, импортированные из Adaptix -
Запустите действие и просмотрите результат в:
-
инлайн-панели вывода
JobsHost 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}}
Как использовать паки на основе учётных данных:
- Выберите учётные данные из выпадающего списка.
- Оставайтесь в режиме
Command. - Кликните одну из кнопок
Credential packs. - Просмотрите сгенерированную команду.
- Запустите её напрямую или отредактируйте перед выполнением.
Режим BOF¶
Режим BOF работает, подтягивая полный каталог команд Adaptix с сервера и нормализуя его в поля UI.
Текущее поведение:
- команды сгруппированы по группе из апстрим-каталога
- формы параметров рендерятся из метаданных команды, когда они есть
- поля, выведенные из плейсхолдеров, создаются, когда апстрим-метаданные неполные
- срендеренная команда показывается перед выполнением
Это значит, что качество форм BOF зависит от метаданных команд, которые отдаёт Adaptix.
Интерактивный CLI¶
Блок интерактивного CLI — это лёгкая консоль задач для выбранного агента.
Он поддерживает:
- отправку строк команд напрямую агенту
- опрос недавней истории задач
- автообновление или ручное обновление статуса задач
Это пока не полноценный стриминговый shell-транспорт.
Массовые операции на основе учётных данных¶
В представлении Hosts панель Bulk Run теперь может использоваться как инструмент оркестрации для повторяющихся команд на основе учётных данных по многим выбранным хостам.
Как использовать:
- Выберите несколько хостов в
Hosts. - Откройте
Bulk Run. - Выберите источник исполнения через attacker SSH.
- Опционально выберите учётные данные проекта, релевантные выбранным хостам.
- Если учётные данные выбраны, используйте одну из сгенерированных кнопок пакетов операций.
- Запустите сгенерированную команду по выбранным хостам.
Текущие массовые паки операций сфокусированы на типовых рабочих процессах вроде:
- 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для команд на базе SSHwinrmдля команд на базе WinRMlocal_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.