Search 🔎🖥️

TryHackMe|Ignite WriteUp\Walkthrough(Arabic)

بسم الله


رابط الغرفة: https://tryhackme.com/room/ignite

------------------------------------------------------

كلمة IP في كل الكوماندز اللي أكتبها تُستبدل بالـIP للمشين حقتكم على TryHackMe

أول حاجة نشغل الـmachine ونتأكد إننا اتصلنا بشبكة TryHackMe والاتصال مضبوط، بعدين نبدأ بأول خطوة للحل وهي إننا نسوي scan للشبكة باستخدام nmap

sudo nmap IP -vv

طلع معاي بورت واحدة، نرجع نسوي Aggressive سكان على نفس هذه البورت، ونسوي سكان برضو على جميع بورتات TCP.

sudo nmap IP -p- -vv

انتهى الـAggressive scan على بورت 80، شغال عليها Apache. أعطاني برضو محتوى robots.txt وداخله مسار واحد فقط وهو /fuel/

Robots.txt هو ملف يحتوي على المسارات اللي الموقع ما يبغى المتصفحات توصل لها، وأيضا يحتوي على المتصفحات اللي ممنوعة توصل للموقع. أحيان هذا الملف يحتوي معلومات مهمة.

نروح نشوف الصفحة الرئيسية لهذا الموقع

هذا موقع تم تصميمه بمساعدة CMS اللي هو Content Management System  اسمه Fuel نسخة 1.4. الصفحة هذه مليانة معلومات، فيه معلومتين مهمة بتلقونها موجودة، أول شيء:

هنا معطيني المسار لملف database.php اللي يحتوي على الـdatabase configuration، يصير نحتفظ بهذا المسار عشان إذا حصلنا على shell داخل النظام نروح لهذا الملف وممكن نلاقي فيه credentials لمستخدمين آخرين على النظام.

برضو لو نزلنا تحت كمان بنلاقي:

كلمة السر الافتراضية لحساب admin، على المسار /fuel/، وهو نفس المسار اللي لقيناه بـrobots.txt، وبنجرب ممكن يكون كلمة السر الافتراضية لسى موجودة وما تم تغييرها، وهذا من الأخطاء الشائعة.

طيب نروح للمسار fuel ونسجل دخول باستخدام admin:admin

كذا دخلنا وطلع معانا dashboard

لكن قبل ما ندور طريقة داخل الحساب نحصل بها على shell  داخل النظام، بنبحث ونشوف ممكن نلاقي Exploit جاهزة لهذه النسخة من CMS. نبحث باستخدام searchsploit:

هنا طلع معانا أول 3 فوق، كلها RCE لكن استخدموا الثالثة اللي هي رقم 50477 لأن الثنتين اللي فوقها جربتها وما نفعت معاي ومليانة أخطاء. ننسخ الـExploit للمجلد الحالي، ثم نغير اسمها إلى exploit.py للسهولة.

عشان نعرف كيف نستخدمها، نشغلها لحالها بدون arguments

هنا الطريقة يقول python3 ثم الاكسبلويت بعدين الرابط مع -u

هنا اشتغلت معاي تمام وطلع لي prompt يطلب إدخال كوماند وهو بيشغلها على الـvictim. جربت ls و pwd عشان أتأكد إذا هي شغالة تمام.

الحين كل شيء شغال تمام، نحتاج ننفذ كوماند على الـvictim يعطينا reverse shell. أنا استخدمت الـreverse bash shell أخذتها من الموقع revshells وهو موقع ممتاز ويخليك تحصل على shell بسهولة ويجمع الأنواع بمكان واحد.

نجهز الـlistener على جهازنا

الحين نشغل الـshell على الـvictim. أنا جربت ألصقها زي ماهي ما اشتغلت معاي، لكن حطيتها بين علامات تنصيص، وحطيت قبلها bash -c  وضبطت.

الحين توصل لنا الـshell على جهازنا. وبما إن الـvictim  جهاز نواته linux فجدا سهل إننا نسوي stabilization للـshell، ايش يعني؟ يعني نخليها متينة وما تقفل أول ما نضغط ctrl+c ونقدر نستخدم الأسهم و tab completion وكذا.

الخطوات كالتالي:

  • نشغل هذه الكوماند باستخدام python3 إذا ما ضبط عادي نجرب python

       python3 -c 'import pty; pty.spawn(“/bin/bash”)'        

  • بعدين هذه الكوماند

        export TERM=xterm    

  • ثم نضغط على الكيبورد ctrl+z عشان نخلي الـshell ترجع للخلفية
  •  الحين نجيبها لقدام باستخدام هذه الكوماند

stty raw -echo;fg        

الحين نبي نحصل على user.txt وبنلقاه موجود في /home/www-data

والحين نبي root.txt لكن عشان نقرأه نحتاج نرفع صلاحياتنا. تذكرون الملف اللي يحتوي على الـdatabase configuration  اللي لقينا مساره بالصفحة الرئيسية للمتصفح؟ بنشوف لو نلاقي فيه كلمة سر لحساب على النظام.

هو أعطاني هذا المسار fuel/application/config/database.php لكن في النظام المسار يبدأ من /  فالمسار الكامل على النظام هو /var/www/html/fuel/application/config وفي داخل config بنلاقي الملف database.php، نستعرض الملف باستخدام cat.

داخل الملف بنلاقي كلمة سر root.

إذن الـcredentials هي root:mememe. ننتقل لحساب رووت باستخدام su root ، ثم نروح لـ/root وبنلاقي root.txt.

بكذا انتهينا من حل التحدي، كل التوفيق لي ولكم. 

Comments

Popular posts from this blog

TryHackMe|Blog WriteUp\Walkthrough (Arabic)

eJPTv2 Exam Review (Arabic)

TryHackMe|Blueprint WriteUp\Walkthrough (Arabic)