تحدي Hack The Box: اختراق Mirai وكشف ثغرات أجهزة إنترنت الأشياء

دقائق القراءة: 7

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

صورة توضيحية لمنصة Hack The Box تظهر واجهة التحدي

تُعد آلة Mirai مثالًا حيًا ومهمًا على كيف يمكن لأجهزة إنترنت الأشياء (IoT) سيئة التكوين أن تؤدي إلى واحدة من أكبر نواقل الهجوم في عام 2016. لا تزال أجهزة IoT تُستغل بنشاط من قبل شبكات الروبوتات الخبيثة (botnets) ويستخدمها المهاجمون لتحقيق استمرارية طويلة الأمد. في هذا الدليل، سنستعرض الخطوات اللازمة لاختراق هذه الآلة باستخدام توزيعة Kali Linux والأدوات التالية:

  • Nmap
  • Gobuster
  • Medusa
  • أوامر Linux الأساسية

لنبدأ رحلتنا في عالم اختبار الاختراق.

الخطوة الأولى: الاستطلاع وجمع المعلومات (Reconnaissance)

قبل الشروع في استغلال أي نظام، تُعد مرحلة الاستطلاع والفحص هي الخطوة الأكثر أهمية. إن قضاء وقت كافٍ في هذه المرحلة لجمع أكبر قدر ممكن من المعلومات سيحدد بشكل كبير مسار الهجوم المحتمل ونقاط الضعف التي يمكن استغلالها لاحقًا.

فحص المنافذ (Port Scanning)

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

نتائج فحص المنافذ باستخدام Nmap تظهر المنافذ المفتوحة والخدمات

لإجراء فحص مكثف وشامل، نستخدم الأمر التالي:

nmap -A -v 10.10.10.48
  • -A: تفعيل اكتشاف نظام التشغيل، اكتشاف الإصدارات، فحص السكربتات، وتتبع المسار (traceroute).
  • -v: زيادة مستوى الإسهاب (verbosity) لعرض تفاصيل أكثر.
  • 10.10.10.48: عنوان IP الخاص بآلة Mirai المستهدفة.

إذا كانت النتائج تبدو معقدة للغاية، يمكنك البدء بفحص أبسط باستخدام الأمر التالي:

nmap 10.10.10.48

نتائج Nmap لفحص المنافذ الأساسي على جهاز Mirai

من خلال نتائج الفحص، نلاحظ وجود ثلاثة منافذ مفتوحة رئيسية:

  • المنفذ 22: لخدمة Secure Shell (SSH)، والتي تُستخدم لتسجيل الدخول الآمن، نقل الملفات (scp, sftp)، وإعادة توجيه المنافذ.
  • المنفذ 53: لخدمة Domain Name System (DNS).
  • المنفذ 80: لخدمة Hypertext Transfer Protocol (HTTP)، وهنا يعمل خادم IIS.

فحص الدلائل (Directory Scanning)

نستخدم أداة Gobuster، وهي أداة سريعة وفعالة لفحص الدلائل، مكتوبة بلغة Go. يمكنك العثور على مزيد من المعلومات حول الأداة هنا. تعتمد Gobuster على قوائم الكلمات (wordlists) المتوفرة في Kali Linux، والتي توجد عادةً في المسار /usr/share/wordlists. سنستخدم قوائم الكلمات من dirb و dirbuster، ولكن يمكنك تنزيل المزيد من قوائم الكلمات من مشروع SecLists هنا.

واجهة Gobuster أثناء فحص الدلائل باستخدام قائمة كلمات dirb

نستخدم الأمر التالي لفحص الدلائل باستخدام قائمة كلمات dirb/common.txt:

gobuster dir -u 10.10.10.48 -w /usr/share/wordlists/dirb/common.txt

نتائج Gobuster تظهر الدلائل المكتشفة على خادم الويب

نلاحظ وجود بعض المجلدات المثيرة للاهتمام. لإجراء فحص أعمق، نستخدم قائمة كلمات مختلفة وأكثر شمولاً:

gobuster dir -u 10.10.10.48 -w /usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-medium.txt

نتائج فحص الدلائل الإضافي باستخدام Gobuster وقائمة كلمات dirbuster

من الواضح أن مجلد /admin هو نقطة انطلاق واعدة يجب زيارتها!

الخطوة الثانية: زيارة صفحة الويب المستهدفة

بناءً على مرحلة الاستطلاع، قررنا البدء بالمنفذ 80. عند زيارته، وجدنا صفحة فارغة لا تحتوي على أي محتوى ظاهر.

صفحة الويب الفارغة عند الوصول إلى المنفذ 80 لجهاز Mirai

ولكن، بفضل فحص الدلائل باستخدام Gobuster، اكتشفنا مجلد /admin. عند الانتقال إلى هذا المسار (10.10.10.48/admin)، وصلنا إلى لوحة تحكم Pi-hole الإدارية.

واجهة لوحة تحكم Pi-hole الإدارية التي تم الوصول إليها

