Hack The Box - TwoMillion: الشرح
نظرة عامة
يحتوي هذا المستودع على الشرح الخاص بجهاز Hack The Box - TwoMillion. الهدف من هذا الشرح هو توثيق المنهجية التي اتبعتها، وشرح عملية التعداد، وعرض سلسلة الاستغلال التي قادت إلى الوصول إلى صلاحيات المستخدم والجذر.
إخلاء مسؤولية: هذا الشرح مخصص للأغراض التعليمية فقط. تم تنفيذ جميع الإجراءات في بيئة مختبرية قانونية مقدمة من Hack The Box.
معلومات الجهاز
| المنصة | الصعوبة | نظام التشغيل |
|---|
| Hack The Box | سهل | Linux |
المهارات المغطاة
- التعداد
- اختبار تطبيقات الويب
- تحليل JavaScript
- تعداد API
- ثغرة IDOR
- حقن الأوامر
- اكتشاف بيانات الاعتماد
- تصعيد الصلاحيات محليًا
- استغلال ثغرات CVE
التعداد
بدأت ببعض التعداد على الجهاز المستهدف لمعرفة المنافذ والخدمات التي يحتويها.

بعد أن عرفت أن هناك خدمة HTTP وتحاول إعادة التوجيه إلى مضيف آخر، لكن لا يوجد عنوان IP لهذا المضيف، لذلك قمت بتعديل ملف /etc/host

محاولة فتح الرابط، ثم حصلنا على هذه الصفحة، ومحاولة الذهاب إلى الصفحة المهمة لمعرفة ما تحتويه.

وجدت هذه الصفحة وقمت بالضغط على Join HTB.

ثم فحصنا الملفات التي تُحمَّل عند فتح هذه الصفحة ووجدنا ملف JS مثيرًا للاهتمام.

هذا هو محتوى الملف، لكنه مشوَّش (obfuscated)، لذلك أردنا إزالة التشويش عن المحتوى لفهم الكود.

هذا هو الكود، ويبدو أن لدينا روابط URL يجب التحقيق فيها.

هنا حاولت معرفة كيفية إنشاء مفتاح دعوة (invite key) وأخذت هذه البيانات المرمّزة لفك ترميزها.

قمت بفك ترميزها باستخدام CyberChef المحلي، وحصلنا على مسار لإنشاء مفتاح.

هنا عدّلنا مسار الرابط، وحصلنا على رمز دعوة، لكن يبدو أنه مرمَّز.

جربت base64، وقد نجح الأمر!! لقد حصلت على مفتاح الدعوة.

سجّلنا باستخدام رمز الدعوة وملء التفاصيل.

حصلنا على هذه الصفحة وبدأنا البحث عن شيء قيّم.

وجدنا مولّد ملفات VPN، وهذا أمر جيد جدًا إذا حصلنا على أي تفاصيل حول الحسابات المميزة.

باتباع الرابط من الصفحة السابقة ومحاولة العثور على أي نقاط نهاية (endpoints)، وجدنا مسارات مثيرة جدًا للاهتمام خاصة بالمشرفين.

هنا بدأت محاولة الحصول على صلاحيات المشرف لحسابي.



أخيرًا حصلنا على المعرّف (ID)، وأعتقد أننا حصلنا على صلاحيات المشرف، لذا نريد الآن التحقق من حالة المصادقة.

نعم، كما توقعنا، لدينا وصول كمسؤول، لذا الخطوة التالية هي محاولة إنشاء ملف VPN لنفسي كمسؤول.

هنا نبدأ بملء الحقول المطلوبة من الرد.

هنا حصلنا على ملف VPN، لكن لماذا لا نجرب حقن الأوامر؟!!

كما توقعنا، لقد نجح الأمر!!!

بعد الاطلاع على ملف مهم مثل .env، حصلنا على كلمة مرور المشرف.

وأخيرًا، نحن داخل الجهاز.

قراءة علم المستخدم

هنا جميع المحاولات للحصول على علم الجذر



هنا حصلنا على بريد إلكتروني يكشف عن ثغرة مهمة جدًا.

بعد تحديد إصدار النواة (kernel)، بحثت عن ثغرات معروفة علنًا تؤثر عليه ووجدت CVE-2023-0386. وهي ثغرة تصعيد صلاحيات محلي (LPE) في تنفيذ نظام OverlayFS في نواة Linux. تسمح لمهاجم محلي بالحصول على صلاحيات الجذر من خلال استغلال خلل في طريقة تعامل OverlayFS مع الملفات التي تحمل capabilities خاصة بنظام Linux. وبما أن الجهاز المستهدف كان يعمل بنواة قابلة للاستغلال، فقد وفرت هذه الثغرة مسارًا مناسبًا لتصعيد الصلاحيات من المستخدم الحالي إلى الجذر.

بحثت عن كيفية استغلال الثغرة، فوجدت هذا الـ PoC وحاولت تنفيذه.

قمت بتنزيل المستودع على جهازي الافتراضي واستخدمت scp لنقله إلى جهاز TwoMillion، وقرأت ملف README، ثم نشرت الاستغلال (exploit).




هنا حصلنا على وصول الجذر وقرأنا علم الجذر.

انتهى!!

شكرًا لك <3
Abdullah Rawashdeh