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 주소를 재정의할 수 있습니다. 대상 응용 프로그램이 프록시를 인식하지 못하거나 응용 프로그램이 PETEP를 통해 통신하도록 하기 위해 다른 접근 방식(예: /etc/hosts
)을 사용할 수 없는 경우 Deluder를 사용할 수 있습니다.
Deluder는 동적 계측을 사용하여 일반적인 네트워킹 및 암호화 라이브러리에서 함수 호출을 가로채는 Python 유틸리티입니다. 딜루더 GitHub를 참조하세요.
Scripter 확장을 사용하려면 GraalVM Polyglot을 사용하여 구현이 구축되었으므로 GraalVM을 사용하는 것이 좋습니다. GraalVM 22.2부터는 gu install js
사용하여 GraalVM에 스크립팅 언어를 설치해야 할 수도 있습니다.
Burp Suite, OWASP Zap 등과 같은 기존 HTTP 프록시를 사용하여 TCP 통신을 테스트하려면 이러한 프록시를 통해 TCP 통신을 터널링할 수 있는 PETEP 외부 HTTP 프록시 모듈을 사용할 수 있습니다.
외부 HTTP 프록시 모듈은 프록시를 통해 전송되는 HTTP 내부의 TCP 통신을 래핑합니다. 연결이 살아있는 한 패킷 반복도 지원되므로 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에 따라 라이센스가 부여됩니다.