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

Workstation и подключения

Машины операторов и то, как платформа достигает внешнего мира. Доступность: базовые функции в обоих изданиях; provisioning — EE.

Workstations

Workstation

Три вложенные вкладки:

  • Workstations — карточки машин со статусом жизненного цикла (planned → provisioning → ready), provider, SSH-доступность; действия: provisioning, рестарт, уничтожение, удаление, форс-удаление, журнал событий (автообновление во время переходов). Provisioning из шаблонов — EE.
  • Templates (EE) — создание шаблонов workstation, запрос машин из них; ограничено планом (Team и выше)
  • Pool & access — раздел org-админа: регистрируйте свои машины по SSH, затем выдавайте/отзывайте SSH-доступ по пользователям на основе ключевой пары платформы. Работает в обоих изданиях — аудит-трейл с дырами не имел бы ценности.

Флаг executor — любая машина пула может стать целью скана/исполнения (ws:<id>), в рамках одного проекта или всех. Переключается из Connections или через API workstation; события выдачи/отзыва аудируются.

Журнал действий — опционально на машину: shell-хук отправляет каждую выполненную команду (пользователь, cwd, код возврата, IP клиента) в платформу; лента видна админам и попутно служит для атрибуции действий по engagement.

Терминальная телеметрия (2026-10) — поверх журнала команд, отдельно на машину:

  • PTY-запись. При включении сессии login-shell машины работают под обёрткой script(1), и полный поток терминала доставляется на платформу тем же management-каналом (новых поверхностей на машине не открывается). Shell-хук помечает каждую выполняемую команду в потоке невидимой escape-последовательностью — запись нарезается на сегменты по командам: вывод команды сохраняется вместе с самой командой.
  • Терминальные сессии. Команды и записи коррелируются по терминалу (tty) в сессии: начало, активность, завершение. Повторное открытие того же терминала (переиспользование tty) закрывает старую сессию; после 30 минут тишины сессия уходит в idle.
  • Вложенные SSH. Команда, начинающая SSH-переход, фиксируется как hop в сессии. Строка команды доказывает намерение, а не факт — hop остаётся неподтверждённым, пока вывод терминала не подтвердит переход. Неопределённость показывается явно, а не угадывается.
  • Автонаполнение проекта. Вывод известных инструментов (nmap, netexec, secretsdump, hydra, GetUserSPNs/GetNPUsers, ntlmrelayx, psexec/wmiexec/smbexec/atexec, responder, smbclient, whatweb, ip addr, ip route, ss, dig, nslookup) разбирается в структурированные наблюдения. Однозначные факты (открытый порт, DNS-ответ, обнаруженный хост) попадают в проект автоматически — заполняя пробелы и не перезаписывая существующие данные. Всё, что требует интерпретации (учётные данные, контекст доступа), остаётся черновиком-наблюдением до аппрува оператором. Повторный запуск той же команды не создаёт дубликатов; у каждой обогащённой сущности есть переход к команде и сессии, из которых она получена.
  • Секреты в командах. Операторы вводят учётные данные прямо в команды (-p pass, -hashes :LM:NT, user:pass@host). Такой материал маскируется везде, где аудитория широка: в таймлайне — для всех, в деталях команд и происхождении наблюдений — для ролей без права просмотра секретов учётных данных (viewer, client). Сырая команда доступна ролям с этим правом, а разобранные хэши/пароли сами по себе не попадают в поля проекта — они остаются внутри наблюдения-черновика, пока оператор его не подтвердит.
  • Deconfliction. Активность, задания и ручные клеймы питают карту занятости на хостах. Клеймы теперь покрывают также диапазоны (CIDR-блоки) и задачи (свободный текст области работы) с TTL. Платформа предупреждает, когда операторы работают с одним хостом, сканируют пересекающиеся диапазоны или действуют внутри диапазона, зарезервированного коллегой, — предупреждения носят рекомендательный характер и никогда не блокируют оператора.

Подключения

Infra → Connections консолидирует все настройки исходящего исполнения:

  • SSH-цели атакующего — машины-executor, используемые сканами, массовыми запусками и pivot (хост, порт, учётные данные, jump/SOCKS-прокси, exec-прокси). См. Attacker SSH
  • Egress-прокси — пул исходящих прокси с маршрутизацией по категориям (AI, уведомления, provisioning, C2, DNS, pivot, SSH), round-robin/failover, health-чеки и нижний уровень исходящего трафика (в стиле HTTP_PROXY)
  • Машины-executor — машины пула со статусом, типом аутентификации, бейджем executor, пробой доступности Test и переключателем executor вкл/выкл

Ожидаемое поведение

  • Выдачи/отзывы ключей обновляют authorized_keys на машине за секунды и попадают в аудит-лог
  • Переключатель executor немедленно включает/исключает машину как цель скана

Ограничения

  • Регистрация требует SSH-доступности и учётных данных; платформа не создаёт машины в Core
  • Запись действий и PTY включаются отдельно на каждую машину
  • PTY-запись покрывает login-shell; панели мультиплексоров (tmux/zellij/screen) записываются только видимые — команды во всех панелях при этом ловятся shell-хуком. Полный по-панельный захват запланирован через агент воркстейшенов (см. Планы)
  • Вывод команды прикрепляется, когда следующая команда закрывает сегмент; самая последняя команда сессии подхватывается следующим харвестом