PETEP ( PEnetration TEsting Proxy ) adalah aplikasi Java sumber terbuka untuk membuat proxy untuk analisis & modifikasi lalu lintas. Tujuan utama PETEP adalah menyediakan alat yang berguna untuk melakukan uji penetrasi aplikasi dengan berbagai protokol (pada TCP/UDP) dengan menyiapkan proxy dan interseptor untuk mengatur lalu lintas yang dikirimkan antara klien dan server.
Persyaratan: Java 11+ (untuk M1, M2 Mac gunakan Java 17+)
petep.sh
(Linux, Mac) atau petep.bat
(Windows) # Linux / Mac
chmod +x petep.sh
./petep.sh
# Windows
petep.bat
Tip: Skrip proses yang disediakan berisi variabel berguna, termasuk direktori kerja (untuk file petep.json
), dan jalur ke Java yang dapat dieksekusi. Anda mungkin perlu mengubahnya jika Anda tidak memilikinya di PATH atau Anda menggunakan beberapa versi Java di mesin Anda.
Tip: Sebagian besar perubahan pada proyek tidak bersifat persisten secara otomatis. Gunakan Proyek → Simpan untuk menyimpan perubahan, saat PETEP sedang berjalan.
Versi PETEP terbaru memiliki dukungan protokol berikut:
Dan ada beberapa fungsi sebagai berikut:
Penjelasan rinci tentang semua modul dapat ditemukan di Panduan Pengguna resmi.
PETEP dibuat sebagai proxy untuk protokol aplikasi yang dibangun di atas TCP/UDP. Untuk menggunakan PETEP sebagai proxy aplikasi Anda, biasanya ada salah satu opsi berikut:
/etc/hosts
dan mengganti alamat IP untuk domain target. Jika aplikasi target tidak mengetahui proxy dan/atau tidak mungkin menggunakan pendekatan lain (misalnya /etc/hosts
) untuk membuat aplikasi berkomunikasi melalui PETEP, Anda dapat menggunakan Deluder.
Deluder adalah utilitas Python, yang menggunakan instrumentasi dinamis untuk mencegat panggilan fungsi di jaringan umum dan perpustakaan enkripsi. Lihat Deluder GitHub.
Untuk menggunakan ekstensi Scripter, disarankan menggunakan GraalVM, karena implementasinya dibangun menggunakan GraalVM Polyglot. Sejak GraalVM 22.2, Anda mungkin perlu menginstal bahasa skrip di GraalVM menggunakan gu install js
.
Untuk menguji komunikasi TCP menggunakan proksi HTTP yang ada seperti Burp Suite, OWASP Zap, dll.), Anda dapat menggunakan modul proksi HTTP eksternal PETEP, yang memungkinkan Anda menyalurkan komunikasi TCP melalui proksi ini.
Modul proksi HTTP eksternal membungkus komunikasi TCP di dalam HTTP, yang dikirim melalui proksi. Pengulangan paket juga didukung selama koneksi masih hidup, sehingga Burp Intruder/Repeater dan Zaproxy Requester/Fuzzer juga dapat digunakan untuk komunikasi TCP.
Untuk informasi lebih lanjut, lihat Panduan Pengguna - Proxy HTTP Eksternal.
Catatan: Jika Anda hanya ingin menggunakan PETEP sebagai terowongan untuk mengirim TCP melalui proxy HTTP, saya sarankan mengaturnya dalam mode GUI dan kemudian menjalankannya dalam mode NO-GUI ( PETEP [project_path] --nogui
).
PETEP mendukung proksi TCP dengan SSL/TLS dan STARTTLS. Untuk menggunakannya, Anda harus memberikan sertifikat, karena aplikasi tidak menghasilkannya sendiri. Untuk pembuatan sertifikat, ada banyak alat yang dapat digunakan, namun salah satunya adalah bagian dari biner Java ( %JAVA_HOME%/bin/keytool
).
Untuk menghasilkan sertifikat di keystore JKS, Anda dapat menggunakan perintah berikut:
keytool -genkey -alias petep -keyalg RSA -validity 3650 -keysize 4096 -keystore server.jks
Catatan: Disarankan untuk menyimpan sertifikat ini bersama proyek (project_dir/conf/server.jks)
Ada tiga panduan berbeda yang akan membantu Anda menggunakan PETEP secara maksimal:
Dimungkinkan untuk mengembangkan ekstensi menggunakan Java untuk mengimplementasikan dukungan terhadap protokol baru dan/atau untuk mengimplementasikan fungsionalitas baru untuk menyadap komunikasi (termasuk antarmuka pengguna grafis).
Untuk informasi lebih lanjut tentang pengembangan ekstensi, silakan lihat Panduan Pengembang.
PETEP dilisensikan di bawah GNU GPL 3.0.