
Инструмент командной строки для сканирования результатов поиска Google на наличие уязвимостей

Сканируйте результаты поиска Google (или других источников) на наличие уязвимостей.
dorkbot — это модульный инструмент командной строки для выполнения сканирования уязвимостей на наборах веб-страниц, возвращаемых поисковыми запросами Google или другими поддерживаемыми источниками. Он разделен на два набора модулей:
Цели сохраняются в базе данных по мере индексации. После сканирования создается стандартный отчет в формате JSON, содержащий все найденные уязвимости. Процессы индексации и сканирования могут выполняться отдельно или совместно в одной команде (максимум по одному каждого типа).
$ pip3 install dorkbot wapiti3
$ dorkbot -i google_api -o key=ваш_ключ_api_здесь -o engine=идентификатор_движка -o query="filetype:php inurl:id"
$ dorkbot -s wapiti
-h, --help Показать справку по программе (или указанному модулю)
--show-defaults Показать значения по умолчанию в выводе справки
usage: dorkbot [-c CONFIG] [-r DIRECTORY] [--source [SOURCE]]
[--show-defaults] [--count COUNT] [--random] [-h] [--log LOG]
[-v] [-V] [-d DATABASE] [-u] [--drop-tables]
[--retries RETRIES] [--retry-on RETRY_ON] [--show-stats] [-l]
[-n] [--list-sources] [--add-target TARGET]
[--delete-target TARGET] [--flush-targets] [-m] [-e]
[--list-sources] [--add-blocklist-item ITEM]
[--delete-blocklist-item ITEM] [--flush-blocklist] [-b]
[--fingerprint-max FINGERPRINT_MAX] [--list-blocklist]
[--flush-fingerprints] [-g] [-f] [--mark-unscanned MARK_UNSCANNED]
[-t] [-x] [-p SCANNER_ARG] [-s SCANNER] [-o INDEXER_ARG]
[-i INDEXER]
options:
-c, --config CONFIG Файл конфигурации
-r, --directory DIRECTORY
Рабочая директория dorkbot (расположение базы данных, инструментов, отчетов по умолчанию)
--source [SOURCE] Метка, связанная с целями
--show-defaults Показать значения по умолчанию в выводе справки
-h, --help Показать справку по программе (или указанному модулю)
--log LOG Путь к файлу журнала
-v, --verbose Включить подробное логирование (можно использовать несколько раз для увеличения подробности)
-V, --version Вывести версию
retrieval:
--count COUNT количество целей для получения (0/не задано = все)
--random получать цели в случайном порядке
database:
-d, --database DATABASE
Файл/URI базы данных
-u, --prune Применить снятие отпечатков и блок-лист без сканирования
--drop-tables Удалить и пересоздать таблицы
--retries RETRIES Количество повторных попыток при ошибке операции
--retry-on RETRY_ON Строки ошибок, при которых следует повторить попытку (можно использовать несколько раз)
--show-stats Показать общее количество целей и отпечатков (включая непросканированные)
targets:
-l, --list-targets Список целей в базе данных
-n, --unscanned-only Включать только непросканированные цели
--list-sources Список источников в базе данных
--add-target TARGET Добавить URL в базу целей
--delete-target TARGET
Удалить URL из базы целей
--flush-targets Удалить все цели
-m, --delete-on-match
Удалить цель, если она соответствует элементу блок-листа
-e, --delete-on-error
Удалить цель, если при обработке возникла ошибка
indexing:
-i, --indexer INDEXER
Используемый модуль индексатора
-o, --indexer-arg INDEXER_ARG
Передать аргумент модулю индексатора (можно использовать несколько раз)
scanning:
-s, --scanner SCANNER
Используемый модуль сканера
-p, --scanner-arg SCANNER_ARG
Передать аргумент модулю сканера (можно использовать несколько раз)
-t, --test Получить следующую сканируемую цель, но не отмечать её как просканированную
-x, --reset-scanned Сбросить статус сканирования всех целей
--mark-unscanned MARK_UNSCANNED
Сбросить статус сканирования указанной цели
fingerprints:
-g, --generate-fingerprints
Сгенерировать отпечатки для всех целей
-f, --flush-fingerprints
Удалить все сгенерированные отпечатки
--fingerprint-max FINGERPRINT_MAX
Максимальное количество совпадений по отпечатку перед удалением новых совпадений
blocklist:
--list-blocklist Список записей внутреннего блок-листа
--add-blocklist-item ITEM
Добавить ip/хост/шаблон регулярного выражения во внутренний блок-лист
--delete-blocklist-item ITEM
Удалить элемент из внутреннего блок-листа
--flush-blocklist Удалить все элементы внутреннего блок-листа
-b, --external-blocklist EXTERNAL_BLOCKLIST
Дополнительный внешний файл/база данных блок-листа (можно использовать несколько раз)
Драйверы базы данных:
Сканеры:
При необходимости dorkbot ищет инструменты в следующем порядке:
Все базы данных SQLite, инструменты и отчеты сохраняются в рабочей директории dorkbot, которая по умолчанию является текущей. Вы можете указать конкретную директорию с помощью флага --directory. Пути по умолчанию в этой директории:
Файлы конфигурации по умолчанию читаются из ~/.config/dorkbot/ (Linux / MacOS) или в папке Application Data (Windows), с учетом $XDG_CONFIG_HOME / %APPDATA%. Пути по умолчанию в этой директории:
Файл конфигурации (dorkbot.ini) можно использовать для предварительного заполнения некоторых флагов командной строки.
Пример dorkbot.ini:
[dorkbot] database=/opt/dorkbot/dorkbot.db [dorkbot.indexers.wayback] domain=example.com [dorkbot.scanners.arachni] path=/opt/arachni/bin report_dir=/tmp/reports
База данных целей хранит URL для сканирования и источники, откуда они поступили. Она отслеживает статус сканирования каждого URL, создавая список отпечатков для каждой уникальной страницы + набора параметров и сравнивая новые цели с существующими отпечатками. Отпечатки нужно генерировать только один раз; они будут генерироваться по мере необходимости. Отпечатки и статус сканирования могут быть сброшены независимо.