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 Polyglot を使用して構築されているため、GraalVM を使用することをお勧めします。 GraalVM 22.2 以降では、 gu install js
使用して GraalVM にスクリプト言語をインストールする必要がある場合があります。
Burp Suite、OWASP Zap などの既存の HTTP プロキシを使用して TCP 通信をテストするには、PEEP 外部 HTTP プロキシ モジュールを使用できます。これにより、これらのプロキシを介して TCP 通信をトンネリングできます。
外部 HTTP プロキシ モジュールは、TCP 通信を HTTP 内にラップし、プロキシ経由で送信します。接続が生きている限りパケットの繰り返しもサポートされるため、Burp Intruder/Repeater および Zaproxy Requester/Fuzzer も TCP 通信に使用できます。
詳細については、「ユーザー ガイド - 外部 HTTP プロキシ」を参照してください。
注: HTTP プロキシ経由で TCP を送信するためのトンネルとして PETEP のみを使用したい場合は、PEEP を GUI モードで設定してから、NO-GUI モード ( PETEP [project_path] --nogui
) で実行することをお勧めします。
PETEP は、SSL/TLS および STARTTLS を使用した TCP プロキシをサポートします。これらを使用するには、アプリケーション自体が証明書を生成しないため、証明書を提供する必要があります。証明書の生成には使用できるツールが多数ありますが、そのうちの 1 つは 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 を最大限に活用するのに役立つ 3 つの異なるガイドがあります。
Java を使用して拡張機能を開発し、新しいプロトコルのサポートを実装したり、通信 (グラフィカル ユーザー インターフェイスを含む) を傍受する新しい機能を実装したりすることができます。
拡張機能の開発の詳細については、開発ガイドを参照してください。
PETEP は GNU GPL 3.0 に基づいてライセンスされています。