دليل شامل لاختراق صندوق Blue في Hack The Box: استغلال ثغرة EternalBlue
تُعد منصة Hack The Box (HTB) بيئة تدريبية افتراضية تتيح لك صقل مهاراتك في اختبار الاختراق. تحتوي المنصة على مجموعة واسعة من التحديات المتجددة باستمرار، والتي تتراوح بين محاكاة سيناريوهات العالم الحقيقي وصولاً إلى تحديات بأسلوب مسابقات التقاط العلم (CTF). ملاحظة: يُسمح فقط بكتابة شروحات عن أجهزة HTB التي تم سحبها من الخدمة.

يُعد صندوق Blue أحد أبسط الأجهزة المتاحة على منصة Hack The Box، ولكنه يقدم عرضاً حياً للتأثير المدمر لثغرة EternalBlue الشهيرة. هذه الثغرة استُخدمت سابقاً في اختراق العديد من الشركات عبر هجمات الفدية (ransomware) واسعة النطاق وهجمات تعدين العملات المشفرة. في هذا الدليل، سنستخدم الأدوات التالية لاختراق هذا الصندوق على نظام Kali Linux:
nmapsearchsploitmetasploitmeterpreter
لنبدأ رحلتنا. الخطوة الأولى هي إضافة إدخال للصندوق Blue في ملف /etc/hosts الخاص بنا. يمكننا القيام بذلك باستخدام محرر النصوص nano:
nano /etc/hosts
10.10.10.40 blue.htb

الخطوة 1: الاستطلاع وجمع المعلومات
قبل الشروع في استغلال أي نظام، تُعد مرحلة الاستطلاع وجمع المعلومات (Reconnaissance) خطوة حاسمة. هذه المرحلة هي الأساس الذي يحدد مسار الاستغلال المحتمل، وكلما أمضيت وقتاً أطول في جمع المعلومات، زادت فرص نجاحك في تحديد الثغرات المناسبة.
مسح المنافذ باستخدام Nmap
سنستخدم أداة Nmap (Network Mapper)، وهي أداة مجانية ومفتوحة المصدر لاكتشاف الشبكات وتدقيق الأمن. تعتمد Nmap على حزم بروتوكول الإنترنت الأولية لتحديد المضيفين المتاحين على الشبكة، والخدمات التي يقدمونها، وأنظمة التشغيل التي يعملون عليها، وأنواع مرشحات الحزم/جدران الحماية المستخدمة، وعشرات الخصائص الأخرى. توفر هذه الأداة العديد من الأوامر القوية لمسح الشبكة. للمزيد من المعلومات، يمكنك الاطلاع على وثائق Nmap الرسمية.

لإجراء مسح شامل ومفصل، سنستخدم الأمر التالي:
nmap -A -v blue.htb
-A: يُفعّل اكتشاف نظام التشغيل، واكتشاف الإصدارات، وفحص السكربتات، وتتبع المسار(traceroute).-v: يزيد من مستوى التفاصيل في الإخراج(verbosity).blue.htb: اسم المضيف(hostname)لصندوقBlue.
إذا وجدت النتائج كثيرة جداً وغير واضحة، يمكنك تجربة الأمر المبسّط التالي:
nmap blue.htb

من خلال تحليل نتائج المسح، نلاحظ وجود عدد من المنافذ المفتوحة، أبرزها:
- المنفذ
445: خدمةMicrosoft-DS (Directory Services) SMBلمشاركة الملفات.
لقد حصلنا أيضاً على معلومات حول اسم الكمبيوتر (haris-PC) وإصدار بروتوكول SMB (2.02). يُعد بروتوكول Server Message Block (SMB) بروتوكول شبكة يمكّن المستخدمين من التواصل مع أجهزة الكمبيوتر والخوادم البعيدة لاستخدام مواردها أو مشاركة الملفات وفتحها وتحريرها. بالنظر إلى اسم الصندوق، وكونه يعمل بنظام Windows مع فتح المنفذ 445، يمكننا أن نفترض أن الجهاز قد يكون عرضة لثغرة EternalBlue. للتحقق من هذه الفرضية، سنستخدم سكربت Nmap المخصص لاكتشاف الثغرات:
nmap --script vuln -p 445 blue.htb

