نهاية الحديث عن ثغرة الأباتشي Symlink/SSI واخواتها
السلام عليكم
كل سنة و أنتو طيبين
أولا ياريت تدعولي إني أخف على خير لإني الأيام دي حالتي حالة . يعني محدش يقرأ الموضوع من غير دعوة وانا حذرت :@
الموضوع دا هو الملخص الأول و الأخير و الشامل و كل اللي نفسك فيه عن ثغرات التخطي من خلال الأباتشي! و الكلام اللي هنا مش هتلاقيه في أي مكان تاني لا بالعربي ولا بالأجنبي ولا حتى بالهندي
على الرغم من إنك هتلاقي الموضوع صغير ولكن زي ماقلت هو كل ما يمكن تلخيصه و أيضاً شامل .
سمي الله كدا و فتح دماغك سواء كنت هاكر/سكريبتز كيد/مدير خوادم. أو حتى بتبيع بطيخ....انت حر اقراه وخلاص.
---------------
البداية
---------------

منذ حوالي عامين بالضبط أنتشر اختراق المنتديات بشكل كبير، لدرجة أنه يكان يكون لايوجد منتدى على خادم مشترك إلا وتم إختراقه(ماعدا الخوادم المؤمنة طبعا و العقول الآمنية-Security Minds ) ، و السبب في ذلك هو انتشار ثغرات عادية جداً ويمكن تفايدها بأكثر من طريقة ولكن الأغلبية لا تبحث عن ترقيعات أو حلول بل تكتفي بالمشاهدة و هذا هو السب في اختراق ألوف المنتديات.
الطريقة المعتادة 1 :
و هي من خلال عمل إرتباطات رمزية (Symlinks) بأي طريقة، سواء كانت من الشيل، أو من خلال البيرل، و في هذه الحالة يستطيع المخترق الحصول على ملف الإعدادات للمنتدى (config.php) ومن ثم الإتصال بقاعدة البيانات والعبث بها أو بتغيير حتى الرئيسية لها، نظرا لأن النظام الخاص بالمنتديات الفي بي خصوصا لا يعتمد طريقة آمنة للواجهات (التمبليتات) .
و في هذه الحالة يكون الخادم لا يستخدم الإعدادات الصحيحة، و أكرر مرة أخرى لا يستخدم الإعدادات الصحيحة مثل تحديد عمل الإرتباطات الرمزية من خلال :
SymLinksIfOwnerMatch.
و طبعا أغلب المدراء للخوادم كل حياتهم قص و لزق، وبالتالي النتيجة المحتومة......مئات الإختراقات سنوياً و رغم ذلك العملاء في ازدياد و الشكر للباك أب!
.
الطريقة المحدثة 2:
هناك طريقة أخرى أنتشرت و هي من خلال تعديل إعدادات الأباتشي من خلال ملفات الإتش تي أكسس. وهنا أيضاً نفس الخطأ السابق للمدراء، فهو لم يحدد ما يمكن تغييره وما لا يمكن تغييره . مثال بسيط :
يستطيع المخترق وضع الإعدادات التالية في ملف
.htaccess :
Options +FollowSymLinks
وبالتالي يمكنه الأن تطبيق نفس الثغرة.
ولكن لو كان الأدمن قد قام بتحديد ما يمكن التعديل عليه وما لايمكن. لما ظهرت مشكلة كتلك لديه. كمثال :
لو كان الأدمن/ مدير الخادم أضاف التالي :
AllowOverride bla bla
ولم يضف لها خيار (FollowSymLinks ) لم تكن ستظهر تلك المشكلة. ولكن الأغلبية تعتمد الإعدادات الإفتراضية. أو إعدادات القص واللزق. مع ملاحظة أنه لا يوجد موقع عــــــــربي واحد قد قام بكتابة الحل الصحيح لهذه الثغرة حتى هذه اللحظة. فكل الحلول لم تقم بتعطيل أو تحديد الحل النهائي لهذه الثغرة خصوصا و أن لها أكثر من إستثمار. سننتقل الأن إلى أحداهم.
الإستغلال المعدل 3 :
الإستغلال المعدل هو من خلال إستخدام
DirectoryIndex !
و بالطبع ستعمل الثغرة أيضاً، لأن أغلب المدراء لم يقم بإغلاقها. كما أنه لو قام بإغلاقها فسيواجه أغلب العملاء مشكلة كبيرة لأنه 50% من الإسكربتات لن تعمل! وبالتالي لا يستطيع مدير الخادم تحديد قيمة Index
---------------------------
إستثمارات تنشر لأول مرة و تخضع للرخصة السفاحية
---------------------------
الأن سأقوم بوضع إستثمارات لهذه الثغرة لم تنشر من قبل، و ربما لم يبلغ عنها حتى الأن! وأقول ربما!
الإستثمار السفاحي الأول :
وهو من خلال إستخدام
ErrorDocument
وعن طريق ذلك الإستثمار تستطيع تحديد مكان جديد لصفحات الخطأ، ومن ثم تكون صفحة الخطأ تلك هي الترابط الرمزي لملف الإعدادات للمنتدى ( ملف الكنفنج بالعربي!) .
مثال :
.htaccess:
ErrorDocument 404 /404.html
404.html = Symlinked config.php
وبالتالي ألف مبروك عليك ملف الكونفنج مهما كانت إعدادات الخادم مؤمنة، لأن هذه الطريقة لم تنتشر بعد.
الطريقة السفاحية 2:
و هي من خلال إستخدام
SSI
لن أقوم بشرح إستخدامه، إن لم تكن تعرف كيف تستخدمه فلتذهب لفرنسا لقضاء شهر عسل و أترك تلك الأمور لأصحابها ! (مش هقولك روح للجحيم زي الأفلام الأجنبي )
إستغلال 1 :
config.shtml = symlinked config.php or whatever!
---------------------------
هناك طريقتين أخرتين لن أقوم بنشرهم لأنهم حتى هذه اللحظة لا يوجد لهم حلول ولم يتم ترقيعهم حتى في أخر اصدار حتى الان وهو 2.2.13 وطبعا لو كتبت الإستثمارات عليه العوض في المواقع و أطفالنا أكبادنا (الله يمسيك بالخير يابو خالد) هيقضوها تدفيس والزون اتش هيهنج!
نيجي للجزء الهام و نسيبنا من كل الكلام العادي اللي قلناه فوق :
نيجي للجزء المهم (ونكتب بالعربي من تاني)
---------------
أساس الثغرة
---------------
أساس الثغرة هو خطأ بملف
request.c
وتم معالجته منذ أكثر من 8 شهور ولكن لم يقم أي شخص بتركيب الترقيع.
تفاصيل هنا :
http://svn.apache.org/viewvc?view=rev&revision=733754
الحل الأسهل لمن لايجيد استخدام أمر (باتش|patch) او لايستطيع تعديل ملفات المصدر. : قم بالترقية لأخر اصدار 2.2.13 حيث أنه غير مصاب ولا يحوي ثغرات منشـــــــورة حتى كتابة هذا المقال.
----------
حل آخر : قم بالعمل على أباتشي 1 لأنه خالي من ثغرات التخطي تلك، ولكن مليء بثغرات من أنواع أخرى يمكنك معالجتها بنفسك وبأدوات أخرى ّ
ملاحظة هامة جداً : أباتشي 1 لا تعمل عليه أي من الثغرات المذكورة، طبعا يشترط الإعداد الصحيح للأباتشي حتى لا تعمل الثغرات.
-----------
مقتطفات شخصية سريعة عن الأباتشي :
أباتشي هو من أكثر البيئات آمنا ضد ثغرات الريموت
أباتشي هو الأكثر شيوعا و أستخداماً
لو قمت بعمل إعدادات صحيحة للمودسيكيورتي 2 مع الأباتشي 2 ستحصل على خادم مؤمن بنسبة 80% من كل أنواع الثغرات والشيلات المنتشرة.
أباتشي يدعم كل شيء تتخيله. و يوجد له موديلات تجعلك تستطيع التحكم في أي شيء .
أباتشي سيرفر أفضل من أباتشي المقاتلة!
-------------
تم . و أرجو أن يكون المقال نال إستحسانكم. و أنا غير مسؤول عن أي إستخدامات غير شرعية/قانونية وردت بهذا المقال، حيث أنه قد تم نشر الحلول أيضا بهدف تعليمي بحت لا أكثر.
--------
لا تنسوا الدعاء لي بالشفاء إن شاء الله.
Comments
Hi. This blog is Drupal
Hi. This blog is Drupal platform ?
مقال أمني روعه
مقال أمني روعه والمدونه عموما جميله علي فكره بزورها باستمرار وشكرا
Welcome Ramy, keep it
Welcome Ramy, keep it up!
----
Why is it always a Trade-off Between Freedom and Security?
محمد
مقال جميل اخي العزيز
هل بالامكان طريقة ترقيع بطريقة اسهل يبدو هناك القليل من الغموض عليها
وهل الاصدارات المصابة تحت 2.2.13
وتحت ولا الجميع