المقال المثبتمواضيع عامةمواضيع ومقالات

مقال : مقدمة عن هجمات privilege escalation attack

تم أرشفة هذا المحتوى


امن المعلومات ليس مجرد اخطاء برمجية وتقنية   تصاب بها الانظمه تسبب في اختراق النظام , بل هي امر اكثر من ذلك , نستطيع ان نطلق على امن المعلومات هو عمل كل شي يمكنك توقعة من الممارسات التي تتعرض لها الانظمه والتي قد تكون ممارسات خطيره وغير متوقعة اثناء تصميم النظام . و يجب على مدير النظام او مختبر الاختراق ان يضع النظام تحت التهديد في جميع الاوقات ويجب ان يتوقع ان يتم الاختراق بشكل بسيط جدا . الخطر القادم له العديد من المصادر ويجب ان تتوقع الخطر او الاختراق من اي مصدر  مثل تطبيق الويب قد يتسبب في اختراق السيرفر بالكامل او اختراق السيرفر نفسه يؤثر على تطبيق الويب نفسه , من الممكن ايضا احد البرمجيات الموجوده في السيرفر تتسبب في الوصول الى السيرفر واختراقة , كذلك هناك بعض الامور التي يجب عليك توقعها بعد عملية الاختراق يجب وضع جميع الاحتمالات مثل : احتمال الاختراق , كذلك احتمال ماذا سيكون بعد الاختراق , احتمال في حالة وصول المخترق الى المكان الفلاني او الصلاحيات الفلانية . احد هذه الامور التي ارغب في التحدث عنها وهي من الامور التي يجب توقعها بعد عملية الاختراق او بعد عملية استغلال ثغره وهي : privilege escalation .

 

ماهي هجمات privilege escalation attack ؟

هجمات privilege escalation او بشكل حرفي هجمات تخطي الصلاحيات : هي عباره عن ثغرات او اخطاء برمجية موجوده في برمجه النظام او في بنية النظام نفسه للحصول على امتيازات وصلاحيات اكبر من تلك الممنوحه الى المستخدم والتي يفترض ان لا يتجاوزها ولا يستطيع تنفيذ بعض الامور خارج صلاحياته والتي تندرج تحت client side exploits.

هناك نوعين من تخطي الصلاحيات :

النوع الاول Vertical privilege escalation  : وهو ان الهاكر يمنح نفسه صلاحيات اعلى عن طريق بعض الاساليب والثغرات التي قد تكون موجوده في النظام او احيانا اعطاء نفسه صلاحيات عن طريق خلل في تصميم بنية النظام بحيث يستطيع التهرب من القيود الي هي عليه ويعمل حاجات مش مسموحه الا للمدير او الادمن ويستخدم العديد من الامور مثل استخدام سكربتات واستغلالات لثغرات او unauthorized code.  هذا النوع يحدث بشكل عام عندما يكون هناك شئ اسمه صلاحيات اعلى وصلاحيات , ليس من الضروري عندما اتكلم عن صلاحيات ان يكون هناك اعلى واقل ربما هناك ملكية وهي تعتبر من الصلاحيات . المزيد من التوضيح :

300px-Priv_rings.svg

لدينا نظام النظام يحتوى على ثلاث مستويات مستوى 1 ومستوى 2 ومستوى 3 وهناك مستخدمين في جميع المستويات ولا يحق للمستخدم في المستوى 1 ان يدخل المستوى 2 . ولكن بطريقه ما استطاع الوصول الى النظام والدخول الى المستويات الاعلى منه وينفذ مهمام لا يحق له الوصول اليها . ولكن احيانا يكون هناك صلاحيات وقواعد لا يمكن ان تفعلها والنظام مستوى واحد لا يوجد ماهو اعلى واقل منك وهذا هو النوع الثاني وربما يكون النوع الثاني يطبق في نفس فكره الاول

النوع الثاني Horizontal privilege escalation,  : هو الوصول الى بيانات مستخدم اخر له صلاحيات اعلى من صلاحياتك وتنفيذ امور لا يجب عليك تنفيذها  ولكن بمعلومات الشخص الاخر او المستخدم الاعلى منك في الصلاحيات  .

