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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
revsuit — RevSuit هي منصة اتصال عكسي مرنة وقوية مصممة لاستقبال الاتصالات من الهدف المضيف أثناء الاختراق. | Kitploit
أدوات/GitHubGitHub/li4n0/revsuit
أطر اختبار الاختراقالاستطلاعتحليل الثغرات الأمنيةالاستغلالجمع المعلوماتأمن الويباختبار الاختراقتحليل DNS
GitHubli4n0/revsuit

revsuit

RevSuit هي منصة اتصال عكسي مرنة وقوية مصممة لاستقبال الاتصالات من الهدف المضيف أثناء الاختراق.

عرض المستودع
56469منذ 3 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

RevSuit - منصة اتصال عكسي مرنة وقوية

الإنجليزية |简体中文

نظرة عامة

RevSuit هي منصة اتصال عكسي مرنة وقوية مصممة لاستقبال الاتصالات من الهدف المضيف في اختبار الاختراق. تدعم حالياً بروتوكولات HTTP و DNS و RMI و LDAP و MySQL و FTP.

مرنة:

  1. يمكن لـ RevSuit وضع قواعد مرنة لالتقاط اتصالات مختلفة.
  2. النشر والتشغيل عبر الملفات الثنائية دون القلق من أخطاء التبعية المزعجة.

قوية:

  1. تسمح بتخصيص الاستجابة لاتصالات مختلفة من خلال القواعد وتدعم توليد الاستجابة ديناميكياً باستخدام متغيرات القالب.
  2. تدعم مجموعة متنوعة من البروتوكولات، وتدعم الاستفادة المتقدمة من بعض البروتوكولات، مثل إعادة ربط DNS، تحميل البيانات المحلية في MySQL، استغلال إلغاء تسلسل JDBC، SSRF في الوضع السلبي لـ FTP، إلخ.
  3. دعم أصلي للاستخدام مع الماسحات الضوئية.
  4. دعم إرسال الإشعارات إلى برامج المكاتب الشائعة.
  5. ميزات أخرى مدروسة ومفصلة.

الاستخدام الأساسي

التثبيت والتكوين

قم بتنزيل أحدث إصدار مباشرة أو قم بالبناء باتباع الخطوات التالية:

root@kitploit:~
git clone https://github.com/Li4n0/revsuit.git
cd revsuit/frontend && yarn install && yarn build
cd ../ && go build ./cmd/revsuit/revsuit.go

سينشئ RevSuit ملف التكوين الافتراضي عند التشغيل الأول. قم بتعديل ملف التكوين حسب احتياجاتك، ثم أعد التشغيل. يمكن العثور على وصف تفصيلي لملف التكوين في: ملاحظات التكوین

التشغيل

لتأكيد موقع IP، يجب استخدام قاعدة بيانات موقع IP. يتم استخدام QQwry كمصدر بيانات افتراضي، يمكنك أيضًا تعديل التكوين لاستخدام GeoIP. إذا كانت قاعدة البيانات المحددة غير متاحة في الدليل الحالي أو تم تحديثها منذ أكثر من أسبوع، سيقوم RevSuit تلقائياً بتنزيل أحدث قاعدة بيانات. إذا فشل التنزيل، سيكون حقل IpArea فارغاً دائماً.

root@kitploit:~
$ ./revsuit   
2021/05/16 22:55:10 [ INFO] Downloading qqwry.dat...

    ____            _____       _ __ 
   / __ \___ _   __/ ___/__  __(_) /_
  / /_/ / _ \ | / /\__ \/ / / / / __/
 / _, _/  __/ |/ /___/ / /_/ / / /_  
/_/ |_|\___/|___//____/\__,_/_/\__/    
                                   vBeta0.1
     https://revsuit.pro
2021/05/16 22:55:22 [ INFO] Starting HTTP Server at :80, token:your_token
2021/05/16 22:55:22 [ INFO] Start to listen FTP PASV port at :2020, PasvIP is 10.9.8.7
2021/05/16 22:55:22 [ INFO] Starting FTP Server at :21
2021/05/16 22:55:22 [ INFO] Starting MySQL Server at :3306
2021/05/16 22:55:22 [ INFO] Starting RMI Server at :1099
2021/05/16 22:55:22 [ INFO] Starting DNS Server at :53

بعد التشغيل، يمكنك زيارة المسار /revsuit/admin/ لخادم HTTP وإدخال الرمز المميز للوصول إلى لوحة التحكم.

إنشاء القواعد واستقبال الاتصالات

لنأخذ إنشاء قواعد HTTP كمثال:

