该工具旨在扫描给定目录中的文件,检测任何不安全、存在漏洞或危险的函数调用。它设计为可扩展且易于理解;你可以“即插即用”模块,这些模块指定触发何种“扫描”的文件类型标准,由你决定在每个文件中发现并报告危险内容时应采取的操作。
此外,它也可以作为实验性的自动模糊测试工具运行。在拥有有效模块的情况下,该框架可以适应自动对可执行文件进行模糊测试。你可以使用通用的 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 要扫描的文件和目录
optional arguments:
-h, --help 显示此帮助信息并退出
-s, --scan 使用配置文件进行漏洞扫描(vulnscan.json)。
-f, --fuzz 使用配置文件进行自动模糊测试(fuzzing.json)。
--follow 扫描目录时跟踪符号链接
-c CONFIG, --config CONFIG
指定自定义配置文件(默认:vulnscan.json)
-o OUTPUT, --output OUTPUT
将结果输出到指定的 JSON 文件
-sh, --scan-hidden 扫描隐藏文件和目录(默认)
-nh, --no-hidden 不扫描隐藏文件和目录
这是该工具的核心;Python 脚本,它根据给定的[命令行参数]启动所有[线程]和扫描。
该目录存放所有可复制和扩展的类,用于特定的文件“扫描”,你可以做任何你想做的事情。它们只是放在这个文件夹中保持整洁。
这类似于全局配置;在这个 JSON 文件中,你可以指定要对所有处理的文件运行哪些扫描,并确定用于识别这些文件的任何标准(文件扩展名、[MIME 类型]或可执行文件)。此配置中列出的所有扫描器应仅为扫描器。这里不应列出任何模糊器!
该文件类似于 vulnscan.json,但它包含对模糊器的引用,可用于开始自动对目录或文件进行模糊测试。警告:使用此配置将执行所有具有可执行权限的文件!请谨慎使用!
该目录存放经常用于测试某些扫描器的内容。你可以随意添加。
这个小模块作为 colorama 的包装器,旨在提供一些简写函数调用。
就这样!该工具背后的思路很简单;真正的力量来自于构建扫描器来检测和报告大量未知数据中的任何恶意内容或代码。所以,添加你自己的扫描器吧!
你可能需要增加系统上最大打开文件数,才能使用本工具提供的所有模糊器。由于模糊器同时运行,打开的文件数量会迅速增加。在大多数现代系统上,限制为 1024,这会导致“文件不足”(EMFILE)错误。增加系统的最大打开文件数应该可以解决这个问题。