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 授權。