حل تحدي Tomcat Takeover من منصة CyberDefenders

CTF Walkthrough
أفضل وسيلة لتثبيت المعلومة هي التدريب العملي و هذا تدريب عملي على الـ Network Forensics وسوف نتعلم طريقة التفكير و الحل
Mohamed Ewies
Dec. 4, 2023, 3:06 p.m.
mohamed_ewies
حل تحدي Tomcat Takeover من منصة CyberDefenders

مقدمة:

السلام عليكم ورحمة الله وبركاته بسم الله والصلاة والسلام على رسول الله محمد صلى الله عليه وسلم كيف حالك يا صديقي اليوم مميز سنجرب عمليا ما تعلمنا في استخدام برنامج الـ wireshark وكيف نحلل سجلات الشبكة الخاصه بنا و هذه هي الدروس السابقة

اقرأ ايضا الجزء الأول : مقدمة في تعلم الـ Network Forensics

اقرأ ايضا الجزء الثانى : تعلم الـ network forensics عن طريق الـ packet filtering في wireshark

اقرأ ايضا الجزء الثالث : تعلم الnetwork forensics عن طريق استعمال خاصية الإحصائيات في wireshark

اقرأ ايضا الجزء الرابع : تعلم الـ network forensics باستخدام Wireshark Protocol Streams و استخراج الملفات من الـ pcap

اقرأ ايضا الجزء الخامس : تعلم ال network forensics و التحقيق في حالات هجمات عملية بإستخدام wireshark


و هذا هو رايط التحدي :Tomcat Takeover


    

    
  
  

خطوات الحل:
   

السؤال الأول : نظرًا للنشاط المشبوه الذي تم اكتشافه على خادم الويب، يُظهر تحليل pcap سلسلة من الطلبات عبر منافذ(ports) مختلفة،
مما يشير إلى سلوك مسح  (scan)محتمل. هل يمكنك تحديد عنوان IP المصدر المسؤول عن بدء هذه الطلبات على خادمنا؟
   

 حسنا إذا لنحاول ان نرى قائمة الip المتاحه عندنا و نختار منها الملائم (ملاحظة اذا كنت لا تعلم ما هو الport scanning attack) يفضل ان تقرأ مقاله او تشاهد فيديو قصير عنه لتفهم اكثر :)


    
 

سنقوم بإختيار converstations لنرى الip الموجود في هذا الملف الذي نقوم بتحليله و نرى عدد المحادثات و حجمها الذي قام به كل ip مع الاخر


 
  

حقيقة إن الأمر واضح ان المشتبه به هو 14.0.0.120 ولكن دعنا نكمل التحقيقات للتأكد اكثر سنبحث عن كل الاحتمالات الممكنه عندنا و هي 14.0.0.120 و 10.0.0.112 و 10.0.0.115


    
    
    

سنقوم باختيار هذا الfilter لنجعل المحادثات الخاصه بهم فقط تظهر ثم سنضيف لها ايضا المشتبه فيه الاخر لنحلل كليهما معا


    

سنلاحظ ان غالب رسائل 10.0.0.115 لا تضمن نمط الport scanning attack لكن على الوجه الاخر


    

سنجد ان 14.0.0.120 رسائله هي حقا تحمل نمط جهوم الport scanning و بهذا تأكدنا من هو المجرم إنه 14.0.0.120 بكل بساطه هو الذي يرسل الSYN ل10.0.0.112 ويرسل من port ثابت عنده
و يجرب عدة ports مختلفه عند الضحيه 10.0.0.112 ثم ترد الضحية ب RST,ACK و هذا نوع PORT SCAN معروف و لزيادة الطمأنينة لديك إذا نظرت للملف ستجده بعد عملية الport scanning
بدأ بالاتصال على الhttpو ستجد انه يستخدم أداة تسمى gobuster كيف هذا ؟ دعني أريك و لكن اولا سأخبرك كيف تجعل الsrc port و الdst port عمودان في البحث

    

للحصول على هذه الشاشه بكل بساطه right click فوق المساحه الخاصه بinfo او اي عمود اخر ثم تختار colum preference سنحاول الان ان نقوم بإضافة اعمده للdst(destination) port و ال src(source) port
لنستطيع ان نرتب بهما الports و يكن الترتيب واضح بسهوله امامنا .


    
    
    
    

و نكرر نفس العملية للdst port و حينما تنتهي احفظ و ستجدهما ظهرا على الجانب الايمن قم بسحبهما لليسار ليكونا واضحين و انتهينا :)
    حسنا دعنا ننظر للأسفل و سنجد رسائل http دعنا نتحقق منها 


    
  

دعنا نتحقق من الuseragent لأنه في الغالب ما يخبرنا اذا كان هناك استعمال لادوات enumeration بالتأكيد لن نحلل كل واحدة على حدى و لكن سنضيف الuseragent
كعمود لنسهل التحليل للpackets هيا بنا :) 


    
    

