--> استغلال ثغره Log4j RevSuit - منصة اتصال عكسي مرنة وقوية - Cyber Security
Home استغلال ثغرات

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


 

ملخص

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

مرن:

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

قوي:

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

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

تحضير

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

سيقوم RevSuit بإنشاء ملف التكوين الافتراضي عند التشغيل لأول مرة. قم بتعديل ملف التكوين وفقًا لاحتياجاتك ، ثم أعد تشغيله.

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

$ ./revsuit   
2021/05/16 22:55:10 [INFO] جارٍ تنزيل qqwry.dat ...

    ____ _____ _ __ 
   / __ \ _ __ _ __ / ___ / __ __ (_) / _
  / / _ / / _ \ | / / \ _ _ \ / / / / __ /
 / _ ، _ / __ / | / / ___ / / / _ / / / / _  
/ _ / | _ | \ _ __ / | ___ // ____ / \ _ _ ، _ / _ / \ _ _ /    
                                   احببيتا 0.1
     https://revsuit.pro
2021/05/16 22:55:22 [INFO] بدء تشغيل خادم HTTP في: 80 ، الرمز المميز: your_token
2021/05/16 22:55:22 [INFO] ابدأ في الاستماع إلى منفذ FTP PASV على: 2020 ، PasvIP هو 10.9.8.7
2021/05/16 22:55:22 [INFO] بدء تشغيل خادم FTP في: 21
2021/05/16 22:55:22 [INFO] بدء تشغيل MySQL Server في: 3306
2021/05/16 22:55:22 [INFO] بدء تشغيل خادم RMI في: 1099
2021/05/16 22:55:22 [INFO] بدء تشغيل خادم DNS في: 53

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

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

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

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

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

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

img.png

ثم قدم طلبًا يفي بالقاعدة واطلع على الرد.

img.png

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

img.png

يلاحظ

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

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

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

تقع نقطة الدخول لهذه الوظيفة في Settings>RULES.

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

http :
  - الاسم : test_create_rule 
    flag_format : (؟ P <what> \ w +) \؟ 
    الترتيب : 0 
    push_to_client : إشعار خاطئ
     : false response_status_code : " 302 " response_headers :
       الموقع : $ {query.url} response_body : $ {header.say} $ {what} 
  - الاسم : other_rule flag_format : الرتبة الأخرى : 1 push_to_client : إشعار خاطئ :
    
    
    
    
    
    
    صحيح 
    response_status_code : " 200 "
     response_headers : {} 
    response_body : مرحبا Revsuit! 
نظام أسماء النطاقات :
   ... ...

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

استخدم مع الماسح

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

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

إنشاء اتصال

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

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

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

متعدد العملاء

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

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

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

استخدم FlagGroup

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

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

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

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

http :
  - اسم : ssrf 
    flag_format : (ssrf [A-Z0-9] {6}) [0-9] {1،3} 
    رتبة : 0 
    push_to_client : كاذبة 
    إشعار : كاذبة 
    response_status_code : " 200 "
     response_headers : {} 
    response_body : " هنا 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 Address.

إنشاء قاعدة مسح بروتوكول نقل الملفات

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

xxe

تأثير الجري كما يلي:

بروتوكول نقل الملفات المسح

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

المزيد من الاستخدام

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

ردود الفعل والاقتراحات والتواصل

أرسل مشكلة أو تواصل معي من خلال Weixin: TGk0bjA2Cg==

شكر وتقدير

اقرأ أيضا:

ليست هناك تعليقات:

إرسال تعليق

to Top