PETEP ( PEnetration TEsting Proxy ) هو تطبيق Java مفتوح المصدر لإنشاء وكلاء لتحليل حركة المرور وتعديلها. الهدف الرئيسي لـ PETEP هو توفير أداة مفيدة لإجراء اختبارات اختراق التطبيقات باستخدام بروتوكولات مختلفة (على TCP/UDP) عن طريق إعداد الوكلاء والمعترضات لإدارة حركة المرور المنقولة بين العميل والخادم.
المتطلبات: Java 11+ (لأجهزة M1 وM2 Mac، استخدم Java 17+)
petep.sh
(Linux وMac) أو petep.bat
(Windows) # 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، والتي تستخدم أدوات ديناميكية لاعتراض استدعاءات الوظائف في مكتبات الشبكات والتشفير الشائعة. انظر ديلودر جيثب.
من أجل استخدام ملحق Scripter، يوصى باستخدام GraalVM، حيث تم إنشاء التنفيذ باستخدام GraalVM Polyglot. منذ GraalVM 22.2، قد تحتاج إلى تثبيت لغة البرمجة النصية في GraalVM باستخدام gu install js
.
من أجل اختبار اتصال TCP باستخدام وكلاء HTTP الموجودين مثل Burp Suite وOWASP Zap وما إلى ذلك)، يمكنك استخدام وحدة وكيل HTTP الخارجية لـ PETEP، والتي تتيح لك نفق اتصال TCP عبر هؤلاء الوكلاء.
تعمل وحدة وكيل HTTP الخارجية على تغليف اتصال TCP داخل HTTP، والذي يتم إرساله عبر الوكيل. يتم أيضًا دعم تكرار الحزم طالما كان الاتصال حيًا، لذلك يمكن أيضًا استخدام Burp Intruder/Repeater وZaproxy Requester/Fuzzer لاتصالات TCP.
لمزيد من المعلومات، راجع دليل المستخدم - وكيل HTTP الخارجي.
ملاحظة: إذا كنت تريد فقط استخدام PETEP كنفق لإرسال TCP عبر وكلاء HTTP، فإنني أوصي بإعداده في وضع واجهة المستخدم الرسومية (GUI) ثم تشغيله في وضع NO-GUI ( PETEP [project_path] --nogui
).
يدعم PETEP وكيل TCP مع SSL/TLS وSTARTTLS. من أجل استخدام هذه، عليك تقديم شهادة، حيث أن التطبيق لا يقوم بإنشائها بنفسه. هناك العديد من الأدوات التي يمكن استخدامها لإنشاء الشهادات، لكن إحداها جزء من ثنائيات 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.