
Cadre simple de scan de vulnérabilités
Cet outil vise à parcourir les fichiers d'un répertoire donné pour détecter tout appel de fonction dangereux, vulnérable ou non sécurisé. Il est conçu pour être extensible et facile à comprendre ; vous pouvez utiliser des modules « plug-and-play » qui spécifient des critères sur les types de fichiers qui déclencheront quels « scans », dans lesquels vous déterminez l'action à entreprendre pour trouver et signaler le contenu dangereux dans chaque fichier.
De plus, il peut être exécuté comme un outil de fuzzing automatisé expérimental. Avec des modules efficaces, le framework peut être adapté pour fuzzer automatiquement des exécutables. Vous pouvez implémenter des fuzzers en utilisant la classe générique fuzz.fuzzer.Fuzzer. ATTENTION : il s'agit d'une sous-classe de scan.scanner.Scanner, mais il EXÉCUTERA tous les fichiers avec permission d'exécution ! Soyez prudent !
$ ./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
C'est le cœur de l'utilitaire ; le script Python qui lance tous les threads et scans à partir des command-line arguments donnés.
Ce répertoire héberge toutes les classes qui peuvent être dupliquées et étendues pour des « scans » de fichiers spécifiques, dans lesquels vous pouvez faire pratiquement tout ce que vous voulez. Elles sont simplement logées dans ce dossier pour garder les choses propres.
Ce fichier agit comme la configuration globale ; dans ce fichier JSON, vous spécifiez quels scans vous souhaitez exécuter pour tous les fichiers traités, et déterminez les critères que vous souhaitez utiliser pour identifier ces fichiers (extension de fichier, MIME type, ou exécutable). Tous les scanners listés dans cette configuration doivent être uniquement cela : des scanners. Aucun fuzzer ne doit y être listé !
Ce fichier est similaire à vulnscan.json sauf qu'il contient des références aux fuzzers et peut être utilisé pour lancer automatiquement le fuzzing d'un répertoire ou d'un fichier. ATTENTION : l'utilisation de cette configuration exécutera TOUS les fichiers avec des permissions d'exécution ! Soyez prudent en l'utilisant !
C'est tout ! L'idée derrière l'outil est simple ; la véritable puissance vient de la construction de scanners pour détecter et signaler tout contenu ou code malveillant dans de grandes quantités de données inconnues. Alors ajoutez votre propre scanner !
Vous devrez peut-être augmenter le nombre maximum de fichiers ouverts sur votre système pour utiliser tous les fuzzers fournis avec cet outil. Étant donné que les fuzzers sont exécutés simultanément, un grand nombre de fichiers ouverts s'accumule rapidement. Sur la plupart des systèmes modernes, la limite est fixée à 1024, ce qui provoquera une erreur « Out of files » (EMFILE). Augmenter le nombre maximum de fichiers ouverts pour votre système devrait résoudre le problème.
Ce répertoire contient tout ce qui a souvent été utilisé pour tester certains des scanners. Vous pouvez y ajouter ce que vous voulez.