Шаблоны, задачи и отчёты
В актуальной серверной документации основной рабочий сценарий строится вокруг шаблонов, запуска шаблонов и последующего чтения отчётов по задачам.
Шаблоны
| Метод | Путь | Назначение |
|---|---|---|
GET | /templates | Получить список шаблонов. |
POST | /templates | Создать шаблон. |
GET | /templates/{template_id} | Получить шаблон. |
PUT | /templates/{template_id} | Обновить шаблон. |
DELETE | /templates/{template_id} | Удалить шаблон. |
DELETE | /templates | Массово удалить шаблоны. |
POST | /templates/{template_id}/start | Запустить шаблон. |
PUT | /templates/schedule | Включить или выключить расписание шаблона. |
GET | /templates/{template_id}/diff | Получить diff по шаблону. |
GET | /templates/{template_id}/tasks | Получить задачи, созданные из шаблона. |
Фильтры списка шаблонов
nametype
Примеры типов в серверной документации
По примерам из docs/nrunner/template серверная документация покрывает как минимум:
pentestwhiteboxagent-inventoryddos
Пример создания шаблона
json
{
"name": "weekly-pentest",
"type": 5,
"assets": [1],
"groups": [],
"params": {
"white_box": {
"credential_id": 2
}
},
"enabled": true
}Задачи
| Метод | Путь | Назначение |
|---|---|---|
GET | /tasks/active | Получить активные задачи. |
GET | /tasks/archived | Получить архивные задачи. |
GET | /tasks/{task_id} | Получить карточку задачи. |
POST | /tasks/{task_id}/cancel | Отменить задачу. |
DELETE | /tasks | Массово удалить задачи по ids. |
Для списков задач в серверной документации описаны query-параметры:
typenamestatuslimitpage
Отчёты по задачам
Серверная документация описывает большой блок report-эндпоинтов.
Общая точка входа
| Метод | Путь | Назначение |
|---|---|---|
GET | /tasks/{task_id}/report | Получить envelope отчёта задачи. |
Pentest
| Метод | Путь |
|---|---|
GET | /tasks/{task_id}/report/pentest/overview |
GET | /tasks/{task_id}/report/pentest/cves |
GET | /tasks/{task_id}/report/pentest/ports |
GET | /tasks/{task_id}/report/pentest/finding-groups |
GET | /tasks/{task_id}/report/pentest/findings/{finding_id} |
GET | /tasks/{task_id}/report/pentest/export |
Agent Inventory
| Метод | Путь |
|---|---|
GET | /tasks/{task_id}/report/agent-inventory/overview |
GET | /tasks/{task_id}/report/agent-inventory/assets |
GET | /tasks/{task_id}/report/agent-inventory/assets/{report_asset_id}/packages |
GET | /tasks/{task_id}/report/agent-inventory/export |
WhiteBox
| Метод | Путь |
|---|---|
GET | /tasks/{task_id}/report/whitebox/overview |
GET | /tasks/{task_id}/report/whitebox |
GET | /tasks/{task_id}/report/whitebox/assets/{asset_id}/findings |
GET | /tasks/{task_id}/report/whitebox/export |
DDoS
| Метод | Путь |
|---|---|
GET | /tasks/{task_id}/report/ddos/overview |
Diff-отчёты
Дополнительно в серверной документации есть маршруты сравнения:
| Метод | Путь |
|---|---|
GET | /reports/diff/pentest/assets/{asset_id} |
GET | /reports/diff/agent-inventory/assets/{asset_id} |
GET | /reports/diff/whitebox/assets/{asset_id} |
Они используют query-параметры current_task_id и, при необходимости, previous_task_id.