Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
http-breakout-proxy — تحليل وكيل HTTP للهندسة العكسية لاتصال البروتوكول | Kitploit
أدوات/GitHubGitHub/jbsouthe/http-breakout-proxy
بروكسيات الويب والاعتراضالهندسة العكسيةالبرمجة النصية والأتمتةاختبار أمان APIجمع المعلوماتأمن الويبالأدوات والمكوناتتحليل السجلات
GitHubjbsouthe/http-breakout-proxy

http-breakout-proxy

تحليل وكيل HTTP للهندسة العكسية لاتصال البروتوكول

عرض المستودع
6333منذ 9 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

HTTP Breakout Proxy

وكيل اعتراض HTTP/HTTPS خفيف الوزن وأداة تحليل حركة المرور مكتوبة بلغة Go، مع واجهة مستخدم ويب لفحص وتصفية وتلوين وتعليق حركة المرور الملتقطة في الوقت الفعلي.

Web App

Color Rules

نظرة عامة

HTTP Breakout Proxy يعمل كوكيل MITM لـ HTTP و HTTPS وأداة تصور حية.
يلتقط الطلبات والاستجابات بين مكونين برمجيين، مما يسمح للمطورين بـ:

  • فحص الرؤوس والمحتوى وتفاصيل التوقيت لكل طلب واستجابة.
  • تنظيم البيانات الملتقطة وتصفيتها وحفظها.
  • إبراز الطلبات بناءً على قواعد الألوان المحددة من قبل المستخدم.
  • إيقاف أو استئناف الالتقاط ديناميكيًا.
  • عرض توقيت الطلب كـ مخطط جانت لتصور مراحل الأداء.

يحتوي الوكيل على واجهة مستخدم متكاملة يمكن الوصول إليها من أي متصفح ويب حديث، مما يتيح تحليلًا فوريًا دون أدوات خارجية.


الميزات

