このツールは、指定されたディレクトリ内のファイルを調べて、安全でない、脆弱性のある、または危険な関数呼び出しを検出することを目的としています。拡張可能で理解しやすいように設計されており、「スキャン」をトリガーするファイルの種類(例:ファイル拡張子、[MIMEタイプ]、実行可能ファイル)と、各ファイル内の危険なコンテンツを見つけて報告するためのアクションを指定するモジュールを「プラグアンドプレイ」できます。
また、実験的な自動ファジングツールとして実行することもできます。効果的なモジュールがあれば、このフレームワークを適応させて実行ファイルを自動的にファズできます。汎用的な 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に設定されており、これにより「ファイルが不足しています」(EMFILE) エラーが発生します。システムの最大オープンファイル数を増やすことで問題が解決するはずです。