PETEP ( PEnetration TEsting Proxy ) est une application Java open source permettant de créer des proxys pour l'analyse et la modification du trafic. L'objectif principal de PETEP est de fournir un outil utile pour effectuer des tests d'intrusion d'applications avec différents protocoles (sur TCP/UDP) en mettant en place des proxys et des intercepteurs pour gérer le trafic transmis entre le client et le serveur.
Exigences : Java 11+ (pour M1, M2 Mac, utilisez Java 17+)
petep.sh
(Linux, Mac) ou petep.bat
(Windows) # Linux / Mac
chmod +x petep.sh
./petep.sh
# Windows
petep.bat
Astuce : les scripts d'exécution fournis contiennent des variables utiles, notamment le répertoire de travail (pour le fichier petep.json
) et le chemin d'accès à l'exécutable Java. Vous devrez peut-être le modifier si vous ne l'avez pas dans PATH ou si vous utilisez plusieurs versions de Java sur votre ordinateur.
Astuce : La plupart des modifications apportées au projet ne sont pas automatiquement persistantes. Utilisez Projet → Enregistrer pour enregistrer les modifications lorsque PETEP est en cours d'exécution.
La dernière version de PETEP prend en charge le protocole suivant :
Et il y a les fonctionnalités suivantes :
Des descriptions détaillées de tous les modules peuvent être trouvées dans le guide de l'utilisateur officiel.
PETEP est conçu pour être un proxy pour les protocoles d'application construits sur TCP/UDP. Afin d'utiliser PETEP comme proxy pour votre application, il existe généralement l'une des options suivantes :
/etc/hosts
et remplacer l'adresse IP du domaine cible. Si l'application cible ne prend pas en charge le proxy et/ou s'il n'est pas possible d'utiliser d'autres approches (par exemple /etc/hosts
) pour faire communiquer l'application via PETEP, vous pouvez utiliser Deluder.
Deluder est un utilitaire Python qui utilise une instrumentation dynamique pour intercepter les appels de fonctions dans les bibliothèques de réseau et de chiffrement courantes. Voir Deluder GitHub.
Afin d'utiliser l'extension Scripter, il est recommandé d'utiliser GraalVM, car l'implémentation est construite à l'aide de GraalVM Polyglot. Depuis GraalVM 22.2, vous devrez peut-être installer le langage de script dans GraalVM à l'aide de gu install js
.
Afin de tester la communication TCP à l'aide de proxys HTTP existants tels que Burp Suite, OWASP Zap, etc.), vous pouvez utiliser le module proxy HTTP externe PETEP, qui vous permet de tunneler la communication TCP via ces proxys.
Le module proxy HTTP externe enveloppe la communication TCP dans HTTP, qui est envoyée via le proxy. La répétition des paquets est également prise en charge tant que la connexion est active, donc Burp Intruder/Repeater et Zaproxy Requester/Fuzzer peuvent également être utilisés pour la communication TCP.
Pour plus d'informations, consultez le Guide de l'utilisateur - Proxy HTTP externe.
Remarque : Si vous souhaitez uniquement utiliser PETEP comme tunnel pour envoyer le TCP via des proxys HTTP, je vous recommande de le configurer en mode GUI, puis de l'exécuter en mode NO-GUI ( PETEP [project_path] --nogui
).
PETEP prend en charge le proxy TCP avec SSL/TLS et STARTTLS. Pour pouvoir les utiliser, vous devez fournir un certificat, puisque l'application ne le génère pas elle-même. Pour la génération de certificats, de nombreux outils peuvent être utilisés, mais l'un d'eux fait partie des binaires Java ( %JAVA_HOME%/bin/keytool
).
Pour générer un certificat dans le magasin de clés JKS, vous pouvez utiliser la commande suivante :
keytool -genkey -alias petep -keyalg RSA -validity 3650 -keysize 4096 -keystore server.jks
Remarque : Il est recommandé de stocker ces certificats à côté du projet (project_dir/conf/server.jks)
Il existe trois guides différents qui vous aideront à utiliser PETEP à son plein potentiel :
Il est possible de développer des extensions utilisant Java pour implémenter la prise en charge de nouveaux protocoles et/ou implémenter de nouvelles fonctionnalités pour intercepter la communication (y compris une interface utilisateur graphique).
Pour plus d’informations sur le développement d’extensions, veuillez consulter le Dev Guide.
PETEP est sous licence GNU GPL 3.0.