🔍 الالتقاط والفحص

  • يعترض حركة المرور HTTP و HTTPS (مع دعم MITM CA).
  • يعرض جميع بيانات الطلب والاستجابة الوصفية والرؤوس والمحتوى.
  • يدعم الاقتطاع للمحتويات الكبيرة جدًا.
  • 💾 الحفظ الدائم

    • يتم تخزين الالتقاطات وقواعد الألوان في ملف captures.json (أو ملف محدد).
    • يتم إعادة تحميل الحالة تلقائيًا عند بدء التشغيل وحفظها دوريًا على القرص.
    • يتم إنشاء قواعد الألوان الافتراضية عند التشغيل الأول إذا لم تكن موجودة.

    🖥️ واجهة الويب

    • واجهة ويب مضمنة وسريعة الاستجابة (يتم تقديمها بواسطة الوكيل نفسه).
    • يعرض الالتقاطات في قائمة قابلة للتمرير مع مؤشرات ملونة.
    • لوحة التفاصيل تظهر:
      • رؤوس ومحتوى الطلب والاستجابة
      • تفصيل التوقيتات
      • ملاحظات قابلة للتحرير
      • مخطط أداء بنمط جانت لمراحل الاتصال

    🎨 قواعد الألوان

    • تعريف إبرازات لونية مشروطة للالتقاطات باستخدام صيغة تصفية مرنة:
      • مثال: status:4 status:5 → يبرز أخطاء HTTP
      • مثال: url:/api/ → يبرز طلبات API
      • مثال: /\.css$/ → تطابق تعبير منتظم على URL
    • تتضمن كل قاعدة:
      • الاسم، اللون، تعبير المطابقة، الأولوية، والملاحظة
    • الفوز لأعلى أولوية مطابقة.
    • يتم إدارتها بشكل تفاعلي من خلال واجهة نموذج معدّة مع معاينات حية.
    • يتم حفظها عبر الجلسات.

    ⏸️ التحكم في الالتقاط

    • زر إيقاف مؤقت/استئناف يسمح لك بإيقاف جمع الالتقاطات الجديدة دون إيقاف الوكيل.
    • مفيد عند التركيز على مجموعة بيانات ثابتة أو عزل سلوك معين.

    📈 تصور الأداء

    • يتضمن كل التقاط توقيت اتصال مفصل:
      • بحث DNS
      • اتصال TCP
      • مصافحة TLS
      • معالجة الخادم
      • قراءة الاستجابة
    • يُعرض كمخطط جانت في لوحة التفاصيل.
    • يتم تقريب المقياس تلقائيًا إلى أقرب ثانية للوضوح.

    🧭 التصفية والبحث

    • مربع تصفية في الوقت الفعلي يدعم:
      • عوامل تصفية تعتمد على الحقول (method:GET, status:404, header:Content-Type=application/json)
      • تعابير منتظمة (/login/)
      • مصطلحات مجمعة بدلالات AND/OR
    • دعم المطابقة غير الحساسة لحالة الأحرف والمطابقة الجزئية.
    • تطبق التصفية على قائمة الالتقاطات وكذلك الإبراز اللوني.
    • يتم تخزين سجل البحث محليًا في المتصفح.

    🧹 الإدارة

    • حذف الالتقاطات الفردية أو مسح جميع الالتقاطات عبر الواجهة.
    • يتم حفظ القواعد والملاحظات مع الالتقاطات.

    🧩 أدوات التصدير

    • نسخ الالتقاط كـ:
      • أمر curl (منسق للطرفية)
      • مقتطف كود python requests (تمثيل JSON نظيف)
    • تنزيل محتوى الاستجابة مباشرة من الواجهة.

    استخدام سطر الأوامر

    root@kitploit:~
    httpbreakout  -l 127.0.0.1:8080
    

    بدء سريع

    البناء (من المصدر)

    root@kitploit:~
    git clone https://github.com/jbsouthe/http-breakout-proxy.git
    cd http-breakout-proxy
    go build -o http-breakout-proxy
    

    ينتج عن ذلك ملف تنفيذي واحد يحتوي على الوكيل المترجم وأصول واجهة المستخدم المضمنة.

    التشغيل (الافتراضي)

    root@kitploit:~
    # تشغيل بالإعدادات الافتراضية (وكيل + واجهة)
    ./http-breakout-proxy
    

    افتراضيًا، يرتبط الملف التنفيذي بـ 127.0.0.1:8080 للوكيل (واختياريًا للواجهة — راجع أعلام CLI). افتح الواجهة في متصفح لفحص الالتقاطات.

    مثال: استخدام الوكيل مع curl

    root@kitploit:~
    # إرسال طلب HTTPS عبر الوكيل (الوكيل يستمع على 127.0.0.1:8080)
    curl -x http://127.0.0.1:8080 https://example.com
    

    ستظهر حركة المرور الملتقطة في واجهة الويب.


    وسائط سطر الأوامر

    العلمالافتراضيالوصف
    -l127.0.0.1:8080عنوان يستمع عليه الوكيل بالإضافة إلى تطبيق الواجهة.
    -mitmtrueتمكين وضع اعتراض HTTPS Man In The Middle (MITM) (يقوم بإنشاء شهادة محلية لاعتراض TLS).
    -ca./caالدليل الذي يتم فيه تخزين شهادة CA والمفتاح المولّدين عند تمكين MITM واختيار الحفظ.
    -f./captures.jsonالمسار أو الدليل الاختياري لحفظ الالتقاطات على القرص (مثل ./captures.json).
    -max-body1048576الحد الأقصى لعدد البايتات (لكل محتوى) للتخزين/العرض؛ يتم اقتطاع المحتويات الأكبر مع مؤشر.
    -buffer-size1000سعة المخزن المؤقت الدائري للالتقاطات في الذاكرة.
    -vfalseتمكين التسجيل المفصل لتصحيح الأخطاء.

    استخدم ./http-breakout-proxy -h لعرض الأعلام المتاحة وأوصاف الاستخدام.


    نظرة عامة على واجهة الويب

    تم تحسين الواجهة لسير العمل التحقيقي.

    • شريط الأدوات العلوي: إدخال التصفية العالمية (يدعم التعبيرات المنتظمة والبادئات المفتاحية)، إيقاف مؤقت/استئناف الالتقاط، مسح، ومساعدة التصفية (تفتح في علامة تبويب جديدة).
    • اللوحة اليسرى: قائمة زمنية للالتقاطات (الأحدث أولاً). يعرض كل عنصر اسم الالتقاط؛ افتراضيًا هو METHOD URL [STATUS] ولكن يمكن تعيين اسم مخصص.
    • اللوحة اليمنى: تفاصيل الالتقاط المحدد:
      • نظرة عامة: بيانات وصفية ورؤوس ومحتويات (JSON منسق عند الإمكان).
      • علامات تبويب الطلب/الاستجابة: محتويات خام منسقة.
      • علامة التبويب الخام: JSON كامل للالتقاط.
    • إجراءات الصف: نسخ كـ curl، نسخ كـ Python requests، تنزيل محتوى الاستجابة، إعادة تسمية، حذف.

    لغة التصفية (مرجع قصير)

    • رمز عادي: يطابق في أي مكان (الطريقة، URL، الحالة، المضيف، الرؤوس، المحتويات).
    • البادئات: method:، status:، host:، url:، body:، req.body:، resp.body:، header:، req.header:، resp.header:.
    • صيغة التعبير المنتظم: /pattern/flags (على سبيل المثال /bearer\\s+\\S+/i).
    • مواصفات الرأس: header:name=value حيث يمكن أن يكون name أو value تعبيرات منتظمة.
    • يتم دمج المصطلحات باستخدام AND المنطقي افتراضيًا (مفصولة بمسافات). قم بالتبديل إلى OR إذا رغبت بتعديل منطق العميل.

    أمثلة:

    • method:POST status:2 host:api.example.com
    • /token\\s*[:=]\\s*\\S+/i
    • req.header:authorization=/bearer/i
    • body:/\\"success\\"\\s*:\\s*true/i

    اعتراض HTTPS (MITM)

    عند تمكين وضع Man In The Middle:

    1. يقوم الوكيل بإنشاء زوج مفاتيح RSA CA وشهادة جذر ويخزنهما في -ca (افتراضي ./ca).
    2. لفحص حركة HTTPS، يجب إضافة شهادة CA المولدة (ca.pem أو ما شابه) إلى مخزن الثقة الخاص بالعميل (أو النظام) الذي يصدر الطلبات. يتطلب هذا غالبًا صلاحيات إدارية على العديد من المنصات.
    3. يقوم الوكيل باعتراض TLS عن طريق إصدار شهادات فرعية موقعة من قبل CA المحلية لكل اسم مضيف يطلبه العميل.

    ملاحظة أمنية: قم بتثبيت CA فقط في البيئات الخاضعة للتحكم. لا تثق في هذه CA في الأنظمة التي تقرأ فيها حركة مرور غير ذات صلة وحساسة.


    الحفظ الدائم

    إذا تم تمكين الحفظ (عبر -f أو مسار مهيأ):

    • تتم كتابة الالتقاطات دوريًا على القرص (مثل captures.json).
    • عند بدء التشغيل، سيحاول التطبيق تحميل الالتقاطات السابقة من ملف الحفظ إلى المخزن المؤقت في الذاكرة (مع الحفاظ على الترتيب).
    • يتم مزامنة إعادة التسمية والحذف إلى المخزن المحفوظ عند عمليات الحفظ؛ ضع في اعتبارك استدعاء تفريغ فوري للعمليات الحرجة.

    تنسيق التخزين

    يتم تسلسل العناصر الملتقطة إلى JSON وتحتوي على الحقول التالية (غير شاملة):

    • id — معرف تسلسلي فريد
    • time — طابع زمني (ISO 8601)
    • method، url
    • request_headers، response_headers
    • request_body، response_body — يتم اقتطاعها إلى -max-body إذا لزم الأمر
    • response_status، duration_ms
    • name — تسمية مستخدم اختيارية
    • notes، deleted — بيانات وصفية للتحكم في أحداث SSE وحالة الواجهة

    أدوات التصدير وإعادة التشغيل

    • نسخ كـ cURL: ينشئ أمر curl آمن للصدفة بما في ذلك الرؤوس والمحتوى (يحذف رؤوس hop-by-hop).
    • نسخ كـ Python: ينتج مقتطف requests صغير مع url و headers و data اختياري.
    • تنزيل: يحفظ محتوى الاستجابة في ملف؛ يتم استنتاج الامتداد من Content-Type عند الإمكان.

    اعتبارات التصميم:

    • يتم حذف رؤوس hop-by-hop (مثل Host، Content-Length، Connection) من أوامر إعادة التشغيل المولدة.
    • محتويات الاستجابة الثنائية (صور، PDFs) قابلة للتنزيل باستخدام blobs ثنائية. إذا تم تخزين الاستجابات بشكل مشفر Base64، سيقوم العميل بفك التشفير قبل التنزيل.

    API: نقاط النهاية REST (للأتمتة)

    • GET /api/captures — سرد الالتقاطات (مصفوفة JSON).
    • DELETE /api/captures — مسح جميع الالتقاطات.
    • GET /api/captures/{id} — استرجاع التقاط واحد.
    • DELETE /api/captures/{id} — حذف التقاط معين.
    • PATCH /api/captures/{id} — تحديث بيانات وصفية للالتقاط؛ مثال على المحتوى: { "name": "My label" }.
    • GET /api/pause — يعيد { "paused": true|false }.
    • POST /api/pause — تعيين حالة الإيقاف المؤقت؛ مثال على المحتوى: { "paused": true }.
    • GET /events — تدفق أحداث الخادم (SSE) لإشعارات الالتقاط الحية وأحداث التحكم.

    ملاحظات التنفيذ (للمطورين)

    • تضمين الواجهة: استخدم //go:embed ui/* و fs.Sub لتقديم الملفات الثابتة. ينتج عن ذلك قطعة أثرية واحدة قابلة للنشر.
    • إلغاء الضغط: يتحقق كود الالتقاط من Content-Encoding ويحاول فك ضغط المحتويات gzip و deflate قبل العرض. يتم الاحتفاظ بالبايتات الأصلية لشفافية الوكيل.
    • التزامن: يستخدم مخزن الالتقاط قفلًا داخليًا لتوفير عمليات إلحاق/قائمة/استرجاع/تحديث آمنة للخيوط. حيثما أمكن، يتم استخدام منطقيات ذرية لأعلام التبديل (مثل الإيقاف المؤقت/الاستئناف).
    • SSE: وسيط خفيف الوزن يبث إضافات الالتقاط وعمليات الحذف وإعادة التسمية وأحداث التحكم إلى عملاء الواجهة المتصلين.
    • التخزين المؤقت: تتم قراءة محتويات الالتقاط باستخدام io.LimitReader لكشف الاقتطاع وحماية استخدام الذاكرة.

    التعبئة والتوزيع

    نموذج التوزيع الموصى به:

    1. بناء ملفات تنفيذية ثابتة ومشذبة للمنصات المستهدفة (CGO_ENABLED=0، -trimpath، -ldflags "-s -w").
    2. إنتاج أرشيفات (.tar.gz لأنظمة Unix، .zip لنظام Windows) وتضمين README.md و LICENSE.
    3. توفير مجاميع SHA-256 وإرفاق القطع الأثرية بإصدارات GitHub.
    4. اختياريًا، استخدام goreleaser لأتمتة البناء عبر المنصات والقطع الأثرية للإصدار.

    أمثلة لأوامر البناء:

    root@kitploit:~
    # Linux x86_64
    GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -trimpath -ldflags "-s -w" -o dist/http-breakout-proxy-linux-amd64 .
    
    # macOS (arm64)
    GOOS=darwin GOARCH=arm64 CGO_ENABLED=0 go build -trimpath -ldflags "-s -w" -o dist/http-breakout-proxy-darwin-arm64 .
    

    التشغيل كخدمة

    وحدة systemd (مثال Linux)

    root@kitploit:~
    [Unit]
    Description=HTTP Breakout Proxy
    After=network.target
    
    [Service]
    ExecStart=/opt/http-breakout-proxy/http-breakout-proxy -l 0.0.0.0:8080
    Restart=on-failure
    User=proxy
    Group=proxy
    
    [Install]
    WantedBy=multi-user.target
    

    launchd (وكيل مستخدم macOS)

    أنشئ plist في ~/Library/LaunchAgents وقم بتحميله باستخدام launchctl.


    استكشاف الأخطاء وإصلاحها

    • يظهر محتوى ملتقط كبيانات ثنائية غير مفهومة
      المحتوى مضغوط (مثل gzip). تأكد من تشغيل إصدار يتضمن فك الضغط التلقائي؛ تعرض الواجهة JSON/نصًا مفكوك الضغط عند الإمكان.

    • حركة HTTPS غير معروضة / أخطاء اتصال
      العميل لا يثق في CA المولدة. قم بتثبيت ca/ca.pem في مخزن الثقة الخاص بالعميل/النظام ووضع علامة عليه كموثوق لاعتراض TLS.

    • الواجهة تظهر تحديدًا قديمًا بعد مسح الالتقاطات
      قم بالترقية إلى عميل يمسح selectedId عند أحداث cleared SSE أو استدع نقطة النهاية GET /api/captures لتحديث الحالة.

    • خطأ 405 على DELETE /api/captures
      تأكد من أن معالج الخادم يقبل DELETE لـ /api/captures وأنك لا تصادف عدم تطابق في الشرطة المائلة.


    الأمان والخصوصية

    تقوم هذه الأداة باعتراض TLS عند تمكين MITM. استخدمها فقط في البيئات الخاضعة للتحكم حيث لديك إذن صريح لفحص حركة المرور. CA المولدة قوية: تعامل مع مفتاحها الخاص بنفس سرية أي مفتاح خاص لـ CA جذر. لا تقم بتثبيت CA في مخازن الثقة المشتركة أو الإنتاج.


    المساهمة

    المساهمات مرحب بها. يرجى فتح مشكلات للأخطاء أو طلبات الميزات. للمساهمات البرمجية:

    1. قم بعمل fork للمستودع.
    2. أنشئ فرع ميزة.
    3. قم بتشغيل اختبارات الوحدة وأدوات الفحص حيثما أمكن.
    4. قدم طلب سحب يصف التغيير والمبرر وأي مخاوف تتعلق بالتوافق العكسي.

    الترخيص

    هذا المشروع موزع بموجب رخصة MIT. راجع LICENSE للتفاصيل.


    الإسناد والاتصال

    المؤلف: John Southerland (GitHub: jbsouthe)
    المشروع: http-breakout-proxy — مخصص لتصحيح الأخطاء والتطوير وتعلم سلوك HTTP.

    تنزيل الأداة