
Semplice framework di scansione delle vulnerabilità
Questo strumento mira a esaminare i file in una directory data per rilevare eventuali chiamate di funzioni non sicure, vulnerabili o pericolose. È progettato per essere estensibile e facile da comprendere; puoi "collegare e avviare" moduli che specificano criteri su quali tipi di file attiveranno quali "scansioni", in cui determini quale azione deve intraprendere per trovare e segnalare contenuti pericolosi all'interno di ciascun file.
Inoltre, può essere eseguito come strumento sperimentale di fuzzing automatico. Con moduli efficaci, il framework può essere adattato per fare fuzzing automatico di eseguibili. Puoi implementare fuzzer usando la classe generica fuzz.fuzzer.Fuzzer. ATTENZIONE: questa è una sottoclasse di scan.scanner.Scanner, ma ESEGUIRÀ tutti i file con permesso di esecuzione! Fai attenzione!
$ ./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
Questo è il nucleo dell'utilità; lo script Python che avvia tutti i threads e le scansioni dai command-line arguments forniti.
Questa directory ospita tutte le classi che possono essere duplicate ed estese per "scansioni" specifiche di file, in cui puoi fare praticamente qualsiasi cosa. Sono solo collocate in questa cartella per mantenere le cose ordinate.
Questo funge da configurazione globale; in questo file JSON specifichi quali scansioni vuoi eseguire per tutti i file elaborati e determini i criteri che vuoi usare per identificarli (estensione del file, MIME type o eseguibile). Tutti gli scanner elencati in questa configurazione dovrebbero essere solo scanner. Nessun fuzzer dovrebbe essere elencato qui!
Questo file è simile a vulnscan.json tranne per il fatto che contiene riferimenti a fuzzer e può essere usato per avviare automaticamente il fuzzing di una directory o di un file. ATTENZIONE: usare questa configurazione eseguirà TUTTI i file con permessi di esecuzione! Fai attenzione nell'usarlo!
Questo è tutto! L'idea alla base dello strumento è semplice; la vera potenza deriva dalla creazione di scanner per rilevare e segnalare qualsiasi contenuto o codice dannoso in grandi quantità di dati sconosciuti. Quindi aggiungi il tuo scanner!
Potrebbe essere necessario aumentare il numero massimo di file aperti sul tuo sistema per utilizzare tutti i fuzzer forniti con questo strumento. A causa dell'esecuzione simultanea dei fuzzer, un gran numero di file aperti si accumula rapidamente. Sulla maggior parte dei sistemi moderni, il limite è impostato a 1024, il che causerà un errore "Out of files" (EMFILE). Aumentare il numero massimo di file aperti per il tuo sistema dovrebbe risolvere il problema.
Questa directory contiene tutto ciò che è stato spesso usato per testare alcuni degli scanner. Puoi aggiungere come preferisci.