تؤكد النتائج أن الصندوق معرض لثغرة تنفيذ التعليمات البرمجية عن بُعد (Remote Code Execution) في خوادم Microsoft SMBv1، والمعروفة بالرمز ms17-010.
الخطوة 2: فهم ثغرة MS17-010 (EternalBlue)
ما هي ms17-010؟ ثغرة EternalBlue هي استغلال هجوم سيبراني تم تطويره بواسطة وكالة الأمن القومي الأمريكية (NSA). تم تسريبها من قبل مجموعة قراصنة Shadow Brokers في 14 أبريل 2017، بعد شهر واحد من إصدار مايكروسوفت لتصحيحات لهذه الثغرة. (المصدر: ويكيبيديا). تم تصحيح هذه الثغرة وإدراجها في نشرة مايكروسوفت الأمنية بالرمز MS17-010. تسمح EternalBlue للمخترقين بتنفيذ تعليمات برمجية عشوائية عن بُعد للحصول على وصول إلى الشبكة. تستغل هذه الثغرة ضعفاً في بروتوكول SMB الخاص بنظام التشغيل Windows، ويمكن أن تؤدي إلى اختراق الشبكة بأكملها والأجهزة المتصلة بها.

يمكن للبرمجيات الخبيثة التي تستخدم EternalBlue أن تنتشر عبر الشبكات بسهولة. في عام 2017، استخدمت برمجية الفدية WannaCry الشهيرة، والتي تُصنف كـ crypto-ransomware، استغلال EternalBlue لانتشارها الذاتي عبر الشبكات وإصابة جميع الأجهزة المتصلة.
الخطوة 3: استغلال ثغرة EternalBlue
للبحث عن استغلالات (exploits) معروفة لثغرة EternalBlue، سأستخدم أداة Searchsploit. تُعد Searchsploit أداة بحث سطر الأوامر لقاعدة بيانات الاستغلالات (Exploit Database). سأقوم بتشغيل الأمر التالي:
searchsploit eternalblue

للحصول على تفاصيل أكثر حول استغلال معين، يمكن استخدام الأمر searchsploit -x متبوعاً بمعرف الاستغلال، على سبيل المثال:
searchsploit -x 41738.py

يمكنك أيضاً زيارة قاعدة بيانات الاستغلالات (Exploit Database) مباشرة للبحث عن الاستغلالات، على سبيل المثال:

الرابط: https://www.exploit-db.com/exploits/42315
يوجد أيضاً وحدة (module) متاحة ضمن إطار عمل Metasploit لاستغلال هذه الثغرة. سنستخدم Metasploit، وهو إطار عمل لاختبار الاختراق يُسهّل عمليات الاختراق، ويُعد أداة أساسية لكل من المهاجمين والمدافعين.

الرابط: https://www.rapid7.com/db/modules/exploit/windows/smb/ms17_010_eternalblue

الموقع الرسمي: https://www.metasploit.com/
سأقوم بتشغيل إطار عمل Metasploit على نظام Kali Linux والبحث عن الأمر المناسب للاستغلال. لا تنسَ تحديث Metasploit عند تشغيله باستخدام الأمر التالي:
msfupdate

يمكنك أيضاً التحقق مما إذا كان الهدف معرضاً لثغرة EternalBlue باستخدام وحدة مساعدة (auxiliary module) في Metasploit. ابدأ بالأمر التالي:
search eternalblue
ثم اختر الوحدة المناسبة (غالباً ما تكون الخيار الأول) باستخدام الأمر:
use 1
أو يمكنك تحديدها مباشرة بالمسار الكامل:
auxiliary/scanner/smb/smb_ms17_010

يمكنك مراجعة الخيارات المتاحة للوحدة باستخدام الأمر show options، ثم قم بتعيين المضيف الهدف (RHOSTS) إلى blue.htb باستخدام الأمر:
set RHOSTS blue.htb
بعد ذلك، قم بتشغيل الوحدة المساعدة باستخدام الأمر:
run
ستلاحظ أن المضيف من المرجح أن يكون عرضة لثغرة MS17-010! الآن، لننتقل إلى وحدة الاستغلال الفعلية. يمكنك اختيارها باستخدام الأمر use 2 (إذا كانت الخيار الثاني في نتائج البحث) أو مباشرة بالمسار الكامل:
exploit/windows/smb/ms17_010_eternalblue

