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

Консольный клиент fuchsiactl

Консольный клиент fuchsiactl позволяет обращаться напрямую к узлу сканирования, минуя узел управления.

Использование

Утилита fuchsiactl может использоваться следующим образом:

fuchsiactl [flags]
fuchsiactl [command]

Доступны следующие команды:

Команда Описание
cancel_scan Прерывание указанного сканирования
completion Генерация скрипта автоматического дополнения для указанной командной оболочки
config Обновление и проверка настроек среды выполнения
create_scangroup Создание группы сканирований (экспериментальная функциональность)
delete_scan Удаление указанного сканирования и связанных с ним данных
dump_requests Сохранение всех HTTP-запросов конкретного сканирования в указанную директорию
dump_responses Сохранение всех HTTP-ответов конкретного сканирования в указанную директорию
export Экспорт ресурсов и конечных точек указанного сканирования
get_deps Вывод списка конечных точек и их тегов
get_resources Вывод списка ресурсов и их тегов
get_scangroup Вывод информации о группе сканирований с указанным идентификатором группы (экспериментальная функциональность)
get_tokenbudget_metrics Вывод показателей бюджета токенов для группы сканирований с указанным идентификатором (экспериментальная функциональность)
help Справка для любой команды
list_modules Вывод списка модулей
list_scangroups Вывод списка всех групп сканирований (экспериментальная функциональность)
list_scans Вывод списка сканирований
logs Вывод записей журнала
pause_scan Приостановка указанного сканирования
reload Перезагрузка конфигурации сервера
rescan Запуск нового сканирования, аналогичного указанному
resume_scan Возобновление приостановленного сканирования
scan Запуск нового сканирования
scan_stats Вывод сетевой статистики для конкретного сканирования

Доступны следующие флаги:

Флаг Тип Описание
-h, --help Не задан Справка для команд fuchsiactl
-v, --version Не задан Версия fuchsiactl

Глобальные флаги

Указанные в таблице ниже флаги доступны для всех команд.

Флаг Тип Описание
--addr string Адрес сокета fuchsiad. По умолчанию unix:///run/fuchsia/fuchsiad.sock или значение из файла конфигурации fuchsiactl при его наличии
--ca string Путь загрузки CA-сертификатов для верификации на сервере. По умолчанию используется системное хранилище сертификатов
--cert string Путь к клиентскому сертификату, который может быть использован при взаимодействии через протокол TLS
--insecure boolean Отключает верификацию сертификата сервера
--key string Путь к закрытому ключу клиентского сертификата
--tls boolean Включает протокол TLS для взаимодействия с сервером

Команда cancel_scan

Прерывает указанное сканирование.

Использование

fuchsiactl cancel_scan <scan_id> [flags]

Команда completion

Генерирует скрипт автоматического дополнения для указанной командной оболочки.

Использование

fuchsiactl completion [shell_type]

Типы командных оболочек и работа с ними

Командная оболочка bash

Для загрузки в текущей сессии:

source <(fuchsiactl completion bash)

Для будущих сессий (чтобы изменения вступили в силу запустите новую командную оболочку после выполнения команды):

fuchsiactl completion bash > /etc/bash_completion.d/fuchsiactl
fuchsiactl completion bash > $(brew --prefix)/etc/bash_completion.d/fuchsiactl

Командная оболочка fish

Для загрузки в текущей сессии:

fuchsiactl completion fish | source

Для будущих сессий (чтобы изменения вступили в силу запустите новую командную оболочку после выполнения команды):

fuchsiactl completion fish > ~/.config/fish/completions/fuchsiactl.fish

Командная оболочка powershell

Для загрузки в текущей сессии:

fuchsiactl completion powershell | Out-String | Invoke-Expression

Для будущих сессий добавьте команду выше в профиль powershell.

Командная оболочка zsh

Если автодополнение не было включено ранее в вашем окружении, то его необходимо запустить.

echo "autoload -U compinit; compinit" >> ~/.zshrc

Для загрузки в текущей сессии:

source <(fuchsiactl completion zsh)

Для будущих сессий (чтобы изменения вступили в силу запустите новую командную оболочку после выполнения команды):

fuchsiactl completion zsh > "${fpath[1]}/_fuchsiactl"
fuchsiactl completion zsh > $(brew --prefix)/share/zsh/site-functions/_fuchsiactl

Флаги

Флаг Тип Описание
--no-descriptions Не задан Отключает вывод описания

Команда config

Позволяет обновлять и проверять настройки среды выполнения. Запуск команды без флагов выводит текущие установленные значения.

Использование

fuchsiactl config [flags]

Флаги

Флаг Тип Описание
--concurrency int Максимальное количество параллельных процессов (0 — авто, -1 — сброс, по умолчанию не менять)
--scan-concurrency int Максимальное количество параллельных сканирований (0 — не ограничено, -1 — сброс, по умолчанию не менять)

