Search 🔎🖥️

Bandit Level 26 to 33 -End- (Arabic)

 بسم الله


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

في المرحلة 26←27 مشكلتنا إننا كل ما حاولنا نتصل بالمرحلة، قَبَل الاتصال ثم يخرجنا مباشرة بعد ما يطبع الـmessage اللي تطلع لما ندخل على أي مرحلة. في الاقتراحات للحل بالموقع حاط لنا more وهي اللي بنستخدمها للحل.  

عشان نحل هذه المرحلة نبغى الـbuffer لـmore يطلع لنا، كيف نسوي كذا؟ نصغر نافذة التيرمينال جدا جدا، ونكبر الخط جدا جدا، مثل كذا:

وليه نسوي كذا؟ عشان نبغى تطلع لنا more، الحين نضغط enter ونتصل بالمرحلة 26، وبتطلع more وهذا اللي نبي

الحين من لوحة المفاتيح نضغط على v وبكذا بنصير داخل Text Editor والحين نقدر نكبر الشاشة عادي، ثم نكتب كذا على الشاشة

:set shell=/bin/bash

اكتبو نفس الشيء بالضبط بداية من : ، ثم اضغطوا Enter

بعدين نرجع نكتب على الشاشة

:shell

ونضغط Enter

وبكذا بنحصل على bash shell، نستعرض الملفات وبنلاقي setuid اسمه bandit27-do، وهو يسوي أي كوماند نرسلها معاه كـargument بصلاحيات bandit27، إذن بكل سهولة نعرض الملف اللي يحتوي على كلمة السر لـ27

ناخذ كلمة السر وننتقل للمرحلة اللي بعدها

ssh bandit27@bandit.labs.overthewire.org -p 2220

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

في المرحلة 27←28 يبيني أسوي clone لـrepository وأبحث عن كلمة السر داخله. وقالي إن كلمة السر لهذا الريبوزيتوري هي نفسها لهذه المرحلة.

بالبداية نروح لـ/tmp نسوي مجلد جديد، وبداخل هذا المجلد نسوي كلون للريبوزيتوري، وإذا طلب كلمة السر أعطيه كلمة السر نفسها اللي دخلت بها لهذه المرحلة.

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

ناخذ كلمة السر وننتقل للمرحلة اللي بعدها

ssh bandit28@bandit.labs.overthewire.org -p 2220

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

في المرحلة 28←29 نفس المطلوب بالمرحلة السابقة


تحمل عندنا مجلد اسمه repo نروح عليه ونعرض الملفات اللي فيه، بنلقى ملف README، وبنلاحظ إن في اسم مستخدم وكلمة سر، لكن الفرق إن كلمة السر حاطين مكانها xxxx هذا يعطي دلالة كأن فيه قيمة ومخفينها، فبنجرب نشوف النسخ السابقة لهذا الملف، ممكن نلاقي أحدها محتوي على كلمة السر.

عشان نعرض السجل لهذه التعديلات نستخدم git log

هنا طلع لي 3، إذا نبي نعرض أحدها نقول git show وبعد كذا نضع قيمة SHA1 اللي تكون بجانب كلمة “commit”، بالبداية بنعرض أول واحد اللي التعليق عليه

“Initial commit of README.md”

هنا نلاحظ إنه أضاف كل المعلومات ما عدا كلمة السر. لو نرجع للـlog بنلاحظ إن ثاني تعديل كان التعليق عليه “add missing data” واحنا أول مره ما كان مفقود عندنا إلا كلمة السر، إذن كلمة السر بتكون هنا، نعرض التعديل وناخذ كلمة السر وننتقل للمرحلة اللي بعدها.

*ملاحظة: اللون الأخضر هنا يدل على ما تم إضافته، والأحمر على ما تم حذفه.

ssh bandit29@bandit.labs.overthewire.org -p 2220

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

في المرحلة 29←30 نفس المرحلة السابقة

تحمل عندنا مجلد اسمه repo نروح عليه ونعرض الملفات اللي فيه، بنلقى ملف README يقول إن كلمة السر ما زالت قيد الإنتاج.

كلمة production هذي لها دلالة. الحين لما نشتغل مع git يكون عندنا أكثر من branch، يعني أكثر من فرع يكون عليه الشغل، وبما إنه هنا قال إنها لا زالت في الـproduction فبنروح ونشيك على الـbranches الأخرى ونشوف. عشان نعرف احنا بأي branch نستخدم git branch، وعشان نعرف وش الـbranches اللي عندي استخدم

git branch -a

طيب، أحد البرانشيز واحد اسمه dev يعني development يعني production يعني احتمال 99% كلمة السر هنا، نروح على هذا البرانش باستخدام git checkout remotes/origin/dev