الان دعنا نبحث قليلا حتى نجد مرادنا :) 


    
    الان تيقنا أن 14.0.0.120 هو المهاجم و أيضا أجبنا السؤال رقم أربعة :) 
    

 

السؤال الثاني : بناءً على عنوان IP المحدد المرتبط بالمهاجم، هل يمكنك التأكد من المدينة التي نشأت منها أنشطة المهاجم؟

حسنا إن الأمر بسيط خذ الip و اكتبه على محرك البحث الخاص بك مثلا google ثم اكتب بجانبه geolocation و تعني المكان الجغرافي أول نتيجة بحث هنا دعنا نتفقدها ip2location


   

السؤال طلب المدينة  city وليس شئ اخر إذا فالإجابة الصحيحة هي guangzhou


    

    
السؤال الثالث : من خلال تحليل pcap، تم اكتشاف العديد من المنافذ المفتوحة نتيجة لفحص أنشطة المهاجم. أي من هذه المنافذ يوفر الوصول إلى لوحة إدارة خادم الويب؟


الإجابة سهلة إنه المنفذ الذي قام عليه باستخدام بروتوكول http و اتصل بالضحية عليه إنه منفذ port 8080  


    
    
    


السؤال الرابع : بعد اكتشاف المنافذ المفتوحة على خادمنا، يبدو أن المهاجم حاول تعداد وكشف الدلائل والملفات الموجودة على خادم الويب الخاص بنا. ما هي الأدوات التي يمكنك التعرف عليها من التحليل الذي ساعد المهاجم في عملية الكشف هذه؟

لقد أجبنا عليه مسبقا في السؤال الأول و سأذكرك بهذه الصورة :)


    

    

السؤال الخامس : بعد جهودهم لتعداد الدلائل على خادم الويب الخاص بنا، قدم المهاجم العديد من الطلبات في محاولة لتحديد الواجهات الإدارية. ما هو المجلد (directory) المحدد المرتبط بلوحة الإدارة والذي تمكن المهاجم من اكتشافه؟
   

حسنا لنحل هذا السؤال إن شاء الله علينا ان نفهم من السؤال الfilter الذي سنبحث به إن شاء الله ...حسنا المهاجم يبحث عن وسيلة ليدخل لصفحة الadmin حسنا لنبحث إذا عن الصفحات التي تضمن كلمة admin :) 

 

    
    

حسنا لقد وجدنا شئ مهما و هو رد من الضحية ب401 Unauthorized و هذا يعني انه لا يملك الصلاحية للدخول لهذه الصفحة دعنا نتتبع الtcp stream الخاص بها لنكتشف ما هي الصفحة المسؤلة عن هذا الرد :)


    
  

 حسنا دعنا الان نبحث عن كلمة manager و نرى كل الصفحات التي تحمل هذا الاسم (هل تتذكر في بداية البحث وجدنا العديد من الصحفات بهذا الاسم :) )

 
    
  

 حسنا دعنا نتتبع الtcp stream الخاص بهذه الpackets :)

 

    
  

 حسنا لو بحثنا اكثر سنجده حاول عدة مرات الدخول لهذه الصفحة و ايضا جرب عدة كلمات مرور ليدخل (هذا هو السؤال القادم إن شاء الله :) ) لقد حصلنا على الإجابة المنشودة و لله الحمد :)


    

    
السؤال السادس : عند الوصول إلى لوحة الإدارة، قام المهاجم بمحاولات لفرض بيانات تسجيل الدخول. من خلال البيانات، هل يمكنك تحديد تركيبة اسم المستخدم وكلمة المرور الصحيحة التي استخدمها المهاجم بنجاح للحصول على الترخيص؟ 


حسنا إذا اكملنا بحثا على السؤال الفائت سنجد الاتي في نفس الtcp stream إن شاء الله 


    


حسنا هذه محاولة تسجيل و خاطئة لأنه رد ب401 Unauthorized و لكن ما هذه الصيغة ؟ لمن درس اساسيات التشفير و الترميز سيعلم انها base64 و لكن إذا كنت لا تعلم عندي لك طريقة لمعرفة الإجابة وهى  CyberChef

   
  

 ابحث عن magic ستبحث عن الاحتمالات الممكنة لفك التشفير :) المهم الان فهمنا الامر اذا لنبحث عن مره تم الرد فيها 200 OK تعني أنه ادخل كلمة المرور الصحيحة :)


    
    
  


    
 

السؤال السابع : بمجرد دخوله إلى لوحة الإدارة، حاول المهاجم تحميل ملف بقصد إنشاء reverse shell. هل يمكنك التعرف على اسم هذا الملف الضار من البيانات التي تم التقاطها؟

    

