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