ناخذ نظام وندوز كمثال في نظام وندوز خاصة في Windows services يوجد بعض الخدمات تحتاج الى صلاحيات خاصة في النظام لتنفيذها وهي الاغلب تلك العمليات التي تخص النواه الخاصه بالنظام ولكن في بعض الحالات وخاصه عن استغلال ثغرات buffer overflow يتم تنفيذ اكواد معينة لا ستغلال اخطاء معينة للوصول الى صلاحيات تمكنها من الوصول الى النواه الخاصه بنظام وندوز.

عملية تخطي الصلاحيات يمكن ان تكون على مستوى الشبكة بالكامل لتحصل على اكسيس على مصادر الشبكة  وليس لك الحق في الوصول يعتبر نوع من انواع تخطي الصلاحيه او المسموح به للمستخدم .

 

لماذا احتاج الى SYSTEM level privileges ؟

انظمه التشغيل بالاخص تحتوي على نظام صلاحيات معقد خاص بأدارة النواه في النظام خاصة انظمه لينكس اكثر تقدما من وندوز . كذلك اي برمجيات كبيره تجد انها تحتوي على صلاحيات بحيث المستخدم له امور معينة يقوم بها ولا يستطيع تنفيذ امور معينه اخرى , عملية تخطي الصلاحيات تمكنك من الوصول الى اجزاء في البرمجيات والانظمه تمكنك من الوصول الى كامل النظام , على سبيل المثال اذا وجدت ثغره في تطبيق ويب ووصلت الى صلاحيات مستخدم www-data لا يمكنك تعديل شئ خاص باعدادات السيرفر ويجب عليك الحصول على root لكي تتحكم في السيرفر بشكل كامل وتنفذ ما تريد , مثال اخر في ثغرات buffer overflow يمكن استخدامها لأعطائك صلاحيات اعلى في النظام وبهذا تهرب من القيود المفروضه عليك مثل الثغره الشهيرة KiTrap0D التي تقوم بانشاء session جديد بصلاحيات عالية تستخدمه لتنفيذ الامور التي تحتاج الى صلاحيات اعلى الثغرة تعمل على معمارية 32 بت فقط , ايضا يمكن القاء النظر على اداة Pinjector التي تمكننا من حقن اكواد خبيثه في العمليات التي تعمل في النظام والتي تملك صلاحيات عاليه يمكنك التعرف كيف تعمل الاداة من هنا

 

 

حمل الفيديو من هنا :

http://www.tarasco.org/security/Process_Injector/DEMO1_pinjector.avi

 

كيفية تتم عملية الاختبار:

يجب عليك اولا معرفة النظام جيدا خصوصا نظام الصلاحيات في النظام كيف تعمل على اي اساس يتم تمييز الحساب للمدير من الحساب للمستخدم العادي , غايتنا هو تنفيذ امر لا يمكننا نتفيذه بواسطة المستخدم الحالي الذي نملكة , او تنفيذ امر مع صلاحيات اعلى بنفس الحساب الخاص بنا , تعتمد اي مستوى سوف اصل اليه في نظام الصلاحيات على المستخدم الذي سوف تاخذ وظائفه .

يجب علينا التركيز في كل جزء يمكن للمستخدم ادخال معلومه جميع المدخلات في الموقع على سبيل المثال يجب وضعها في الحسبان

( making a payment, adding a contact, or sending  message)

لناخذ هذا المثال

POST /user/viewOrder.jsp HTTP/1.1
 Host: www.example.com
 ...

 groupID=grp001&orderID=0001

هذا الطلب يسمح لمستخدمين التابعين للمجموعة grp001 الوصول الى الطلب 0001 , يجب علينا اختبار اذا كان يمكن الوصول الى المتغير 0001 من مستخدم لا ينتمنى الى مجموع gp001

هنا رد السيرفر بعد عملية تسجيل دخول ناحجه وتظهر فيها جدول مخفي :

 