وعشان نتأكد إننا انتقلنا بشكل صحيح نستخدم git branch

تمام، كذا احنا بالـdev، نعرض السجل ونشوف لو فيcommit  مثير للاهتمام

أول واحد فوق يقول إنه أضاف بيانات نحتاجها للتطوير، لو نستعرض هذا الـcommit بنلاقي كلمة السر للمرحلة اللي بعدها فيه، ناخذها وننتقل للمرحلة 30.

ssh bandit30@bandit.labs.overthewire.org -p 2220

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

في المرحلة 30←31 نفس المرحلة السابقة، نسوي clone في /tmp على مجلد جديد، ثم بعدين نروح على repo ونشوف وش مكتوب لنا في README

هنا README ما يحتوي على أي شي مهم.

طيب نشيك على الـlog وبرضو ما بنلاقي شيء مهم.

الحين بنروح نشيك على المجلد المخفي اللي يكون موجود في كل مرة نسوي clone واسمه “.git”

cd .git

نستعرض الملفات وفي ملف اسمه packed-refs بتلاحظون انه يحتوي على commit غير اللي موجود في الـlog ولو عرضناه بنلاقي فيه كلمة السر للمرحلة 31.

ناخذ كلمة السر وننتقل للمرحلة اللي بعدها

ssh bandit31@bandit.labs.overthewire.org -p 2220

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

في المرحلة 31←32 نفس المرحلة السابقة، نسوي clone في /tmp على مجلد جديد، ثم بعدين نروح على repo ونشوف وش مكتوب لنا في README

هنا قايل لنا إنه يبغى نسوي push لملف اسمه key.txt يحتوي على “May I come in?” والبرانش يكون master

طيب نسوي زي ما يبغى بالضبط، أول شيء ننشئ ملف اسمه key.txt ونخزن فيه نفس الكلام اللي طالبه “May I come in?” ، نحفظ الملف ثم نسوي له push بالخطوات التالية:

  • أول حاجة نتأكد إن البرانش هو master
  • نرفع الملف باستخدام git add key.txt بيطلع معاكم خطأ ولتجاوزه نستخدم الخيار -f فتصير الكوماندgit add key.txt -f
  • بعدين نضيف الـcommit باستخدام git commit بيفتح لنا نافذة nano نكتب أي شي مثلا “Done” بعدين نقفل nano باستخدام ctrl+x بعدين نضغط y بعدين Enter
     
  • الآن نسوي push باستخدام git push نكتب yes ثم نعطي كلمة السر للمرحلة الحالية

وبكذا انتهينا وبيعطينا كلمة السر للمرحلة 32


ناخذ كلمة السر وننتقل للمرحلة اللي بعدها

ssh bandit32@bandit.labs.overthewire.org -p 2220

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

في المرحلة 32←33 يقولنا إننا خلصنا من الـgit لكن الحين لازم نلقى مهرب من الـshell، ولما ندخل على مرحلة 32 فعلا هذه الـshell غريبة وأي كوماند ندخلها لها ترجع تطبعها لنا لكن تخلي الحروف كبتل.


عشان نهرب منها ببساطة نستخدم $0 وهو special character بيطلعنا هذا على shell طبيعية. لما نعرض الملفات اللي موجودة بالـhome directory بنلاحظ إن عندي ملف اسمه uppershell وهو ملف SUID المالك له هو bandit33 وهذا الملف إذا شغلناه يرجعنا للـshell اللي التحدي دخلنا عليها أول شيء.


طيب الحين ركزو شوي، المالك لهذا الـSUID مو هو bandit33 ومو احنا عرفنا إنه هو اللي يعطينا الـshell اللي ما تسوي شيء غير تحول الكوماند من سمول لكبتل، ثم استخدمنا $0 عشان نهرب منها وأعطانا shell عادية؟ إلا، إذن احنا حصلنا على shell من داخل الـSUID اللي يملكه bandit33، إذن احنا الآن bandit33 ويمكن إثبات ذلك بـwhoami

وبما إننا bandit33 إذن نقدر نعرض الملف اللي يحتوي على كلمة السر حقته، فنعرضه وناخذها ونروح لآخر مرحلة، مرحلة 33

ssh bandit33@bandit.labs.overthewire.org -p 2220

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

مرحلة 33 تحتوي على ملف نص محتواه:


بكذا أكون انتهيت من حل جميع مراحل bandit معاكم، يسر الله أمركم وأسأل الله لي ولكم التوفيق.

Comments

Popular posts from this blog

TryHackMe|Blog WriteUp\Walkthrough (Arabic)

eJPTv2 Exam Review (Arabic)

TryHackMe|Blueprint WriteUp\Walkthrough (Arabic)