PETEP ( PEnetration TEsting Proxy ) es una aplicación Java de código abierto para crear servidores proxy para análisis y modificación del tráfico. El objetivo principal de PETEP es proporcionar una herramienta útil para realizar pruebas de penetración de aplicaciones con varios protocolos (en TCP/UDP) mediante la configuración de servidores proxy e interceptores para gestionar el tráfico transmitido entre el cliente y el servidor.
Requisitos: Java 11+ (para Mac M1, M2 use Java 17+)
petep.sh
(Linux, Mac) o petep.bat
(Windows) # Linux / Mac
chmod +x petep.sh
./petep.sh
# Windows
petep.bat
Consejo: Los scripts de ejecución proporcionados contienen variables útiles, incluido el directorio de trabajo (para el archivo petep.json
) y la ruta al ejecutable de Java. Es posible que deba cambiarlo si no lo tiene en PATH o si usa varias versiones de Java en su máquina.
Consejo: la mayoría de los cambios realizados en el proyecto no son persistentes automáticamente. Utilice Proyecto → Guardar para guardar los cambios cuando PETEP se esté ejecutando.
La última versión de PETEP tiene el siguiente protocolo compatible:
Y existen las siguientes funcionalidades:
Se pueden encontrar descripciones detalladas de todos los módulos en la Guía del usuario oficial.
PETEP está diseñado para ser un proxy para protocolos de aplicaciones basados en TCP/UDP. Para utilizar PETEP como proxy para su aplicación, generalmente existe una de las siguientes opciones:
/etc/hosts
y anular la dirección IP del dominio de destino. Si la aplicación de destino no reconoce el proxy y/o no es posible utilizar otros enfoques (por ejemplo /etc/hosts
) para que la aplicación se comunique a través de PETEP, puede utilizar Deluder.
Deluder es una utilidad de Python que utiliza instrumentación dinámica para interceptar llamadas a funciones en bibliotecas de cifrado y redes comunes. Consulte Deluder GitHub.
Para utilizar la extensión Scripter, se recomienda utilizar GraalVM, ya que la implementación se crea utilizando GraalVM Polyglot. Desde GraalVM 22.2, es posible que necesite instalar el lenguaje de secuencias de comandos en GraalVM usando gu install js
.
Para probar la comunicación TCP utilizando servidores proxy HTTP existentes como Burp Suite, OWASP Zap, etc.), puede utilizar el módulo de proxy HTTP externo PETEP, que le permite canalizar la comunicación TCP a través de estos servidores proxy.
El módulo de proxy HTTP externo envuelve la comunicación TCP dentro de HTTP, que se envía a través del proxy. También se admite la repetición de paquetes siempre que la conexión esté activa, por lo que Burp Intruder/Repeater y Zaproxy Requester/Fuzzer también se pueden utilizar para la comunicación TCP.
Para obtener más información, consulte Guía del usuario: Proxy HTTP externo.
Nota: Si solo desea utilizar PETEP como túnel para enviar TCP a través de servidores proxy HTTP, recomendaría configurarlo en modo GUI y luego ejecutarlo en modo NO-GUI ( PETEP [project_path] --nogui
).
PETEP admite proxy TCP con SSL/TLS y STARTTLS. Para poder utilizarlos, debe proporcionar un certificado, ya que la aplicación no lo genera por sí misma. Para la generación de certificados, existen muchas herramientas que se pueden utilizar, pero una de ellas forma parte de los binarios de Java ( %JAVA_HOME%/bin/keytool
).
Para generar un certificado en el almacén de claves JKS, puede utilizar el siguiente comando:
keytool -genkey -alias petep -keyalg RSA -validity 3650 -keysize 4096 -keystore server.jks
Nota: Se recomienda almacenar estos certificados junto con el proyecto (project_dir/conf/server.jks)
Hay tres guías diferentes que le ayudarán a utilizar PETEP en todo su potencial:
Es posible desarrollar extensiones utilizando Java para implementar soporte para nuevos protocolos y/o implementar nuevas funciones para interceptar la comunicación (incluida la interfaz gráfica de usuario).
Para obtener más información sobre el desarrollo de extensiones, consulte la Guía para desarrolladores.
PETEP tiene licencia GNU GPL 3.0.