Команда create_scangroup

Создаёт новую группу сканирований с указанным бюджетом токенов (экспериментальная функциональность).

Использование

fuchsiactl create_scangroup <token_budget_capacity> [flags]

Команда delete_scan

Удаляет указанное сканирование и связанные с ним данные.

Использование

fuchsiactl delete_scan <scan_id> [flags]

Команда dump_requests

Сохраняет все HTTP-запросы конкретного сканирования в указанную директорию. Команда имеет смысл только для сканирований, запущенных с флагом --dumpRequests.

Использование

fuchsiactl dump_requests [flags]

Флаги

Флаг Тип Описание
-o, --output string Директория для сохранения запросов
-s, --scan int Идентификатор сканирования. По умолчанию -1

Команда dump_responses

Сохраняет все HTTP-ответы конкретного сканирования в указанную директорию. Команда имеет смысл только для сканирований, запущенных с флагом --dumpResponses.

Использование

fuchsiactl dump_responses [flags]

Флаги

Флаг Тип Описание
-o, --output string Директория для сохранения ответов
-s, --scan int Идентификатор сканирования. По умолчанию -1

Команда export

Экспортирует ресурсы и конечные точки указанного сканирования.

Использование

fuchsiactl export <scan_id> [flags]

Флаги

Флаг Тип Описание
--dest string Имя файла, в котором будут храниться извлеченные данные

Команда get_deps

Выводит список конечных точек и их тегов.

Использование

fuchsiactl get_deps <scan_id> [flags]

Флаги

Флаг Тип Описание
--json boolean Вывод в формате NDJSON. По умолчанию false
--per-page int32 Количество конечных точек для вывода на один запрос API. По умолчанию 100

Команда get_resources

Выводит список ресурсов и их тегов.

Использование

fuchsiactl get_resources <scan_id> [flags]

Флаги

Флаг Тип Описание
--json boolean Вывод в формате NDJSON. По умолчанию false
--per-page int32 Количество ресурсов для вывода на один запрос API. По умолчанию 100

Команда get_scangroup

Выводит информацию о группе сканирований с указанным идентификатором группы (экспериментальная функциональность).

Использование

fuchsiactl get_scangroup <scangroup_id> [flags]

Команда get_tokenbudget_metrics

Выводит показатели бюджета токенов для группы сканирований с указанным идентификатором (экспериментальная функциональность).

Использование

fuchsiactl get_tokenbudget_metrics <scangroup_id> [flags]

Команда help

Выводит справку для указанной команды.

Использование

fuchsiactl help [command]

Команда list_modules

Выводит список модулей.

Использование

fuchsiactl list_modules [flags]

Команда list_scans

Выводит список сканирований.

Использование

fuchsiactl list_scans [flags]

Флаги

Флаг Тип Описание
--per-page int32 Количество конечных точек для вывода на один запрос API. По умолчанию 100

Команда list_scangroups

Выводит список всех групп сканирований (экспериментальная функциональность).

Использование

fuchsiactl list_scangroups [flags]

Команда logs

Выводит записи журнала.

Использование

fuchsiactl logs [flags]

Флаги

Флаг Тип Описание
--all boolean Выводит все записи журнала. По умолчанию false
--job int Идентификатор задачи. Перекрывает иные флаги. По умолчанию -1
--log-type log-type Вывод записей журнала конкретного типа. Допустимые типы: authChecker, httpRequests, httpRequestsFull, output (по умолчанию output). Тип httpRequestsFull доступен только для сканирований, запущенных с флагом --dumpRequests
--modules strings Список модулей, чьи записи журнала запрашиваются
--scan int Идентификатор сканирования. По умолчанию -1

Команда pause_scan

Приостанавливает сканирование.

Использование

fuchsiactl pause_scan <scan_id> [flags]

Команда reload

Перезагружает конфигурацию сервера.

Использование

fuchsiactl reload [flags]

Команда rescan

Запускает новое сканирование, аналогичное указанному.

Использование

fuchsiactl rescan <scan_id> [flags]

Флаги

Флаг Тип Описание
--login-proposal boolean Если в указанном сканировании участвовал модуль автоматической аутентификации в приложении, данный флаг позволит переиспользовать ранее созданные данным модулем теги в качестве браузерных сценариев в новом сканировании

Команда resume_scan

Возобновляет приостановленное сканирование.

Использование

fuchsiactl resume_scan <scan_id> [flags]

Команда scan

Запускает новое сканирование.

Использование

fuchsiactl scan [flags]

Флаги

