PETEP ( PEnetration TEsting Proxy )是一个开源 Java 应用程序,用于创建流量分析和修改代理。 PETEP 的主要目标是提供一个有用的工具,通过设置代理和拦截器来管理客户端和服务器之间传输的流量,对具有各种协议(TCP/UDP)的应用程序执行渗透测试。
要求: Java 11+ (M1、M2 Mac 使用 Java 17+)
petep.sh (Linux、Mac) 或petep.bat (Windows) 运行 PETEP # Linux / Mac
chmod +x petep.sh
./petep.sh
# Windows
petep.bat提示:提供的运行脚本包含有用的变量,包括工作目录(用于petep.json文件)和 Java 可执行文件的路径。如果 PATH 中没有它或者您的计算机上使用多个 Java 版本,您可能需要更改它。
提示:对项目的大多数更改不会自动持久。当 PETEP 运行时,使用项目 → 保存来保存更改。
最新的 PETEP 版本支持以下协议:
并且有以下功能:
所有模块的详细说明可以在官方用户指南中找到。
PETEP 旨在成为基于 TCP/UDP 的应用程序协议的代理。为了使用 PETEP 作为应用程序的代理,通常有以下选项之一:
/etc/hosts文件并覆盖目标域的 IP 地址。如果目标应用程序不支持代理和/或无法使用其他方法(例如/etc/hosts )使应用程序通过 PETEP 进行通信,则可以使用 Deluder。
Deluder 是一个 Python 实用程序,它使用动态检测来拦截常见网络和加密库中的函数调用。请参阅 Deluder GitHub。
为了使用 Scripter 扩展,建议使用 GraalVM,因为该实现是使用 GraalVM Polyglot 构建的。从 GraalVM 22.2 开始,您可能需要使用gu install js在 GraalVM 中安装脚本语言。
为了使用现有的 HTTP 代理(例如 Burp Suite、OWASP Zap 等)测试 TCP 通信,您可以使用 PETEP 外部 HTTP 代理模块,该模块允许您通过这些代理建立 TCP 通信隧道。
外部HTTP代理模块将TCP通信包装在HTTP内部,通过代理发送。只要连接处于活动状态,就支持重复数据包,因此 Burp Intruder/Repeater 和 Zaproxy Requester/Fuzzer 也可用于 TCP 通信。
有关更多信息,请参阅用户指南 - 外部 HTTP 代理。
注意:如果您只想使用 PETEP 作为通过 HTTP 代理发送 TCP 的隧道,我建议将其设置为 GUI 模式,然后在 NO-GUI 模式下运行( PETEP [project_path] --nogui )。
PETEP 支持使用 SSL/TLS 和 STARTTLS 的 TCP 代理。为了使用这些,您必须提供证书,因为应用程序本身不会生成它。对于证书生成,可以使用许多工具,但其中之一是 Java 二进制文件的一部分 ( %JAVA_HOME%/bin/keytool )。
要在 JKS 密钥库中生成证书,可以使用以下命令:
keytool -genkey -alias petep -keyalg RSA -validity 3650 -keysize 4096 -keystore server.jks注意:建议将这些证书与项目一起存储(project_dir/conf/server.jks)
三种不同的指南将帮助您充分发挥 PETEP 的潜力:
可以使用 Java 开发扩展来实现对新协议的支持和/或实现用于拦截通信的新功能(包括图形用户界面)。
有关扩展开发的更多信息,请参阅开发指南。
PETEP 根据 GNU GPL 3.0 获得许可。