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