بعض الملاحظات كالتالي:

  1. الاسم و flagFormat للقاعدة فريدان.
  2. يستخدم FlagFormat صيغة التعبير العادي، وبالنسبة للبروتوكولات المختلفة، تختلف الحقول المطابقة بواسطة flagFormat، يمكنك التحقق من التلميحات المقابلة للحصول على التفاصيل عند إنشاء القواعد.
  3. القواعد ذات الترتيب الأعلى ستكون لها الأولوية.
  4. بالنسبة لقواعد البروتوكول المختلفة، يمكنك عمل استجابات مخصصة مختلفة، وبالنسبة لبعض البروتوكولات، يمكن استخدام متغيرات القالب.
  5. يمكنك تعيين التجميع المسمى للتعبيرات العادية في flagFormat، وستستخدم نتيجة التجميع المطابق أيضاً كمتغير قالب.

كما هو موضح أدناه، نقوم بإنشاء قاعدة تستخدم متغيرات القالب المضمنة ومتغيرات القالب المخصصة لبروتوكول http، ونسميها test_create_rule:

img.png

ثم قم بتقديم طلب يحقق القاعدة وشاهد الاستجابة.

img.png

سيتم تسجيل الطلب على المنصة في نفس الوقت.

img.png

إشعار

إذا كنت ترغب في تلقي إشعار بالاتصالات الجديدة على برنامج مكتبك، يمكنك تكوين عنوان webhook للبرنامج ذي الصلة في ملف التكوين وتشغيل مفتاح Notice للقاعدة المقابلة. الدعم حالياً لأربعة أنواع من البرامج: dingtalk, wechat, lark, slack. (دعم Discord و Telegram قيد التخطيط.)

استيراد/تصدير القواعد

إذا كنت تقوم بترحيل المنصات أو تنظيف البيانات، قد يكون إعادة إنشاء القواعد أمراً مزعجاً. لذلك تدعم المنصة استيراد وتصدير القواعد.

مدخل هذه الوظيفة موجود في Settings > RULES.

يتم تخزين القواعد بتنسيق yaml للاستيراد والتصدير، كما يلي:

root@kitploit:~
http:
  - name: test_create_rule
    flag_format: (?P<what>\w+)\?
    rank: 0
    push_to_client: false
    notice: false
    response_status_code: "302"
    response_headers:
      Location: ${query.url}
    response_body: ${header.say} ${what}
  - name: other_rule
    flag_format: other
    rank: 1
    push_to_client: false
    notice: true
    response_status_code: "200"
    response_headers: { }
    response_body: Hello Revsuit!
dns:
  ... ...

الاستخدام المتقدم

الاستخدام مع الماسح الضوئي

تم فصل RevSuit من مشروع الماسح الخاص بي، لذا فإن دعمه الأصلي يعمل مع الماسحات الضوئية.

من منظور RevSuit، نسمي الماسح الضوئي عميلاً.

إنشاء الاتصال

يستخدم RevSuit أحداث مرسلة من الخادم HTTP (SSE) لإنشاء قناة اتصال أحادية الاتجاه مع العميل.

واجهة برمجة التطبيقات للقناة هي: /revsuit/api/events?message. يجب على العميل أولاً إضافة الرأس Token: your token إلى الرأس، ثم الوصول إلى واجهة برمجة التطبيقات لإنشاء القناة. عندما تتلقى المنصة اتصالاً جديداً، سيتم تمرير flag الذي تم التقاطه بواسطة القاعدة إلى العميل عبر هذه القناة. img.png

هذا عرض توضيحي بسيط باستخدام مكتبة sse الخاصة بـ Golang كمثال.

عميل متعدد

كما هو موضح أعلاه، تدعم RevSuit عملاء متعددين، ويتلقى كل عميل في حالة الاتصال إرسال flag، لذا يمكن دعم المسح الموزع.

إذا كنت لا تريد أن يتلقى كل عميل جميع إرسالات flag، يمكنك استخدام رأس الطلب Flag-Filter عند إنشاء اتصال sse لتعيين تنسيق (تعبيرات منتظمة) flag الذي تريد أن يتلقاه هذا العميل:

img.png

قائمة التخزين المؤقت

ستقوم RevSuit بتخزين flag مؤقتاً في قائمة الانتظار عندما لا يكون هناك اتصال عميل وإرساله عند اتصال العميل، لذا لا داعي للقلق بشأن فقدان الثغرة الأمنية بسبب انقطاع اتصال العميل. (هذا مفيد بشكل خاص لاكتشاف الثغرات التي يتم تشغيلها بتأخير.)

استخدام flagGroup

