Search 🔎🖥️

TryHackMe|Ha Joker WriteUp\Walkthrough (Arabic)

بسم الله

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

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

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

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

sudo nmap IP -vv


طلع معانا 3 بورتات: 22، 80، 8080، الحين نرجع نسوي Aggressive scan على نفس البورتات

sudo nmap IP -p 22,80,8080 -vv -A

من المعلومات اللي طلعت معانا من هذا المسح هي:

زي مو واضح بالصورة، بورت 80 يشتغل عليها أباتشي نسخة 2.4.29 وهذه إجابة السؤال الثاني، وبورت 8080 برضو نفس الشيء، لكن الفرق إن هنا طلع لي خطأ غير مصرح به، معناته إني أحتاج أدخل اسم مستخدم وكلمة سر للدخول على هذه الصفحة، بكذا عرفنا إن البورت اللي ما تحتاج authentication هي 80 وهذا جواب السؤال الثالث واللي تحتاج هي 8080 وهذا جواب السؤال السابع.

إذن الآن بنركز على بورت 80

نسوي directory enumeration عليها

gobuster dir -w /usr/share/dirb/wordlists/common.txt -u htttp://IP/ -t 64

طلع معانا أول ملف يبغاه وهو phpinfo.php وهذا جواب السؤال الخامس، ولسى في ملف آخر، عشان نوسع البحث ممكن نستخدم الإختيار x اللي يضيف أي امتداد نبغاه لجميع الكلمات اللي موجودة في الـwordlist، وهذه الطريقة مفيدة جدا إذا كنا نبحث على ملفات جوا السيرفير. إذن نستخدم نفس الكوماند مع إضافة الامتدادات في الأخير

gobuster dir -w /usr/share/dirb/wordlists/common.txt -u htttp://IP/ -t 64 -x txt,xml

هنا طلع معانا الملف الثاني وهو secret.txt وهذا جواب السؤال الرابع

نشوف هذا الملف بالمتصفح، في عندي محادثة بين شخصين Batman وJoker

في الأسئلة طالب اسم واحد فقط ويتكون من 5 أحرف إذن هو Joker

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

الحين خلصنا من هذه البورت، ننتقل لـ 8080.

هنا لو رحنا لها يحتاج مننا كلمة سر، احنا الآن عندنا اسم مستخدم لكن مافي كلمة سر، إذن بنستخدم Hydra عشان نحصل على كلمة السر، الـbrute force attack بتكون على بروتوكول HTTP الميثود GET وطريقة كتابة الكوماند مفصلة تلقونها على المقطع في يوتيوب من 5:29 إلى 8:34 ، على العموم الكوماند بتكون كالتالي:

hydra -l joker -P /usr/share/wordlists/rockyou.txt IP -s 8080 http-get /

أول شيء وضحنا اسم المستخدم ثم القائمة اللي بنبحث داخلها عن كلمة السر، ثم العنوان والبورت، ثم حددنا الـ HTTP Method اللي هي get وبعدها حددنا المسار اللي فيه صفحة الدخول اللي تطلب كلمة السر واسم المستخدم وهو “/” نضغط Enter ونعطيه وقت يشتغل. 

حصلنا على الـcredentials، كلمة السر هي ****** ناخذها ونجاوب السؤال الثامن. الحين نروح لبورت 8080 ونسجل دخول، فتحت معانا مثل المدونة. الحين بما إن عندنا كلمة سر واسم مستخدم، إذن بإمكاننا نسوي سكان باستخدام gobuster ونحدد كلمة السر واسم المستخدم بالاختيار U و P فتصير الكوماند كذا:

gobuster dir -w /usr/share/dirb/wordlists/common.txt -u htttp://IP:8080/ -t 64 -U joker -P ****** 

طلع معانا نتائج كثيرة بنركز على /administrator وهو جواب السؤال التاسع، و /robots.txt

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

على /administrator فيه صفحة تسجيل دخول على مدونة Joomla، وبما إن ما عندنا كلمة السر واسم المستخدم فبنأجل هالصفحة شوي.

الحين في الأسئلة يقولي إن فيه ملف مضغوط، لما جربت أبحث باستخدام gobuster وأضفت الامتداد zip ما طلع معاي حاجة، فرجعت استخدمت nikto

وطلع معانا الملف لكن اصبروا شوي ممكن يتأخر كم دقيقة لين يطلع معاكم، اسم الملف هو جواب السؤال العاشر.

الحين نروح للمتصفح وندخل على هالرابط http://IP:8080/backup.zip مجرد ما ندخل بيحمل الملف، نختار مكان مناسب على الجهاز ونحمله ثم نفك الضغط عن الملف.

هنا طالب منا كلمة سر، ماهي عندنا لذلك بنسوي crack للملف عن طريق استخدام الأداة fcrackzip

