
Простой фреймворк для сканирования уязвимостей
Этот инструмент предназначен для просмотра файлов в заданном каталоге с целью обнаружения любых небезопасных, уязвимых или опасных вызовов функций. Он спроектирован как расширяемый и лёгкий для понимания; вы можете «подключать и использовать» модули, которые задают критерии, при каких типах файлов какие «сканирования» будут запускаться, и определять, какое действие следует предпринять для поиска и сообщения об опасном содержимом в каждом файле.
Кроме того, его можно запускать как экспериментальный инструмент автоматизированного фаззинга. При наличии эффективных модулей фреймворк можно адаптировать для автоматического фаззинга исполняемых файлов. Вы можете реализовать фаззеры, используя общий класс fuzz.fuzzer.Fuzzer. ПРЕДУПРЕЖДЕНИЕ: это подкласс scan.scanner.Scanner, но он запускает все файлы с разрешением на выполнение! Будьте осторожны!
$ ./peach.py -h
usage: peach.py [-h] [-s] [-f] [--follow] [-c CONFIG] [-o OUTPUT] [-sh] [-nh]
paths [paths ...]
positional arguments:
paths files and directories to scan
optional arguments:
-h, --help show this help message and exit
-s, --scan use configuration file for vulnerability scanning
(vulnscan.json).
-f, --fuzz use configuration file for automated fuzzing
(fuzzing.json).
--follow follow symbolic links when scanning directories
-c CONFIG, --config CONFIG
specify a custom configuration file (default:
vulnscan.json)
-o OUTPUT, --output OUTPUT
output results to the specified JSON file
-sh, --scan-hidden Scan hidden files and directories (default)
-nh, --no-hidden Do not scan hidden files and directories
Это ядро утилиты; скрипт на Python, который запускает все [потоки] и сканирования на основе заданных [аргументов командной строки].
В этом каталоге находятся все классы, которые можно дублировать и расширять для конкретных «сканирований» файлов, в ходе которых вы можете делать практически всё что угодно. Они просто размещены в этой папке для порядка.
Этот файл действует как глобальная конфигурация; в этом JSON-файле вы указываете, какие сканирования запускать для всех обрабатываемых файлов, и задаёте любые критерии для идентификации этих файлов (расширение файла, [MIME-тип] или исполняемый файл). Все сканеры, перечисленные в этой конфигурации, должны быть именно сканерами. Фаззеры здесь указывать не следует!
Этот файл похож на vulnscan.json, за исключением того, что он содержит ссылки на фаззеры и может использоваться для автоматического фаззинга каталога или файла. ПРЕДУПРЕЖДЕНИЕ: использование этой конфигурации приведёт к выполнению ВСЕХ файлов с разрешениями на выполнение! Будьте осторожны!
Вот и всё! Идея, лежащая в основе инструмента, проста; настоящая мощь проявляется при создании сканеров для обнаружения и сообщения о любом вредоносном содержимом или коде в больших объёмах неизвестных данных. Так что добавляйте свой собственный сканер!
Возможно, вам потребуется увеличить максимальное количество открытых файлов в вашей системе, чтобы использовать все фаззеры, предоставляемые этим инструментом. Из-за того, что фаззеры запускаются одновременно, быстро накапливается большое количество открытых файлов. В большинстве современных систем ограничение установлено на уровне 1024, что вызовет ошибку «Out of files» (EMFILE). Увеличение максимального количества открытых файлов для вашей системы должно решить проблему.
В этом каталоге хранится всё, что часто использовалось для тестирования некоторых сканеров. Вы можете добавлять в него всё, что захотите.