Pi-hole هو تطبيق مفتوح المصدر لحظر الإعلانات ومتتبعات الإنترنت على مستوى الشبكة في Linux، ويعمل كـ DNS sinkhole وخادم DHCP اختياري، مخصص للاستخدام في الشبكات الخاصة. يتميز Pi-hole بقدرته على حظر الإعلانات التقليدية على مواقع الويب، بالإضافة إلى الإعلانات في الأماكن غير التقليدية، مثل أجهزة التلفاز الذكية وإعلانات أنظمة تشغيل الهواتف المحمولة. يمكنك قراءة المزيد عن Pi-hole هنا أو زيارة الموقع الرسمي.

معلومات إضافية حول Pi-hole تظهر على الصفحة

بالنقر على زر “Login” في الشريط الجانبي الأيسر، ظهرت شاشة تسجيل الدخول. بحث سريع على الإنترنت يشير إلى أن الجهاز المستهدف هو على الأرجح Raspberry Pi، ويعمل بنظام التشغيل Raspbian الخاص به.

شاشة تسجيل الدخول إلى لوحة تحكم Pi-hole

علمنا أيضًا أن اسم المستخدم الافتراضي لـ Raspberry Pi غالبًا ما يكون "pi" وكلمة المرور "raspberry". حاولنا استخدام هذه البيانات الافتراضية في شاشة تسجيل الدخول، لكنها لم تنجح. نحتاج إلى إيجاد طريقة أخرى.

رسالة خطأ بعد محاولة تسجيل الدخول بكلمة مرور افتراضية

الخطوة الثالثة: الاتصال بـ Pi-hole عبر SSH

خلال مرحلة الاستطلاع، اكتشفنا أن المنفذ 22 كان مفتوحًا، وهو مخصص لخدمة SSH. سنستخدم أداة Medusa للتحقق مما إذا كانت بيانات الاعتماد الافتراضية تعمل مع SSH. Medusa هي أداة سريعة ومتوازية ومرنة لشن هجمات القوة الغاشمة (brute-force) على تسجيلات الدخول. يمكنك العثور على مزيد من المعلومات حول هذه الأداة هنا.

medusa -h 10.10.10.48 -u pi -p raspberry -M ssh

نتائج Medusa تؤكد صحة بيانات اعتماد SSH

بعد أن تأكدنا من صحة كلمة المرور، يمكننا الآن الاتصال باستخدام SSH بالأمر التالي:

ssh pi@10.10.10.48

للاتصال بـ SSH، تحتاج إلى اسم المستخدم وعنوان IP للمضيف. في حالتنا، اسم المستخدم هو "pi" وعنوان IP هو "10.10.10.48"، وكلمة المرور هي "raspberry". بعد تسجيل الدخول بنجاح، نحصل على جلسة كالمستخدم pi@raspberrypi:

جلسة SSH ناجحة بعد تسجيل الدخول إلى جهاز Raspberry Pi

بمجرد تسجيل الدخول كمستخدم عادي، يمكننا التحقق مما إذا كان المستخدم ينتمي إلى مجموعة sudo باستخدام الأمر id أو groups:

التحقق من مجموعات المستخدم pi باستخدام الأمر groups

تظهر النتائج أن المستخدم pi ينتمي إلى مجموعة root، مما يعني أن لديه صلاحيات تنفيذ الأوامر كـ root.

الخطوة الرابعة: البحث عن علم المستخدم user.txt

للبحث عن علم المستخدم، نبدأ بسرد جميع الملفات والمجلدات في الدليل الحالي باستخدام الأمر التالي:

ls -la

ثم ننتقل إلى مجلد Desktop:

cd Desktop

عرض محتويات مجلد Desktop يظهر ملف user.txt

هنا نجد علم المستخدم! يمكننا عرض محتويات الملف باستخدام الأمر cat:

cat user.txt

الخطوة الخامسة: البحث عن علم الجذر root.txt

الآن، لنبحث عن علم الجذر. ننتقل إلى الدليل الجذر (/). يمكنك التحقق من موقعك الحالي باستخدام الأمر pwd، الذي يعرض مسار دليل العمل الحالي (print working directory). ثم نحاول الانتقال إلى مجلد /root، ولكن يتم رفض الوصول.

رسالة رفض الوصول عند محاولة الدخول إلى مجلد /root

للوصول إلى هذا المجلد، نحتاج إلى التبديل إلى المستخدم الجذر (root user). نستخدم الأمر sudo -l لفهم الأوامر التي يمكننا تشغيلها كمستخدم آخر على الجهاز المحلي. نعلم أن المستخدم pi جزء من مجموعة root، مما يعني أنه يمتلك صلاحيات غير محدودة ويمكنه تشغيل أي أمر على النظام.

نتائج الأمر sudo -l تظهر صلاحيات المستخدم pi