في سيناريو مسح الثغرات الواقعي، قد ترسل عدداً كبيراً من الحمولات المختلفة لنقطة ثغرة واحدة، وقد تكون جميعها صالحة، مما يؤدي إلى تلقي منصة الارتباط العكسي العديد من الطلبات، ولكنها جميعاً ناتجة عن نفس الثغرة. إذا كنت لا تريد أن يتلقى العميل الكثير من flags لنفس الثغرة، يمكنك الاستفادة من ميزة flagGroup في flagFormat الخاص بالقاعدة.

FlagGroup هو المحتوى المطابق بواسطة المجموعة المجهولة في حقل flagFormat للقاعدة. ستتحقق المنصة من المحتوى المطابق في التجميع، ويتم إرسال flag فقط إلى العميل عندما يتم التقاط المحتوى (flagGroup) لأول مرة.

على سبيل المثال، مسح SSRF.

أولاً قم بإنشاء قاعدة كما يلي:

root@kitploit:~
http:
  - name: ssrf
    flag_format: (ssrf[a-z0-9]{6})[0-9]{1,3}
    rank: 0
    push_to_client: false
    notice: false
    response_status_code: "200"
    response_headers: { }
    response_body: "Here is a SSRF!"

لنفترض أن هدفنا هو https://www.testvuln.com?url=api.com&p=useless، ولدى SSRF 5 حمولات. قد يكون الطلب النهائي الذي يرسله الماسح هو ['https://www.testvuln.com?url=http://revsuit.com/ssrfa98oni1&p=useless','https://www.testvuln.com?url=http://revsuit.com/ssrfa98oni2&p=useless', ... ,'https://www.testvuln.com?url=//revsuit.com/ssrfa98oni5&p=useless'] قد تنجح جميعها في الهجوم.

ومع ذلك، نظراً لاستخدام التجميع المجهول في flagFormat للقاعدة، ستستعلم المنصة عن flagGroup المتصل، في هذه الحالة ssrfa98oni، وتدفع flag إلى العميل فقط في أول ظهور له، لذلك سيتلقى العميل علماً واحداً فقط: ssrfa98oni1. وهذا يثبت أن معلمة url للهدف معرضة للخطر.

تنسيق الوحدات المتعددة

في سيناريوهات اختبار الاختراق الفعلية، يمكن إنجاز بعض المهام بسهولة وسرعة من خلال الجمع والمطابقة بين وحدات RevSuit المختلفة. فيما يلي مثال على XXE أعمى في Java Web، يوضح كيفية استخدام وحدات HTTP و FTP في RevSuit مع متغيرات القالب لإكمال فحص المنفذ بسرعة.

أولاً قم بإنشاء قاعدة HTTP لإرجاع evil.dtd، وتخصيص الاستجابة لمحتويات dtd بحيث تذهب لربط خدمة FTP الخاصة بـ RevSuit، واستخدام متغيرات القالب لتمرير المضيف والمنفذ المراد فحصهما إلى FTP عبر المستخدم وكلمة المرور الخاصين بـ FTP.

إنشاء قاعدة evil.dtd

ثم قم بإنشاء قاعدة FTP تستقبل المضيف والمنفذ المراد فحصهما من متغيرات القالب للمستخدم وكلمة المرور، وتعيينها على عنوان Pasv.

إنشاء قاعدة فحص FTP

ثم استخدم BurpSuit لبدء الفحص، عن طريق تعيين معلمات المضيف والمنفذ في عنوان URL الخاص بـ evil.dtd لتحديد هدف فحص المنفذ.

xxe

تأثير التشغيل كالتالي:

ftp-scan

وذلك لأنه سيحدث تعطل في اتصال FTP إذا كان Passive Address غير قابل للوصول، يمكننا تحديد ما إذا كان المنفذ مفتوحاً أم لا بناءً على ما إذا كان الاتصال يخرج بشكل طبيعي. في هذا المثال، اكتشفنا بنجاح أن المنفذين 8005 و 8080 مفتوحان.

استخدامات أخرى

يتم إعداد ويكي أكثر تفصيلاً، يمكنك الاستكشاف بنفسك قبل ذلك.

ملاحظات، اقتراحات والتواصل

قم بتقديم مشكلة أو اتصل بي عبر Weixin: TGk0bjA2Cg==

شكر وتقدير

المراجع

يعتمد هذا المشروع على كود المشاريع المتميزة التالية:

  • https://github.com/rmb122/rogue_mysql_server
  • https://github.com/256dpi/newdns
  • https://github.com/EmYiQing/JNDIScan

على وجه الخصوص

شكراً لصديقي @E99p1ant على كل المساعدة والنصائح التي تلقيتها أثناء تطوير هذا المشروع.

الترخيص

@Apache License 2.0

تنزيل الأداة