حل تحدي Web Shell من منصة BTLO


مقدمة
السلام عليكم ورحمة الله وبركاته بسم الله والصلاة والسلام على رسول الله محمد صلى الله عليه وسلم كيف حالك يا صديقي اليوم مميز سنجرب عمليا ما تعلمنا في استخدام برنامج الـ wireshark وكيف نحلل سجلات الشبكة الخاصه بنا وهذا هو رابط التحدي - blueteamlabs | network analysis web shell
خطوات الحل
قبل أن نبدأ التحدي إن شاء الله دعنا نفهم المعطيات لدنيا:
إن مركز العمليات الأمنية وصله تحذيرات من نظام المعلومات الأمنية وإدارة الحوادث SIEM بأن هناك عملية مسح للـ ports ولكن تنبه إنه local to local يعني انه من اجهزه ذات local IP او ما يسمى private IP انظر هنا اكثر لتتذكر ما هي هذه المسميات يا صديقي
معك الان ملف PCAP قم بتحليله وأجب الأسئلة الاتيه:
السؤال الأول : ما هو الـ IP المسؤل عن عملية مسح الـ Ports؟
لإجابة هذا السؤال دعنا نتذكر ان الـ IP علمنا انه local(private) حسنا إذا لنحاول ان نرى قائمة الـ IP المتاحه عندنا ونختار منها الملائم
(ملاحظة اذا كنت لا تعلم ما هو الـ port scanning attack) يفضل ان تقرأ مقاله او تشاهد فيديو قصير عنه لتفهم اكثر
سنقوم بإختيار converstations لنرى الـ IP الموجود في هذا الملف الذي نقوم بتحليله ونرى عدد المحادثات وحجمها الذي قام به كل IP مع الاخر
سنجد الان اثنان مشتبه فيهم و 10.251.96.4 هو الأكثر شبهة لكثرة عدد الـ packets الشديدة ولكن دعنا نتأكد ونقطع الشك باليقين
سنقوم باختيار هذا الـ filter لنجعل المحادثات الخاصه بهم فقط تظهر ثم سنضيف لها ايضا المشتبه فيه الاخر لنحلل كليهما معا
سنلاحظ ان غالب رسائل 172.20.10.5 لا تضمن نمط الـ port scanning attack لكن على الوجه الاخر
سنجد ان 10.251.96.4 رسائله هي حقا تحمل نمط جهوم الـ port scanning وبهذا تأكدنا من هو المجرم إنه 10.251.96.4 بكل بساطه هو الذي يرسل الـ SYN لـ 10.251.96.5 ويرسل من port ثابت عنده ويجرب عدة ports مختلفه عند الضحيه 10.251.96.5 ثم ترد الضحية بـ RST,ACK وهذا نوع PORT SCAN معروف (ابحث عنه لأنه إجابة لسؤال اخر سنصل إليه بعد قليل إن شاء الله
السؤال الثاني : ما هو مدى الـ PORTS التي قام المهاجم بمسحه عند الضحيه ؟
للإجابه سنقوم بالبحث عن رقم اول port كترتيب عددي وليس اول port تم مسحها زمنا في الملف
ورقم اخر port قام بمسحها وحينها نعلم ان المدى هو بين هذين الرقمين ولله الحمد و لكن للتسهيل سنقوم بحركة اتبعني فيها
للحصول على هذه الشاشه بكل بساطه right click فوق المساحه الخاصه بـ info او اي عمود اخر ثم تختار colum preference سنحاول الان ان نقوم بإضافة اعمده للـ dst(destination) port والـ src(source) port لنستطيع ان نرتب بهما الـ ports ويكن الترتيب واضح سهلا امامنا ان شاء الله
ونكرر نفس العملية للـ dst port وحينما تنتهي احفظ وستجدهما ظهرا على الجانب الايمن قم بسحبهما لليسار ليكونا واضحين
إذا فالإجابة هي : 1-1024
السؤال الثالث : ما هو نوع الـ port scan الذي تم القيام به؟
مع الملاحطة الإجابه هي protocol الإتصال udp or tcp مع نوع الهجوم حسنا أخبرتك مسبقا قم ببعض البحث والإجابة بسيطة إن شاء الله
السؤال الرابع : اخبرنا باسماء اداتين تم استعمالهما لجمع المعلومات و الاستطلاع على الـ ports المفتوحة
حسنا للإجابة عن هذا السؤال علينا اولا مراجعة ما فعلناه في السؤال الثاني وسنكتشف ان الوحيدة التي كانت مفتوحة كانت 80 وهي التي اكمل عليها المهاجم الاتصال وبالتأكيد انت تعرف ان HTTP هو الذي يستخدم هذا الـ Port حسنا اذا لنتحقق من الـ HTTP
حسنا ماذا الان؟ الان علينا ان نراجع السؤال قال انها ادوات لجمع المعلومات وفي الـ HTTP
في الغالب الادوات التي تستعمل لهذه الغرض معه تعرفها في خانة الـ user-agent اذا لنجعلها بذاتها عمودا و نبحث فيه
حينما سنبحث قليلا سنجد شيئين غريبين ونعم يا صديقي هذه هي الإجابه :) و لتعرف اكثر
عن اداة sqlmap انصحك بهذه المقاله - كل ما تريد معرفتة عن أداة SQLMAP
السؤال الخامس : ما هو اسم الملف الـ php الذي قام المهاجم عن طريقه برفع webshell؟
حسنا لنجيب عن هذا السؤال علينا اولا البحث عن الـ HTTP POST
سنجد عدة نتائج عند التحقق منها بـ follow tcp stream ستجد انها مجرد محاولات لتخطى حماية اسم المستخدم و كلمة السر لكن لم يرفع اي ملف ماعادا الpacket التي قمت بتحديدها بالمربع الاحمر دعنا نتحقق منها
حسنا لقد وجدنا الإجابة وايضا إجابة السؤال السادس معها ولله الحمد
السؤال السادس :
السؤال السابع : ما هو المعامل الذي يستخدمه المهاجم لإعطاء الأوامر للـ webshell؟
السؤال الثامن : ما هو اول أمر قام المهاجم بتنفيذه ؟
حسنا الامر بسيط علينا فقط ان نكمل في الـ TCP stream ونرى ماذا حدث بعد ما وجدناه في السؤال السابق
حسنا في الـ stream الذي كان بعده بضغطتين وجدنا مرادنا وهناك طريقة اخرى فقط ابحث عن cmd وانظر للترتيب الزمني
السؤال التاسع : ما هو نوع الـ shell المستخدمه؟
قبل البداية انظر لهذا الفيديو لتفهم اكثر انواع الـ shell
بإختصار نوع bind هو العادي الاتصال من المهاجم للضحيه ولكن مشكلته ان الـ firewall سيقوم بإقافه لذلك يستخدمون reverse ليقوم بتخطي هذه الحمايه bypass it
دعنا نبدأ من اخر نقطة وصلنا لها
الان بعد ان حصل على اتصال وقام بتجربة الـ id و whoami قرر ان يبدأ الحصول على الـ Shell الخاصة به
وهناك طريقتان لمعرفة نوعها الثانيه سأخبرك بها في السؤال القادم إن شاء الله
إذا ضغطنا على follow tcp stream سنحصل على رؤيه لهذا الكود ولاحظ وجدنا ان المهاجم ارسل هذا الكود للضحية وسيتم تطبيقه عند الضحية وبهذا فهمنا انه حصل على shell ولكن الاتصال يبدأ من عند الضحية وليس من عنده وهكذا عرفنا انه reverse shell ولكن ملاحظات قبل ان اريك الإجابه
اولا للتفهم الكود اكثر سأريك مثالا للكود بدون هذه العلامات %20 و %22 و غيرها وسبب وجودها ان هذا يسمى بـ http encoding
لاحظ معي هذا يعني ان الكود كان connect(("10.251.96.4,4422")) ولكن تم تبديل الـ " بـ %22 نتيجة الـ http encoding :) وهذا مثال للـ reverse shell
باستخدام python من موقع - invicti
قارن بينه وبين ما حصلنا عليه مع مراعاة الـ http encoding وستفهمها جيدا إن شاء الله ولا تنسى اننا حصلنا على إجابة السؤال القادم مسبقا وهي 4422
السؤال العاشر ما هو رقم الـ port المستخدم في الإتصال بالـ shell؟
حقيقة للإجابة طريقتان الأولى ان تفهم الـ reverse shell python code المرسل وحينها ستكون متيقن من إجابتك او أن تستعمل الخبرة وتنظر للملفات ستلاحظ نمطا هاما
لاحظ ان هذا دليل على كونه يستخدم Reverse Shell وايضا تجد ان الاتصال من عند الضحيه عن طريق PORT 4422 يصل للمهاجم على port 48994
خاتمة
وهكذا يا صديقي طوفنا حول تطبيق عملي بسيط للـ network forensics وهام جدا ان تتقنه خاصة لرجال الفريق الأزرق تدرب اكثر وكتدريب لك حاول ان تطبق Cyber Kill Chain على الخطوات التي قام بها المهاجم في تدريبنا :)
اراك في المقالة القادمة إن شاء الله، اسأل الله تعالى أن تكون المادة المشروحة سهلة ميسرة فإن وفقت فمن الله وإن أخفقت فمن عملي وعمل الشيطان نعوذ بالله من شرور أنفسنا ومن شرور أعمالنا ومن الشيطان الرجيم وادعموا إخوانكم المسلمين في فلسطين وإدلب وأفغنستان والإيغور وكل مكان بالدعاء والتوبة و الطاعات ولا تتهاون او تخف أبدا من نصرة إخوانك قال رسول الله صلى الله عليه وسلم : إنَّ المُؤْمِنَ لِلْمُؤْمِنِ كَالْبُنْيَانِ يَشُدُّ بَعْضُهُ بَعْضًا. وشَبَّكَ أصَابِعَهُ.
الراوي : أبو موسى الأشعري | المحدث : البخاري | المصدر : صحيح البخاري الصفحة أو الرقم: 481 | خلاصة حكم المحدث : [صحيح]
واذكرك بأن تفكر في سؤال هام مالهدف من كل شئ تفعله في حياتك ؟ مالهدف من قرائتك هذه المقاله ؟ هل تهدف لشئ منتهي ؟
فقط تأكل لتستطيع ان تعمل و هذا العمل عائده عليك ينتهي بإنتهائك انت صحيح ؟
يا صديقي انت تحتاج لدروس في التجارة دائما اختر الهدف الاكبر نفعا و الأدوم و الأبقى وهل هناك هدف كهذا ؟
نعم قال تعالى "وَمَا خَلَقْتُ الْجِنَّ وَالْإِنسَ إِلَّا لِيَعْبُدُونِ" 56 الذاريات و قال تعالى كُلُّ نَفْسٍ ذَائِقَةُ الْمَوْتِ ۗ وَإِنَّمَا تُوَفَّوْنَ أُجُورَكُمْ يَوْمَ الْقِيَامَةِ ۖ فَمَن زُحْزِحَ عَنِ النَّارِ وَأُدْخِلَ الْجَنَّةَ فَقَدْ فَازَ ۗ وَمَا الْحَيَاةُ الدُّنْيَا إِلَّا مَتَاعُ الْغُرُورِ"
لا تكن عبثا في هذه الحياه فقط تأكل و تنام وكل همك شهواتك فلا تتعدى ان تكون حيواننا و انت كرمك الله وانت من نسل سيدنا ادم عليه السلام لم تكون قردا او اي حيوان اخر بل بدايتك هي سيدنا ادم عليه السلام انت مكرم منذ البداية فلا تهن نفسك مع السلامة...