نحتاج إلى إعداد خيارات RHOSTS (المضيف الهدف) و LHOST (المضيف المحلي). في حالتي، كان عنوان LHOST هو 10.10.14.24. ستحتاج إلى تعيين LHOST الخاص بك وفقاً لعنوان IP لجهاز Kali Linux الخاص بك.


قبل تشغيل الاستغلال، يمكنك التحقق مرة أخرى مما إذا كان الجهاز عرضة للثغرة. سيقوم هذا الأمر بتشغيل الوحدة المساعدة التي استخدمناها سابقاً باستخدام الأمر:
check

بعد التأكد، سأقوم بتشغيل الاستغلال باستخدام الأمر:
run

قد يتطلب الأمر تشغيل الاستغلال عدة مرات قبل الحصول على جلسة Meterpreter ناجحة. إليك تعريف Meterpreter من Offensive Security: “Meterpreter هي حمولة (payload) متقدمة وقابلة للتوسيع ديناميكياً، تستخدم مراحل حقن مكتبات DLL في الذاكرة وتتوسع عبر الشبكة أثناء وقت التشغيل. تتواصل عبر مقبس المرحلة (stager socket) وتوفر واجهة برمجة تطبيقات Ruby API شاملة من جانب العميل. تتميز بسجل الأوامر، والإكمال التلقائي (tab completion)، والقنوات، والمزيد.”

لنبدأ بجمع بعض المعلومات الأساسية. الأمر getuid يُرجع معرف المستخدم الحقيقي للعملية المستدعية.

يشير NT Authority\SYSTEM أو حساب LocalSystem إلى حساب Windows مدمج يُعد الأقوى على أي نسخة Windows محلية. هذا يعني أننا حصلنا على صلاحيات إدارية كاملة على الجهاز المستهدف.
الخطوة 4: البحث عن علم المستخدم (user.txt)
سأنتقل إلى مجلد haris ضمن Documents and Settings. يمكنني عرض جميع الملفات والمجلدات باستخدام الأمر التالي:
ls -la
ثم سأنتقل إلى مجلد Desktop باستخدام الأمر:
cd Desktop

وهنا، وجدت علم المستخدم (user flag)! يمكنني عرض محتويات الملف باستخدام الأمر:
cat user.txt
الخطوة 5: البحث عن علم الجذر (root.txt)
لنبحث الآن عن علم الجذر (root flag). سأعود إلى مجلد Users وأتحقق من مجلد Administrator/Desktop. وها هو العلم!

سأستخدم الأمر التالي لعرض محتويات الملف:
cat root.txt
تهانينا! لقد عثرت على كلا العلمين بنجاح.
إجراءات التخفيف والحماية
للتخفيف من مخاطر ثغرة EternalBlue وغيرها من الثغرات المماثلة، يُنصح باتباع الإجراءات الوقائية التالية:
- تحديث أجهزتك بتصحيح الأمان الخاص بـ
Microsoft Windows SMB v1. يمكنك مراجعة نشرة مايكروسوفت الأمنية لمعرفة أنظمة التشغيل المتأثرة. - تعطيل بروتوكول
SMB v1واستخدام الإصدارات الأحدثSMB v2أوSMB v3. - تطبيق مبدأ الحد الأدنى من الامتيازات
(Principle of Least Privilege)على جميع أنظمتك وخدماتك.
الخلاصة التقنية
يُظهر هذا الدليل العملي كيف يمكن لثغرة قديمة مثل EternalBlue أن تظل خطيرة إذا لم يتم تطبيق التصحيحات الأمنية اللازمة. لقد نجحنا في اختراق صندوق Blue في Hack The Box من خلال مراحل الاستطلاع الدقيقة، وتحديد الثغرة في بروتوكول SMBv1، ثم استغلالها بفعالية باستخدام إطار عمل Metasploit للحصول على صلاحيات إدارية كاملة والعثور على الأعلام المطلوبة. يؤكد هذا التمرين على أهمية التحديثات الأمنية المنتظمة وتطبيق مبادئ الأمن السيبراني الأساسية لحماية الأنظمة من الهجمات المعروفة.