حسنا يا صديقي أتذكر اخبرتك في سؤال سابق ان هناك packet قام فيها المهاجم برفع شئ للضحية تذكر هذه :) 


    
  

 حسنا لنتفقد هذه الpacket 


    
    
    


السؤال الثامن : عند إنشاء واجهة عكسية (reverse shell) بنجاح على خادمنا، كان المهاجم يهدف إلى ضمان استمرارية العمل على الجهاز المخترق. من خلال التحليل، هل يمكنك تحديد الأمر المحدد الذي تمت جدولته لتشغيله للحفاظ على تواجدهم؟

حسنا للإجابة عن هذا السؤال عليك بفهمه اولا و هو بكل بساطة يسألك عن الأمر الذي قاموا بتنفيذه ليحصلوا على reverse shell (و لكنه اضاف نقاط لتفهم ان هذه الخطوه تسمى persistence في الcyber kill chain model
و هو هيكل لوصف خطوات الهجوم ) و قال لك ان الأمر قاموا بجدولته (scheduled) ...حسنا إذا قمنا ببعض البحث و ما فهمناه من الpackets و اسم التحدي :) فأننا نتعامل مع tomcat apache server احفظها عندك :)
حسنا لنبدأ من حيث انتهينا في السؤال السابق :) حسنا إذا فقط قمنا بإكمال البحث و التقدم في الtcp stream سنجد الإجابة ظاهرة


    


    الان وجدنا بداية معتادة للمهاجم عند دخوله لأي جهاز و هي whoami ثم انتقل لملف ال/tmp حسنا تذكر ان /tmp هذا جزء من linux file system 


    
    

حسنا الان فهمنا اننا نملك tomcat apache server on linux system حسنا الان اذا بحثنا عن linux task scheduler سنجد الاتي اذا بحثنا :جدولة المهام عبر cron
    أن المهام يتم جدولتها على linux بإستخدام cron و هذه المهمات التي يتم إنشائها باستخدامه يتم حفظها في /etc/contab
     و لعرض محتويات هذا الملف اكتب هذا الأمر : crontab -l حسنا الان سنفهم انه قام باستخدام echo ليقوم بوضع كلام اسماه cron ثم كتب أمرا غرضه أن يجعل 
    محتويات الملف cronيتم وضعها في  الجدول (scheduler) ثم بعد ذلك قام بتنفيذ أمر لعرض محتويات الجدول و تم عرض ما كتبه في الملف و لكن ما الذي كتبه في الملف ؟ 
اول جزء /bin/bash -c غرضه ان يخبر نظام التشغيل انه سينفذ امر باستخدام bash ثم
    
     هذا الأمر غرضه إنشاء shell و يتم استخدامها 
    في الاتصال المذكور  تفاصيله من ip و port ثم 
    
غرضها إعادة توجيه كل ما يتم إدخاله الى الshell ليكون كل الاوامر ظاهره للمهاجم و واضحه :) و لنسأل الذكاء الاصطناعي :)


    

و هكذا علمنا ما هي الإجابة و لله الحمد :)
 


    

خاتمة:

و هكذا يا صديقي طوفنا حول تطبيق عملي بسيط للnetwork forensics و هام جدا ان تتقنه خاصة لرجال الفريق الأزرق تدرب اكثر و كتدريب لك حاول ان تطبق cyber kill chain على الخطوات التي قام بها المهاجم في تدريبنا :) أراك في المقالة القادمة إن شاء الله , اسأل الله تعالى أن تكون المادة المشروحة سهلة ميسرة فإن وفقت فمن الله و إن أخفقت فمن عملي و عمل الشيطان نعوذ بالله من شرور أنفسنا و من شرور أعمالنا و من الشيطان الرجيم و ادعموا إخوانكم المسلمين في فلسطين و إدلب و أفغنستان و الإيغور و كل مكان بالدعاء و التوبة و الطاعات و تذكر المقاطعة الحقيقية هي مقاطعة الأفكار و العقائد الفاسدة من ليبرالية و علمانية و قومية و نسوية و غيرها من أسباب فساد أمتنا حينما تشربناها عد لدينك فبه الكفاية و تذكر الغرض من كونك في الحياة قال تعالى (وَمَا خَلَقْتُ الْجِنَّ وَالْإِنسَ إِلَّا لِيَعْبُدُونِ) و لا تتهاون او تخف أبدا من نصرة إخوانك قال رسول الله صلى الله عليه و سلم : إنَّ المُؤْمِنَ لِلْمُؤْمِنِ كَالْبُنْيَانِ يَشُدُّ بَعْضُهُ بَعْضًا. وشَبَّكَ أصَابِعَهُ. الراوي : أبو موسى الأشعري | المحدث : البخاري | المصدر : صحيح البخاري الصفحة أو الرقم: 481 | خلاصة حكم المحدث : [صحيح]


Tomcat Takeover cyberdefenders network forensics wireshark تعلم وايرشارك تعلم تحليل الشبكة