طلعت معانا الباسوورد ****** وهي جواب السؤال 11، الحين نقدر نفك الضغط عن الملف بـunzip

لما يفتح الملف بنلقى عندنا مجلدين جديدة وهي site و db، نروح لـdb لأن من اسمه يبدو إنه متعلق بقاعدة بيانات وممكن نلقى داخله معلومات تساعدنا بتسجيل الدخول على Joomla.

داخل db عندي ملف joomladb.sql نستعرض هذا الملف في محرر نصوص أسهل لأنه طويل جدا

الحين لسهولة الحصول على كلمة السر، هو بالأسئلة أعطانا تلميح قوي، وقال “super duper user” فبكل سهولة نبحث داخل الملف عن نفس هذه الجملة وبيطلع لنا اسم المستخدم والهاش لكلمة السر

ننسخ الـhash ونحفظها داخل ملف ونسميه مثلا hash، بعدين نستخدم john عشان نسوي لها crack

إذن كلمة السر هي ******** وهي جواب السؤال 12 واسم المستخدم هو admin وهو جواب السؤال 13، ناخذ هذه المعلومات ونروح على /administrator ونسجل دخول.

الطريقة اللي بتضبط معاكم إن شاء الله وتعطيكم shell هي إنكم تختارون Extensions من أعلى الصفحة، ثم sTemplates >> Template ثم اختاروا beez3


بعد كذا اختاروا صفحة index.php من القائمة اللي على اليسار. بتفتح معاكم الصفحة، الحين نحذف الكود اللي فيها ونجيب مكانه الـshell حقتنا، أنا استخدمت الـpentestmonkey php shell أخذتها من الموقع revshells

نجهز الـListener  على جهازنا nc -nlvp 4444

ثم نرجع للمتصفح ونحفظ التغييرات من Save أعلى الصفحة ثم نضغط على Template Overview الحين المفروض إن الاتصال يجينا على جهازنا.


تمام الحين حصلنا على وصول للجهاز الحمد لله. احنا دخلنا بحساب المستخدم  www-data وهذا جواب السؤال 14، ولو عرضنا القروبات اللي ينضم لها بنلاحظ وجود قروب اسمه lxd وهو جواب السؤال 15

**lxd  هو نوع من أنواع الـContainers وشرحته بالتفصيل على قناتي في فيديو الشرح الموجود بالأعلى من الدقيقة 18:40 إلى 26:10 إذا حابين ارجعوا لها.

إذا بحثنا في قوقل وكتبنا lxd privilege escalation بنلقى طريقة تخلينا نرفع الصلاحيات على Explit-db على هذا الرابط. نبتع الطريقة المكتوبة خطوة خطوة.

أول شيء على جهازي أشغل هذه الـcommand

wget https://raw.githubusercontent.com/saghul/lxd-alpine-builder/master/build-alpine

وبينزل عندي ملف جديد اسمه build-alpine

بعد كذا أشغل هذه

sudo bash build-alpine

بينزل ملف مضغوط

باقي نحمل نفس الـexploit على جهازنا، والطريقة سهلة، ناخذ رقمها أول شيء من نفس الصفحة على Exploit-db

ثم نشغل هذه الكوماند وبينسخ لنا الاكسبلويت على المجلد الحالي

searchsploit -m 46978

mv 46978.sh exploit.sh

هنا حملتها ثم غيرت اسمها للسهولة فقط.

الحين كل الملفات اللي أحتاجها تحملت، بأشغل بايثون سيرفير على جهازي عشان أقدر أنزل الملفات اللي أحتاجها على جهاز الضحية.

الحين نروح لجهاز الضحية مجلد /tmp وننقل الملفات اللي نحتاجها بـwget واللي هي ملف الاكسبوليت والملف المضغوط، مثل اللي واضح بالصورة.

بعدين نشغل السكريبت والطريقة كالتالي:

نغير صلاحيات exploit.sh عشان يمدينا نشغله باستخدام

chmod +x exploit.sh

بعدين نشغل الاكسبوليت كذا

نستنى شوي وبيطلع لنا root shell زي مو واضح لما شغلت الكوماند id طلع لي إني root، نروح لـ/root وناخذ الفلاق، ولأن الحين احنا جوا الـcontainer  عشان نوصل لملفات النظام أول شيء بنروح لـ/mnt/root ثم من هناك لـroot فيصير المسار /mnt/root/root وهنا بنلاقي الملف اللي يبغاه واسمه *****.*** واسم الملف هو إجابة السؤال 20.

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

Comments

Popular posts from this blog

TryHackMe|Blog WriteUp\Walkthrough (Arabic)

eJPTv2 Exam Review (Arabic)

TryHackMe|Blueprint WriteUp\Walkthrough (Arabic)