TryHackMe|Easy Peasy WriteUp\Walkthrough (Arabic)
بسم الله
رابط الغرفة: https://tryhackme.com/room/easypeasyctf
كلمة IP في كل
الكوماندز اللي أكتبها تُستبدل بالـIP للمشين حقتكم على TryHackMe
------------------------------------------------------------------------
أول حاجة نشغل الـmachine ونتأكد إننا اتصلنا بشبكة TryHackMe والاتصال مضبوط، بعدين نبدأ بأول خطوة للحل
وهي إننا نسوي scan للشبكة
باستخدام nmap
sudo nmap IP -vv
طلع معانا بورت واحدة مفتوحة وهي 80، نرجع نسوي Aggressive سكان على نفس هذه البورت
sudo nmap IP -p 80 -A -vv
وبرضو نسوي سكان على جميع البورتات اللي على
الجهاز ونخليه شغال بالخلفية ونرجع له بعد وقت نشوف لو فيه أي بورتات زيادة على
الجهاز.
sudo nmap -p- IP -vv
في الـ Aggressive سكان على بورت 80 طلع معانا نسخة nginx اللي هي جواب ثاني سؤال. وطلع معانا برضو محتوى robots.txt وهو ملف يحتوي على المسارات اللي الموقع ما يبغى المتصفحات توصل لها، وأيضا يحتوي على المتصفحات اللي ممنوعة توصل للموقع. أحيان هذا الملف يحتوي معلومات مهمة. هنا المسار الموجود هو الصفحة الرئيسية، إذا شيكتوا عليها وعلى الـsource code ما بتلاقون شيء.
الحين بنسوي directory
enumeration باستخدام gobuster
gobuster dir -w /usr/share/dirb/wordlists/common.txt -u htttp://IP/ -t
64
نروح نشوف hidden
إذا شيكتوا عليها وعلى الـsource
code ما بتلاقون
شيء. بنرجع نسوي directory enumeration للمسار hidden ونشوف لو
نلاقي حاجة
gobuster dir -w /usr/share/dirb/wordlists/common.txt -u
htttp://IP/hidden -t 64
تمام طلع معانا مجلد whatever لو نروح له بنلقى نفس hidden صفحة فاضية وخلفية لكن الفرق هنا بالـsource code فيه عنصر paragraph ولكنه مخفي، ويحتوي على سلسلة أحرف واضح إنها مشفرة بـbase64.
ناخذ هذه السلسلة ونسوي لها عكس تشفير، عن طريق إننا نحفظها في ملف ثم نستخدم الأداة base64 عشان نفك التشفير.
وبكذا حصلنا على أول فلاق وهو أول إجابة في Task 2. ولو لاحظنا عنوان الصفحة مكتوب dead end فخلاص بنوقف وما ندور زيادة في هذه البورت.
الحين نرجع للـscan اللي سويناه على جميع البورتات ونشوف لو طلع
معانا أي بورت جديدة.
طلع معانا ثنتين جديدة بورت 6498 و 65524، إذن عندنا على الجهاز 3 بورتات وهذا جواب السؤال الأول. نسوي على 6498 و 65524Aggressive scan عشان نجمع عنها معلومات.
بورت 6498 شغال عليها SSH
وبورت 65524 شغال عليها http والسيرفير Apache وهذه إجابة السؤال الثالث. هنا طلع معاي محتوى robots.txt هو الصفحة الرئيسية، لو نروح ونشيك عليها بنلقى صفحة طبيعية لـApache لكن لو ركزنا في الأسطر، في سطر غريب يحتوي على أرقام وحروف، اللي هو الفلاق رقم 3 وهو ثالث إجابة في Task 2.
ولو نشيك على السورس كود بنلاقي برضو نفس
الطريقة paragraph مخفي يحتوي
على سلسة أحرف مشفرة، ومعطيني النوع أول حرفين منه لكن مو مكملة، بما إنه أول
حرفين هي ba، إذن بيكون base64 أو base62.
استخدمت هذا الموقع عشان أتعرف على نوع التشفير وعشان أفكه.
باستخدام Cipher
Identifier أعطاني أول
احتمال إنه youtube link طبعا لا،
وثاني احتمال هو base62، إذن
نستخدمه
طلع معانا كلمة تبدأ / معناته إنه مسار وهو إجابة السؤال الرابع في Task
2، نروح
للمسار هذا ونشوف وش نلاقي فيه.
طلع معانا صفحة فيها خلفية وصورة صغيرة بالنص وبرضو فيه كلام مكتوب بالأسود تحت الصورة لكنه مو واضح، ندخل للـsource code عشان نشوفه بشكل أوضح.
هذا الكلام الموجود تحت الصورة بشكل أوضح،
ويبدو إنه hash، بأستخدم
هذا الموقع عشان يحدد نوع الـhash ويكسرها ويعطيني الإجابة، فبأخليه يجرب كل
الأنواع لأني ما أعرف ايش نوع الهاش.
أنصحكم تستخدمون نفس هالموقع لأن هو الوحيد اللي طلع معاي نتيجة.
طلعت النتيجة وهي إجابة السؤال الخامس في Task
2، وترجمتها
"كلمة سري لهذا العمل"، فيبدو إنها كلمة سر لكن لايش؟؟ ممكن تكون لملف
مخفي بداخل الصورة اللي موجودة فوق الهاش، وهي الصورة الصغيرة بالصفحة، بنشوف
ونبحث لو كان فيه أي معلومات مخفية بداخل الصورة، وهذه العمليات من إخفاء البيانات
داخل ملفات أخرى تُعرف باسم steganography.
أول شيء بنحمل الصورة على جهازنا، وعشان نعرف
هل فيه معلومات مخفية بداخلها أو لا بنستخدم هذه الكوماند:
steghide info binarycodepixabay.jpg
وفعلا طلع معاي ملف مخفي بداخل الصورة اسمه secrettext.txt نستخرجه بهالطريقة باستخدام نفس الأداة:
الحين الملف صار موجود عندنا، نستعرض محتواه:
بداخل الملف عندي اسم مستخدم وكلمة سر
بالباينري، عشان نقرأها نحتاج نحولها من باينري، بأستخدم cyberchef نبحث عن from binary ونلصق كلمة السر، وبيعطينا الإجابة وهي
إجابة السؤال السادس في Task 2.
والحين صار عندنا كلمة سر واسم مستخدم، وبما
إن عندنا SSH موجود على
الجهاز، إذن نقدر ندخل عليه باستخدام هذه المعلومات. لكن قبل ما نروح لـSSH، بنشيك على robots.txt لو نلاقي فيه معلومات.
طلع موجود فيه قيمة لـuser agent وكأنها hash بنسوي لها crack بهذا الموقع ونفس الشيء نخليه يجرب كل أنواع الهاشيز ليه يطلع معاه
شيء صحيح.
-------------------------------------------------------------
الحين ننتقل لـSSH ونسجل دخول على النظام. بيدخلنا مباشرة على
المجلد الرئيسي لـboring وهناك بنلقى
اليوزر فلاق.
ولكن مكتوب لنا إنه تم تدويره، عشان نرجعه
لأصله نروح لـcyberchef ونبحث عن rot13، ونستخدمها عشان نطلع الفلاق اللي هو الـuser
flag في Task
2.
الحين نبي نحصل على الـroot
flag فلازم نرفع
صلاحياتنا، وبدون سكريبتات ولا نتعب نفسنا، رح نستخدم cronjobs وكيف عرفت هالشيء، من صفحة التحدي نفسه
مكتوب إننا بنستخدمها للـprivilege escalation
عشان نعرض الـcronjobs الموجودة على الجهاز، نستخدم
cat /etc/crontab
عندي واحد يملكه root ويتنفذ كل دقيقة، وش يسوي؟ يروح لـ/var/www/ ثم ينفذ سكريبت اسمه “.mysecretcronjob.sh”
، بنشوف أول
شيء صلاحيات هذا الملف
إذن الملف يملكه boring اللي هو احنا، معانته نقدر نعدل عليه، وبما
إن الـroot ينفذ الـcronjob اللي يحتوي على هذا السكريبت، معناته نقدر
نخلي الـroot ينفذ اللي
نبي، بحيث إننا نحط أي شيء نبي الرووت ينفذه في هذا السكريبت.
طيب احنا نبي نحصل على صلاحيات أعلى، نبي
نكون root، في طريقة
مره سهلة، إننا نخلي حسابنا boring ينفذ أي كوماند بدون ما
يحتاج إنه يعطي باسوورد، إذا سوينا هالشيء نقدر ننفذ الكوماند sudo
su اللي تخلينا نصير رووت بدون ما نعطي كلمة سر.
الطريقة إننا نضيف هذا السطر للسكريبت
echo "boring ALL=NOPASSWD:ALL" >> /etc/sudoers
هذا السطر بيطبع هذه الجملة boring
ALL=NOPASSWD:ALL في نهاية
الملف /etc/sudoers، وهذا الملف يحتوي على المستخدمين والقروبات وصلاحياتهم، واحنا
بهذه الجملة خلينا المستخدم boring ينفذ أي كوماند يبغاها بدون ما يحتاج يعطي كلمة سر.
إذن نفتح السكريبت باستخدام نانو ونضيف
الكوماند
بعدين نحفظ الشغل بـctrl+x ثم نضغط y ثم نضغطEnter. الحين كل شيء جاهز، بس نستنى بداية دقيقة
جديدة ونكتب sudo su وبنحصل على root
shell. نروح لـ/root وهناك بنحصل آخر فلاق في ملف مخفي اسمه root.txt وهذا آخر سؤال في التحدي.
























Comments
Post a Comment