Флаг Тип Описание
--anomaly-checker-config string Путь к конфигурационному файлу детектора аномалий
--cookie string Дополнительный файл cookie (передаётся на исходное имя хоста сканирования). Например: "name=value; name2=value2"
--depDedupUrlRegexp array Регулярные выражения для дедупликации конечных точек по URL-адресам. Для указания нескольких выражений используйте флаг несколько раз
--depDeduplication Перечислимый Режим дедупликации конечных точек (none, default, extended). По умолчанию default
--dirbusting boolean Включает дирбастинг со словарём по умолчанию. По умолчанию true
--domain-list array Список доменов, разделённый запятыми
--domain-scope Перечислимый Режим фильтрации доменов (any, same, subdomain, secondlevel/second-level). По умолчанию second-level
--dumpRequests boolean Режим сохранения запросов для их дальнейшего использования. Для последующего вывода запросов используются команды fuchsiactl logs с опцией --log-type httpRequestsFull или fuchsiactl dump_requests
--extra-setting string Передаёт дополнительные настройки в модули. Например --extra-setting=${module}:${name}=${value}. Параметр value должен быть указан в формате JSON. Например --extra-setting 'module_example:test_param="test_val"'
--file string Передаёт дополнительные файлы в модули. Например --file=${module}:${name}=${contents}, --file=${module}:${name}@${path}. Используйте «*» для передачи файла всем модулям
--header string Дополнительный HTTP-заголовок (передаётся на исходное имя хоста сканирования). Например: "X-Token: foobar"
--import string Путь к файлу с данными для импортированного сканирования. Указанный файл должен быть получен с помощью команды fuchsiactl export
--max-rps float Максимальное значение параметра RPS. По умолчанию не ограничен
--modules array Спецификации модулей, разделённые запятыми, в формате: module-name, %label, %role:label. По умолчанию %default. Подробнее в разделе.
--pageDedupUrlRegexp array Регулярные выражения для дедупликации страниц по URL-адресам. Для указания нескольких выражений используйте флаг несколько раз
--pageDeduplication boolean Включает дедупликацию страниц для модулей, которые принимают на вход страницы. По умолчанию true
--password string Пароль для базовой HTTP-аутентификации (передаётся на исходное имя хоста сканирования)
--php-entrypoints string Список конечных точек, разделённый запятыми
--proxy string Прокси-сервер. Например http://127.0.0.1:8080
--replace-in-json object Заменяет значение по пути path на новое (указанное по ключу value) в JSON-телах HTTP-запросов. Например --replace-in-json={"path": ["path", "to", "key"], "value": "newValue"}
--scanRequest string Путь к JSON-файлу , который содержит настройки сканирования
--scangroup int Запускает сканирование внутри группы сканирований с указаным идентификатором
--url string URL-адрес для сканирования
--static-crawler-max-depth int Максимальная глубина посещения страниц при статическом веб-краулинге. По умолчанию 3
--static-crawler-max-links int Максимальное количество посещённых модулем статического веб-краулинга страниц. По умолчанию 0 (неограниченно)
--url-blacklist array Регулярные выражения для URL-адресов, ограниченных для сканирования. Для указания нескольких выражений используйте флаг несколько раз
--username string Имя пользователя для базовой HTTP-аутентификации (передаётся на исходное имя хоста сканирования)

Флаг --modules

С помощью данного флага через запятую указываются спецификации для модулей, используемых для сканирования. Используйте префикс ! для исключения модуля или группы модулей из списка для сканирования.

Возможные форматы:

  • Для использования модулей:
    • module-name;
    • %label;
    • %role:label;
  • Для исключения модулей:
    • %label, !module-name;
    • %label, !%label;
    • %label, !%role:label.

Доступные значения метки label:

  • all — задействованы все модули;
  • default — задействованы все модули, кроме экспериментальных (значение по умолчанию);
  • browser — задействованы модули, использующие управляемый браузер.

Доступные роли role:

  • discovery — используются только модули анализа поверхности атаки;
  • fuzzing — используются только модули обнаружения недостатков.

Примеры использования:

  • Использовать для сканирования только модуль статического веб-краулинга.

    fuchsiactl scan ... --modules='static-crawler'
    
  • Использовать для сканирования все модули, кроме модуля статического веб-краулинга.

    fuchsiactl scan ... --modules='%all, !static-crawler'
    

    Пример ошибочного использования команды:

    fuchsiactl scan ... --modules='!static-crawler'
    
  • Использовать для сканирования только модули анализа поверхности атаки, не являющиеся экспериментальными.

    fuchsiactl scan ... --modules='%discovery:default'
    
  • Использовать для сканирования все модули, не являющиеся экспериментальными и не использующие управляемый браузер.

    fuchsiactl scan ... --modules='%default,!%browser'
    
  • Использовать для сканирования все модули, кроме модулей обнаружения недостатков.

    fuchsiactl scan ... --modules='%all, !%fuzzing:all'
    

    Альтернативный вариант:

    fuchsiactl scan ... --modules='%discovery:all'
    

Команда scan_stats

Выводит сетевую статистику для конкретного сканирования.

Использование

fuchsiactl scan_stats [flags]

Флаги

Флаг Тип Описание
-s, --scan int Идентификатор сканирования. По умолчанию -1