نستخدم الأمر sudo su للتبديل إلى المستخدم الجذر. يسمح الأمر sudo بتشغيل البرامج كمستخدم آخر (افتراضيًا المستخدم الجذر)، بينما يعني su “تبديل المستخدم” (switch user).

sudo su

التبديل إلى المستخدم الجذر (root) باستخدام sudo su

الآن يمكننا الانتقال إلى مجلد /root. نجد ملف root.txt ونفحص محتواه باستخدام cat:

cat root.txt

محتويات ملف root.txt تظهر رسالة بدلاً من العلم

للأسف، لم يكن العلم هو ما وجدناه، بل رسالة مفادها: "I lost my original root.txt! I think I may have a backup on my USB stick..." (لقد فقدت ملف root.txt الأصلي! أعتقد أن لدي نسخة احتياطية على ذاكرة USB الخاصة بي…).

نحتاج الآن إلى العثور على موقع ذاكرة USB باستخدام الأمر lsblk لسرد أجهزة التخزين الكتلوية (block storage devices). نرى وجود usbstick في مجلد /media:

lsblk

نتائج الأمر lsblk تظهر أجهزة التخزين المتصلة، بما في ذلك usbstick

ننتقل إلى هذا المجلد ونجد رسالة أخرى من مستخدم يُدعى James:

Damnit! Sorry man I accidentally deleted your files off the USB stick. Do you know if there is any way to get them back? -James

رسالة من المستخدم James داخل مجلد usbstick

عندما قمنا بسرد جميع أجهزة التخزين، رأينا أن ذاكرة usbstick كانت موجودة في sdb، والتي تقع تحت المسار /dev/sdb/. لمزيد من المعلومات حول الأقراص وتقسيمها، يمكنك الرجوع إلى الموارد المتاحة.

إذا استخدمنا الأمر التالي:

cat /dev/sdb

سنحصل على مخرجات طويلة تحتوي على العديد من الأحرف الغريبة. في نهاية هذه المخرجات، من المفترض أن نجد علم الجذر.

محتويات /dev/sdb الخام تظهر بيانات غير قابلة للقراءة

طريقة أكثر أناقة لعرض النصوص داخل ملف ثنائي أو ملف بيانات هي استخدام الأمر strings. يقوم هذا الأمر بسحب الأجزاء النصية القابلة للقراءة (تسمى “سلاسل” strings) من الملف.

strings /dev/sdb

نتائج الأمر strings /dev/sdb تستخرج السلاسل النصية من الجهاز

تهانينا! لقد عثرت على كلا العلمين بنجاح.

التوصيات الأمنية

تُسلط تجربة اختراق آلة Mirai الضوء على أهمية الممارسات الأمنية الجيدة، خاصةً فيما يتعلق بأجهزة IoT. إليك بعض التوصيات الرئيسية:

  • تجنب استخدام كلمات المرور الافتراضية/العامة: تُعد كلمات المرور الافتراضية نقطة ضعف حرجة يستغلها المهاجمون بسهولة. احرص دائمًا على تغييرها إلى كلمات مرور قوية ومعقدة فور إعداد أي جهاز.
  • تعطيل الوصول عن بُعد غير الضروري: إذا لم تكن بحاجة إلى الوصول إلى أجهزتك عن بُعد، فقم بتعطيل هذه الميزة. كل منفذ مفتوح يمثل نقطة دخول محتملة للمهاجمين.
  • التعرف على تهديدات شبكات الروبوتات الخبيثة: يمكنك قراءة المزيد حول هجوم شبكة الروبوتات Mirai DDoS botnet هنا لفهم كيفية عملها ومدى خطورتها.

الخلاصة التقنية

يُقدم تحدي Mirai على منصة Hack The Box درساً عملياً قيماً حول المخاطر الأمنية المتأصلة في أجهزة إنترنت الأشياء (IoT) عند إهمال تكوينها بشكل صحيح. لقد أظهرنا كيف يمكن لخطوات استطلاع بسيطة باستخدام أدوات مثل Nmap و Gobuster أن تكشف عن منافذ وخدمات حساسة، مما يمهد الطريق لاكتشاف نقاط ضعف أعمق. كما أبرزنا أهمية التحقق من بيانات الاعتماد الافتراضية والقدرة على استغلال صلاحيات المستخدم الجذر (root) عبر SSH، حتى في الأنظمة التي تبدو بسيطة مثل Raspberry Pi. الدرس الأهم هو أن الأمن السيبراني يبدأ من الأساسيات: إدارة كلمات المرور، تقليل سطح الهجوم، والفهم العميق لكيفية تفاعل الأنظمة. إن القدرة على استعادة المعلومات من أجهزة التخزين الخام باستخدام strings هي مهارة أساسية في التحقيقات الجنائية الرقمية واختبار الاختراق، وتؤكد على أن البيانات لا تُحذف بالكامل دائمًا بمجرد أمر بسيط.

صورة خلفية رقمية لمدينة مستقبلية ترمز للأمن السيبراني

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *