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

تُعد آلة Mirai مثالًا حيًا ومهمًا على كيف يمكن لأجهزة إنترنت الأشياء (IoT) سيئة التكوين أن تؤدي إلى واحدة من أكبر نواقل الهجوم في عام 2016. لا تزال أجهزة IoT تُستغل بنشاط من قبل شبكات الروبوتات الخبيثة (botnets) ويستخدمها المهاجمون لتحقيق استمرارية طويلة الأمد. في هذا الدليل، سنستعرض الخطوات اللازمة لاختراق هذه الآلة باستخدام توزيعة Kali Linux والأدوات التالية:
NmapGobusterMedusa- أوامر
Linuxالأساسية
لنبدأ رحلتنا في عالم اختبار الاختراق.
الخطوة الأولى: الاستطلاع وجمع المعلومات (Reconnaissance)
قبل الشروع في استغلال أي نظام، تُعد مرحلة الاستطلاع والفحص هي الخطوة الأكثر أهمية. إن قضاء وقت كافٍ في هذه المرحلة لجمع أكبر قدر ممكن من المعلومات سيحدد بشكل كبير مسار الهجوم المحتمل ونقاط الضعف التي يمكن استغلالها لاحقًا.
فحص المنافذ (Port Scanning)
سنستخدم أداة Nmap (Network Mapper)، وهي أداة مجانية ومفتوحة المصدر لـ اكتشاف الشبكات وتدقيق الأمن. تستخدم Nmap حزم IP الأولية لتحديد الموارد المتاحة على الشبكة، والخدمات التي تقدمها هذه الموارد، وأنظمة التشغيل التي تعمل عليها، وأنواع مرشحات الحزم/جدران الحماية المستخدمة، وعشرات الخصائص الأخرى. هناك العديد من الأوامر التي يمكنك استخدامها مع هذه الأداة لفحص الشبكة. لمزيد من المعلومات، يمكنك الرجوع إلى وثائق Nmap الرسمية.

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

من خلال نتائج الفحص، نلاحظ وجود ثلاثة منافذ مفتوحة رئيسية:
- المنفذ
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 هنا.

نستخدم الأمر التالي لفحص الدلائل باستخدام قائمة كلمات dirb/common.txt:
gobuster dir -u 10.10.10.48 -w /usr/share/wordlists/dirb/common.txt

نلاحظ وجود بعض المجلدات المثيرة للاهتمام. لإجراء فحص أعمق، نستخدم قائمة كلمات مختلفة وأكثر شمولاً:
gobuster dir -u 10.10.10.48 -w /usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-medium.txt

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

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

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

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

علمنا أيضًا أن اسم المستخدم الافتراضي لـ 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

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

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

تظهر النتائج أن المستخدم pi ينتمي إلى مجموعة root، مما يعني أن لديه صلاحيات تنفيذ الأوامر كـ root.
الخطوة الرابعة: البحث عن علم المستخدم user.txt
للبحث عن علم المستخدم، نبدأ بسرد جميع الملفات والمجلدات في الدليل الحالي باستخدام الأمر التالي:
ls -la
ثم ننتقل إلى مجلد Desktop:
cd Desktop

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

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

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

الآن يمكننا الانتقال إلى مجلد /root. نجد ملف root.txt ونفحص محتواه باستخدام cat:
cat 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

ننتقل إلى هذا المجلد ونجد رسالة أخرى من مستخدم يُدعى 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

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

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

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