Search 🔎🖥️

TryHackMe|ColddBox:Easy WriteUp\Walkthrough (Arabic)

بسم الله


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

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

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

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

sudo nmap IP -vv

طلع معانا بورت واحدة فقط وهي 80 بنسوي عليها Aggressive scan

sudo nmap IP -p 80 -A  

طلع معانا إن الموقع على بورت 80 يستخدم wordpress، وبما إنه يستخدم wordpress إذن بنستخدم في الـscans القادمة الأداة wp-scan

الحين بنبدأ مسح على جميع البورتات ونشوف لو نلاقي بورت أخرى مفتوحة، وعلى بال ما هذا الـ سكان شغال نشتغل على بورت 80 ونشوف وش نقدر نطلع منها معلومات كمان.

sudo nmap IP -p- -vv

 

أول شيء بنسوي directory enumeration  باستخدام gobuster

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

 

طلع معانا مسارين مثيرة للاهتمام وهي /hidden, /wp-admin

/wp-admin هو صفحة تسجيل الدخول على الداشبورد الخاصة بـwordpress

/hidden يحتوي على ملاحظة فيها أسماء 3 أشخاص وعلى الغالب هذه الأسماء تعود لمستخدمين فعليين على النظام.

هنا ذكر C0ldd, Hugo, Philip

أما الصفحة الرئيسية للموقع فما تحتوي على أي شيء مهم.

 

الحين نستخدم wp-scan  عشان يجمع لي معلومات عن الموقع مثل vulnerable themes, vulnerable plugins, users وهكذا، وبنسوي كذا باستخدام هذه الكوماند

طبعا العنوان يتغير بحسب الماشين حقتكم.

طلع معانا 3 أسماء لمستخدمين وبالضبط مثل الأسماء اللي كانت في /hidden، وهذه الحركة موجودة كثير في الـCTF.

نرجع نستخدم wp-scan ونسوي brute force  على هذولا المستخدمين الثلاثة، لكن قبل ما نبدأ لازم نحفظ أسمائهم في ملف عندي ونسميه مثلا users، كل اسم يكون في سطر لحاله. ثم نبدأ البحث عن كلمة السر:

اصبروا عليه شويتين وبيعطيكم كلمة السر لـc0ldd 

نروح لـ/wp-admin ونسجل دخول

طيب الحين دخلنا على الداشبورد ونبغى طريقة نحصل على shell، في طريقة ممتازة وسهلة، وكثير تضبط مع wordpress

الحين لو نلاحظ في الصفحة الموجود بالموقع فيه رقم فوق يدل على الصفحة

مثلا هذه صفحة واحد

لو جربنا وحطينا صفحة غير موجودة مثل 3، يعني نبدل رقم واحد ب 3

بيطلع لنا صفحة خطأ

والحين مو لو غيرنا صفحة الخطأ هذه بـreverse shell ورجعنا سوينا تحديث لها، موب تشغل الـshell ونحصل عليها على جهازنا؟ إلا؛ إذن هذا اللي بنسويه.

نروح أول شيء على Appearance من الاختيارات الجانبية ومن هناك نختار Editor.

إذا دخلنا على الـEditor بنلقي صفحات php متنوعة، ومنها صفحة الخطأ. نضغط عليها

الحين نحذف الكود اللي فيها ونجيب مكانه الـshell حقتنا، أنا استخدمت الـpentestmonkey php shell أخذتها من الموقع revshells

ثم لما ننسخ الكود في الصفحة نضغط على update


نجهز الـlistener  على جهازنا، ثم نروح ونسوي تحديث للصفحة 3

وبكذا بنحصل على 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        

الحين صار معانا stable shell نقدر نستخدمها براحتنا بدون ما نخاف إنها تطير أو تطفشنا إذا جينا نمسح ونعدل بالكلمات. إذا رجعت لكم الـshell  ماهي منتظمة وبادية من نص السطر، بس شغلو أي كوماند مثل id وبترجع تضبط بإذن الله.

الحين كل شيء جاهز معانا، بنحمل linpeas.sh على الـvictim علشان يجمع لنا معلومات. في طرق كثيرة لنقل الملفات بأستخدم هالمرة بايثون سيرفير وwget

نروح أول شيء للمجلد اللي في جهازنا اللي يحتوي على linpeas.sh ونشغل هذه

وعلى الضحية نروح لـ /tmp ونشغل هذه

ولما يوصل الملف نقفل الاتصال باستخدام ctrl+c على جهازنا.

نغير صلاحيات الملف ونخليه ملف تشغيلي chmod +x linpeas.sh وبعدين نشغله ونعطيه وقته ونشوف وش يطلع معانا نتائج

 على بال ما linpeas.sh يشتغل، نروح نشوف المسح اللي سويناه على جميع البورتات

طلع معانا بورت إضافية وهي 4512، نسوي عليها سكان لوحدها عشان نشوف وش شغال عليها

sudo nmap IP -p 4512 -sV

طلع شغال عليها SSH

معناته بنشوف لو قدرنا نحصل على credentials  من خلال linpeas.sh ممكن نستخدمها في تسجيل الدخول على الجهاز باستخدام SSH. صحيح إن احنا الحين داخلين ومعانا stable shell  لكن برضو يضل اتصال SSH أفضل وأفضل.

خلص linpeas وحصلنا على كلمة سر لـc0ldd نجرب نستخدمها وندخل على SSH وفعلا دخلنا.

نبحث عن الـuser flag بالمجلد الرئيسي وراح نلاقيه، وإذا عرضناه بنلاحظ إنه مشفر باستخدام base64، على العموم إنتم لما تعطون الإجابة بتعطونها بدون فك التشفير


بعد فك التشفير طلع معانا جملة إسبانية ومعاناتها مبروك أنهيت المرحلة الأولى.


الحين نبي نحصل على الـroot flag إذن لازم نسوي privilege escalation

بنشوف لو فيه أي كوماندز c0ldd يقدر ينفذها بـsudo بدون ما يعطي كلمة سر، ونقدر نعرف هذا عن طريق استخدام sudo -l

إذن c0ldd يقدر ينفذ vim, chmod,ftp بصلاحيات root، وكل هذه الثلاثة نقدر نستخدمها عشان نسوي privilege escalation، وبوريكم هي وحدة وحدة، وإنتو اختاروا أي وحدة وحلو فيها.

vim

  •  نفتح أي ملف باستخدام sudo vim

  • بعدين بداخل الملف أول ما يفتح نكتب كذا

  • نضغط Enter مباشرة بيخرجني على root shell

 

 هذه طريقة، الطريقة الثانية باستخدام ftp

  • أول شيء نشغل sudo ftp
  • بيطلع معانا prompt في بدايته ftp
  • نكتب فيه !/bin/bash
  • نضغط Enter مباشرة بيخرجني على root shell

أما chmod

ببساطة نغير صلاحيات /root ونخليه مقروء للكل باستخدام

sudo chmod 777 /root

ثم نروح وناخذ الفلاق

هنا نفس الشيء الفلاق مشفر ولو فكيتوه وترجمتوه يطلع معاكم المعنى مبروك أنهيتوا المشين.

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

Comments

Popular posts from this blog

TryHackMe|Blog WriteUp\Walkthrough (Arabic)

eJPTv2 Exam Review (Arabic)

TryHackMe|Blueprint WriteUp\Walkthrough (Arabic)