Agent Windows
Описание
Модуль agent/windows
позволяет на ОС Windows провести сканирование агентом , в режиме без установки. Подробнее про агент можно почитать в соответствующей документации (см. Об агенте).
Конфигурирование и запуск агента для Windows работает на основе WinRM.
WinRM (Windows Remote Management) — это протокол и служба, разработанные Microsoft для удаленного управления и выполнения задач на компьютерах под управлением операционных систем Windows. Он позволяет администраторам удаленно выполнять команды, настраивать системы, собирать информацию и управлять серверами через сеть.
Данный модуль производит следующие операции:
- Открывает сетевое соединение с целевым хостом по протоколу WinRM.
- Проверяет существование агента на хосте, если он есть - сверяет его версию с текущей. Если агент не требует обновления, то копирования агента по сети можно избежать.
- Копирует (если необходимо) и запускает на нем агента для выполнения сканирования.
- Получает результаты выполнения и отправляет их в систему .
- Закрывает сетевое соединение.
Принцип работы WinRM
- Протокол и порты:
- WinRM работает поверх HTTP (по умолчанию порт 5985) или HTTPS (по умолчанию порт 5986).
- Для защищенного соединения используется HTTPS с сертификатами.
- Клиент-серверная архитектура:
- Клиент отправляет запросы на удаленный компьютер через WinRM.
- Сервер (служба WinRM) обрабатывает запросы, выполняет команды и возвращает результаты.
- Режимы работы:
- Локальные команды - выполнение команд на локальном компьютере.
- Удаленные команды - использование WinRM для управления другим компьютером.
- Сценарии PowerShell Remoting - позволяют выполнять сложные задачи через сессии PowerShell.
Запуск службы WinRM
Для запуска службы WinRm выполните команду в PowerShell или командной строке с правами администратора:
winrm quickconfig
После выполнения команда:
- Включает службу WinRM.
- Открывает порт 5985 на брандмауэре.
- Настраивает параметры для локального и удаленного управления.
Запуск сканирования
Для запуска агентов необходимо сконфигурировать переменные user
, password
, agentToken
при настройке сканера.
При создании запроса данные переменные указываются только в виде секретов (secrets). Прямое указание переменных в запросе запрещено.
Для использования полей с типом Список
([]
) в запросе необходимо использовать конструкцию matrix
(матрица). (см. Матрицы).
Поля для default секции
number
Номер порта (от 0 до 65535).
Пример: 5985
string
Пользователь, заполняется в виде secret. Создается при настройке сканера.
boolean
Булево значение, отключает проверку SSL-сертификатов.
string
Пароль. Заполняется в запросе как secret.
string
Токен агента для отправки данных в систему. Заполняется в запросе как secret.
boolean
Булево значение, будет ли использоваться HTTPS-схема.
Поля для mutate секции
string
Номер порта (от 0 до 65535)
Пример: 5985
Результаты сканирования
string
IP-адрес целевого хоста.
string
Идентификатор устройства, на котором размещен агент
boolean
Показывает, успешно ли был запущен агент
Log[]
Список логов, поступивших от агента
Структура Log
string
Временная метка события.
string
Уровень логирования.
string
Текст сообщения/события, которое записывается в лог.
string
Детали ошибки.
string
Название компонента/коллектора, сгенерировавшего лог.
number
Время выполнения операции в секундах.
string
Версия слепка собранных данных.
Пояснение к примеру использования
1 задача: запуск TCP probe. С ее помощью определяются хосты в сети, у которых открыт порт 5985 для удаленного управления Windows-машинами службой WinRM.
2 задача: в случае нахождения хостов, указанных в задаче 1, вызывается модуль agent/windows@v1.
port
: 5985 — порт WinRM для подключения к Windows-машине.
user
и password
— учетные данные для аутентификации (берутся из секретов secrets.USER и secrets.PASSWORD).
insecure
: true — отключает проверку SSL-сертификатов.
agentToken
— токен для авторизации агента (из секрета secrets.AGENT_TOKEN).
runPolicy
: triggered — задача выполняется только при выполнении условия (доступность порта 5985).