HTTP/1.1 200 OK
Server: Netscape-Enterprise/6.0
Date: Wed, 1 Apr 2006 13:51:20 GMT
Set-Cookie: USER=aW78ryrGrTWs4MnOd32Fs51yDqp; path=/; domain=www.example.com 
Set-Cookie: SESSION=k+KmKeHXTgDi1J5fT7Zz; path=/; domain= www.example.com
Cache-Control: no-cache
Pragma: No-cache 
Content-length: 247
Content-Type: text/html
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Connection: close

<form  name="autoriz" method="POST" action = "visual.jsp"> 
<input type="hidden" name="profile" value="SysAdmin">
<body onload="document.forms.autoriz.submit()">
</td>
</tr>


الحصول على صلاحيات اعلى بواسطة الميتاسبلويت :

ماذا اذا استطاع المختبر تغيير القيمة للمتغير profile الى “SysAdmin” سوف يصبح  مدير ذو صلاحيات كاملة .

على سبيل المثال افترض اذا ما حصلنا على meterpreter في الميتاسبلويت لجهاز وندوز .

meterpreter

حصلنا على اتصال بالجهاز المخترق , نريد الان صلاحيات اعلى لتنفيذ بعض الاكواد الخبيثه . نستخدم الامر GetSystem ولكن اول شئ نحمل الموديول الخاص بالامر عن طريق الامر التالي

use priv

بعد تحميل الحزمه وكل شئ جاهز هذه الخيارات الي تقدر تستخدمها مع الامر getsystem

getsystem -h

ننفذ الامر للحصول على صلاحيات اعلى :

getsystem command

 

احد اشهر الامثلة وهو iOS jailbreaking :

iOS jailbreaking

الكثير يعرف الجيل بريك للايفون والعديد قام به في جهاز الايفون الخاص به , وهو في الحقيقه احد انواع SYSTEM level privileges بحيث المستخدم يتخطى  صلاحيات المستخدم العادي التي قامت ابل بعمله والوصول الى root والتعديل في النظام ما تريد , ومن هذا المبدأ يستطيع الهاكر او من قام بعمل سكربت تخطي ان يقوم باي مهمة مثل ان يقوم بتعطيل عملية التحقق من المشتريات التي موجوده في اجهزه الايفون ويمكن للجهاز من بعد هذا ان يقبل البرمجيات المكركه . ايضا ليس بالضروره ان تكون عملية الكسر ورفع الصلاحيات فقط للحصول على تطبيقات مجاينة يمكن استخدام الهجوم في الحصول على اكسيس للنظام واكسيس لمناطق في النظام لكي استطيع برمجه بعض الاكواد والبرمجيات التي تكون مفيده , على سبيل المثال ابل ترفض تماما اي تطبيق يقوم بتغيير الثيم بسبب لها سياستها الخاصة كذلك قد يؤثر على اداء النظام  كذلك ترفض العديد من الامور كسياسة خاصه بها ولكن بواسطة الجيل بريك يوجد العديد من البرمجيات الموجوده في الماركت الخاص بسيديا للعديد من الادوات التي تحتاج الى صلاحيات اعلى لا يمكن الحصول على هذه الصلاحيات بدون الجيل بريك . نفس المفهوم لعملية rooting لأجهزة android .

علي الوشلي

علي الوشلي من اليمن, مدير مجتمع iSecur1ty , مهتم بأمن المعلومات واختبار الاختراق . حسابي على تويتر : ali_alwashali@

مقالات ذات صلة

‫4 تعليقات

  1. مقاله رائعه اخ علي

    احببت ان اضيف لمقالتك ايضا انه يمكنك تصعيد صلاحياتك باستخدام الميتاسبلويت
    ( حاله حصولك علي meterpreter session ) من خلال عمليات الـ token stealing سواء باستخدام
    الملحق stdapi او incognito .. … او حتي يمكن عمل ذلك باستخدام الملحق railgun باستدعاء الداله المناسبه
    كل والود والتقدير والاحترام

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

زر الذهاب إلى الأعلى