
وكيل MITM لـ HTTP/HTTPS ومسجل.
Hyperfox هي أداة تدقيق أمني تقوم بوكالة وتسجيل حركة مرور HTTP و HTTPS بين نقطتين.
يمكنك تثبيت أحدث إصدار من hyperfox إلى /usr/local/bin باستخدام الأمر التالي (يتطلب صلاحيات المسؤول):
curl -sL 'https://raw.githubusercontent.com/malfunkt/hyperfox/master/install.sh' | sh
إذا كنت تفضل عدم قبول الحلوى المجانية من هذه الشاحنة، يمكنك أيضًا الحصول على إصدار من صفحة الإصدارات وتثبيته يدويًا.
hyperfox من المصدرلبناء hyperfox من المصدر ستحتاج إلى Go ومترجم C:
استخدم go install لبناء وتثبيت hyperfox:
go install github.com/malfunkt/hyperfox
يقوم Hyperfox بإنشاء خادم وكيل HTTP شفاف ويربطه بالمنفذ 1080/TCP على localhost (-addr 127.0.0.1 -http 1080). يقرأ الخادم الوكيل طلبات HTTP النصية العادية ويعيد توجيهها إلى الوجهة المستهدفة (يتم استخدام رأس Host لتحديد الوجهة)، وعندما ترد الوجهة المستهدفة، يعترض Hyperfox الرد ويُعيد توجيهه إلى العميل الأصلي.
يتم اعتراض جميع اتصالات HTTP بين المصدر والوجهة بواسطة Hyperfox وتسجيلها في قاعدة بيانات SQLite يتم إنشاؤها تلقائيًا. في كل مرة يبدأ فيها Hyperfox، يتم إنشاء قاعدة بيانات جديدة (مثل: hyperfox-00123.db). يمكنك تغيير هذا السلوك من خلال توفير اسم قاعدة بيانات صراحةً (مثل: -db traffic-log.db).
إطلاق Hyperfox بالإعدادات الافتراضية:
hyperfox
استخدم cURL لطلب أي صفحة HTTP، حيث تُخبر المعلمة -x أداة cURL باستخدام hyperfox كخادم وكيل:
curl -x http://127.0.0.1:1080 example.com
يجب أن تكون قادرًا على رؤية سجل للصفحة التي طلبتها في إخراج Hyperfox:
127.0.0.1:44254 - - [11/Apr/2020:19:19:48 -0500] "GET http://example.com/ HTTP/1.1" 200 -1
-ui)
استخدم المعلمة -ui لتمكين واجهة مستخدم Hyperfox التي ستفتح في نافذة متصفح جديدة:
hyperfox -db records.db -ui
يقوم الأمر أعلاه بإنشاء خادم ويب يرتبط بـ 127.0.0.1:1984. إذا كنت ترغب في تغيير عنوان الربط أو المنفذ، استخدم المفتاح -ui-addr:
hyperfox -db records.db -ui -ui-addr 127.0.0.1:3000
تغيير عنوان خادم واجهة المستخدم مفيد بشكل خاص عندما يعمل Hyperfox على مضيف بعيد أو بدون واجهة رسومية وتريد رؤية واجهة المستخدم من مضيف آخر.
تمكين واجهة المستخدم يمكّن أيضًا واجهة برمجة تطبيقات REST بسيطة (على 127.0.0.1:4891) تستهلكها التطبيق الأمامي.
يرجى ملاحظة أن واجهة برمجة تطبيقات REST الخاصة بـ Hyperfox محمية فقط بمفتاح يتم إنشاؤه عشوائيًا يتغير في كل مرة يبدأ فيها Hyperfox، اعتمادًا على حالة الاستخدام الخاصة بك قد لا يكون هذا مناسبًا.
عندما تكون المعلمة -ui-addr مختلفة عن 127.0.0.1، سيقوم Hyperfox بإخراج رمز QR لتسهيل الاتصال من الأجهزة المحمولة:
hyperfox -db records.db -ui -ui-addr 192.168.1.23:1984
-ca-cert & -ca-key)اتصالات SSL/TLS آمنة من طرف إلى طرف ومحمية من التنصت. لن يتمكن Hyperfox من رؤية أي شيء يحدث بين العميل ووجهة آمنة. هذا صحيح فقط طالما أن سلسلة الثقة تبقى سليمة.
لنفترض أن العميل يثق بشهادة CA جذرية معروفة لـ Hyperfox، إذا حدث ذلك، فسيتمكن Hyperfox من إصدار شهادات ستكون موثوقة من قبل العميل.
يمكن العثور على أمثلة لملفات CA الجذرية المزيفة هذه هنا:
يمكنك أيضًا إنشاء شهادة ومفتاح CA جذر خاص بك.
هناك عدد من الطرق لتثبيت شهادات CA الجذرية، اعتمادًا على نظام التشغيل الخاص بك.
قد يكون رمز QR هذا مفيدًا عند تثبيت شهادة CA الجذر لـ Hyperfox على جهاز محمول:
شهادة CA الجذر لـ Hyperfox
استخدم العلامتين -ca-cert و -ca-key لتزويد Hyperfox بشهادة ومفتاح CA الجذر اللذين ترغب في استخدامهما:
hyperfox -ca-cert rootCA.crt -ca-key rootCA.key
يقوم الأمر أعلاه بإنشاء خادم خاص وربطه بـ 127.0.0.1:10443، ينتظر هذا الخادم وصول اتصال SSL/TLS. عند وصول اتصال SSL/TLS جديد، يستخدم Hyperfox ملحق SNI لتحديد خادم الأسماء الوجهة وإنشاء شهادة SSL/TLS له، يتم توقيع هذه الشهادة باستخدام مفتاح CA الجذر المقدم.
قم بإطلاق Hyperfox مع معلمات TLS المناسبة و -http 443 (يتطلب المنفذ 443 صلاحيات المسؤول).
sudo hyperfox -ca-cert ./ca/rootCA.crt -ca-key ./ca/rootCA.key -https 443
استخدم cURL لإنشاء طلب HTTPs إلى example.com: يخبر الخيار -resolve أداة cURL بتخطي التحقق من DNS واستخدام 127.0.0.1 كما لو كان العنوان الشرعي لـ example.com، بينما تخبر المعلمة -k أداة cURL بقبول أي شهادة TLS.
curl -k -resolve example.com:443:127.0.0.1 https://example.com
يجب أن تكون قادرًا على رؤية سجل للصفحة التي طلبتها في إخراج Hyperfox:
127.0.0.1:36398 - - [11/Apr/2020:19:36:56 -0500] "GET https://example.com/ HTTP/2.0" 200 -1
/etc/hosts على localhostأضف المضيف الذي ترغب في فحصه إلى ملف /etc/hosts:
example.com 127.0.0.1
قم بتشغيل Hyperfox مع الخيارات التي ترغب بها، فقط تذكر أنه يجب عليك استخدام المنفذ 80 لـ HTTP والمنفذ 443 لـ HTTPS، وهذا يتطلب صلاحيات المسؤول. بالإضافة إلى -http و -https استخدم المعلمة -dns مع محلل DNS صالح:
sudo hyperfox -ui -http 80 -dns 8.8.8.8
سيؤدي ذلك إلى جعل Hyperfox يتجاوز محلل DNS الخاص بنظام التشغيل ويستخدم بديلًا (تذكر أن example.com يشير إلى 127.0.1).
الآن استخدم cURL وحاول الوصول إلى الوجهة:
curl http://example.com
سيلتقط Hyperfox الطلب ويطبعه في مخرجاته:
127.0.0.1:41766 - - [11/Apr/2020:19:43:30 -0500] "GET http://example.com/ HTTP/1.1" 200 -1
انظر هجوم MITM باستخدام Hyperfox و arpfox.
اختر مشكلة، أصلحها وأرسل طلب سحب (pull request).
حقوق الطبع والنشر (c) 2012 - اليوم José Nieto، https://xiam.io
يُمنح الإذن بموجب هذا، مجانًا، لأي شخص يحصل على نسخة من هذا البرنامج وملفات التوثيق المرتبطة به (الـ "برنامج")، للتعامل مع البرنامج دون قيود، بما في ذلك دون القيود على الحقوق في الاستخدام والنسخ والتعديل والدمج والنشر والتوزيع والترخيص و/أو بيع نسخ من البرنامج، والسماح للأشخاص الذين يتم تزويدهم بالبرنامج بالقيام بذلك، شريطة مراعاة الشروط التالية:
يجب تضمين إشعار حقوق الطبع والنشر أعلاه وإذن الإذن هذا في جميع النسخ أو الأجزاء الجوهرية من البرنامج.
يُوفر البرنامج "كما هو"، دون أي ضمان من أي نوع، صريحًا أو ضمنيًا، بما في ذلك على سبيل المثال لا الحصر ضمانات القابلية للتسويق والملاءمة لغرض معين وعدم الانتهاك. في أي حال من الأحوال لا يكون المؤلفون أو أصحاب حقوق الطبع والنشر مسؤولين عن أي مطالبة أو أضرار أو مسؤولية أخرى، سواء كانت ناشئة عن أو بسبب أو فيما يتعلق بالبرنامج أو الاستخدام أو التعاملات الأخرى في البرنامج.