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 获得许可。