
Marco sencillo de escaneo de vulnerabilidades
Esta herramienta tiene como objetivo examinar archivos en un directorio dado para detectar llamadas a funciones inseguras, vulnerables o peligrosas. Está diseñada para ser extensible y fácil de entender; puedes "conectar y usar" módulos que especifiquen criterios sobre qué tipos de archivos activarán qué 'escaneos', en los cuales tú determinas qué acción debe tomar para encontrar y reportar contenido peligroso dentro de cada archivo.
Además, puede ejecutarse como una herramienta experimental de fuzzing automatizado. Con módulos efectivos, el framework puede adaptarse para fuzzear ejecutables automáticamente. Puedes implementar fuzzers usando la clase genérica fuzz.fuzzer.Fuzzer. ADVERTENCIA: esta es una subclase de scan.scanner.Scanner, pero ¡EJECUTARÁ todos los archivos con permiso de ejecución! ¡Ten cuidado!
$ ./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
Este es el núcleo de la utilidad; el script Python que inicia todos los [hilos] y escaneos a partir de los [argumentos de línea de comandos] dados.
Este directorio alberga todas las clases que pueden duplicarse y extenderse para "escaneos" de archivos específicos, en los que podrías hacer prácticamente lo que quieras. Solo están ubicadas en esta carpeta para mantener el orden.
Actúa como la configuración global; en este archivo JSON especificas qué escaneos deseas ejecutar para todos los archivos procesados, y determinas los criterios que quieras usar para identificar esos archivos (extensión de archivo, [tipo MIME] o ejecutable). ¡Todos los escáneres listados en esta configuración deben ser meramente eso: escáneres. No deben listarse fuzzers aquí!
Este archivo es similar a vulnscan.json, excepto que contiene referencias a fuzzers y puede usarse para iniciar el fuzzing automatizado de un directorio o archivo. ADVERTENCIA: ¡usar esta configuración ejecutará TODOS los archivos con permisos de ejecución! ¡Ten cuidado al usarlo!
¡Eso es todo! La idea detrás de la herramienta es simple; el verdadero poder proviene de construir escáneres para detectar y reportar cualquier contenido o código malicioso en grandes cantidades de datos desconocidos. ¡Así que añade tu propio escáner!
Es posible que necesites aumentar el número máximo de archivos abiertos en tu sistema para usar todos los fuzzers proporcionados con esta herramienta. Debido a que los fuzzers se ejecutan simultáneamente, rápidamente se acumula una gran cantidad de archivos abiertos. En la mayoría de los sistemas modernos, el límite es de 1024, lo que provocará un error "Out of files" (EMFILE). Aumentar el número máximo de archivos abiertos en tu sistema debería solucionar el problema.
Este directorio contiene todo lo que se ha utilizado a menudo para probar algunos de los escáneres. Puedes añadir lo que quieras.