Запуск агентского сканирования через скрипт на целевом хосте
Альтернатива удалённому запуску агента со стороны сканера (по SSH или WinRM) - самостоятельный запуск скрипта на целевом хосте. Скрипт скачивает агента и CA-сертификат ExploitDog через прокси сетевого сканера, выполняет однократное сканирование и убирает за собой временные файлы.
Важно
Сетевой сканер должен быть развёрнут в защищённом сетевом сегменте: прокси сканера отдаёт бинарный файл агента и CA-сертификат по HTTP без шифрования.
Требования
Сетевой сканер:
- версия 1.6.0 или выше
Linux:
- Linux x86_64
bash,mktempcurlилиwget(скрипт сам выберет, что доступно)
Windows:
- Windows x86_64
- PowerShell 5.1 или выше (входит в состав Windows 10 / Server 2016 и новее)
- ExecutionPolicy, позволяющая запуск локальных скриптов (
RemoteSigned,Unrestrictedили запуск с-ExecutionPolicy Bypass)
Сетевой доступ с целевого хоста до:
- прокси сканера на порту из
PROXY_URL/-ProxyUrl
Параметры
В bash-версии передаются через переменные окружения, в PowerShell-версии - как именованные аргументы. Значения по смыслу одинаковые.
| Bash (env var) | PowerShell (параметр) | Обязательный | Дефолт | Откуда взять |
|---|---|---|---|---|
SECURE_PATH | SecurePath | да | — | значение exploitdog_net_scanner_secure_path из конфигурации Ansible сканера |
AGENT_TOKEN | AgentToken | да | — | токен агента, выпущенный в интерфейсе ExploitDog |
PROXY_URL | ProxyUrl | да | — | URL прокси сканера (например, http://10.0.0.5:8080) |
SERVER_URL | ServerUrl | нет | https://exploitdog.com | URL сервера ExploitDog, куда агент репортит результаты |
Что делает скрипт
- Проверяет архитектуру хоста. Поддерживается только
x86_64/AMD64; на других платформах падает с понятным сообщением. - Создаёт временную директорию с уникальным именем (
/tmp/exploitdog.XXXXXXна Linux,%TEMP%\exploitdog.XXXна Windows). Очистка регистрируется черезtrap EXIT(bash) или блокfinally(PowerShell) — директория удаляется при любом завершении: успех, ошибка, SIGINT/Ctrl+C. - Скачивает бинарный файл агента с
${PROXY_URL}/${SECURE_PATH}/embed/<os>/amd64 - Скачивает CA-сертификат ExploitDog с
${PROXY_URL}/${SECURE_PATH}/ca.pem. Нужен агенту для валидации TLS-соединения с сервером ExploitDog. - Запускает агента в режиме однократного сканирования (
--runOnce), передавая ему:- токен авторизации;
- путь к CA-сертификату;
- URL сервера ExploitDog (куда отправлять результаты);
- URL прокси сканера;
- путь к БД;
- debug-уровень логирования.
- Удаляет временную директорию после завершения работы агента; PowerShell-версия дополнительно сбрасывает заданные env vars текущего процесса.
Логи сканирования идут в stdout/stderr скрипта.
Linux (bash)
Пример запуска
bash
Скрипт
bash
Windows (PowerShell)
Пример запуска
powershell
Если ExecutionPolicy запрещает запуск, можно обойти её для одного вызова:
powershell
Скрипт
powershell