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

تُعتبر آلة Blocky بسيطة نسبيًا في مجملها، وقد استندت إلى سيناريو حقيقي. تُسلط هذه الآلة الضوء على المخاطر الجسيمة المترتبة على ممارسات كلمات المرور الضعيفة، بالإضافة إلى خطورة كشف الملفات الداخلية الحساسة على نظام مواجه للجمهور. في هذا الدليل، سنستخدم مجموعة من الأدوات المتخصصة على نظام Kali Linux لاختراق هذه الآلة:
nmap: لاستكشاف الشبكة والمنافذ.nikto: لمسح خوادم الويب بحثًا عن الثغرات.gobuster: لاكتشاف الدلائل والملفات المخفية.wpscan: لمسح تثبيتات ووردبريس بحثًا عن نقاط الضعف.jd-gui: لفك تجميع ملفات Java JAR.hash-identifier: لتحديد أنواع التجزئة (الهاش).
لنبدأ رحلتنا في اختبار الاختراق.
أولًا، سنضيف اسم المضيف blocky.htb إلى ملف /etc/hosts لربطه بعنوان IP الخاص بالآلة (10.10.10.37). هذا يسهل التعامل مع الآلة باستخدام اسمها بدلًا من IP:
nano /etc/hosts
10.10.10.37 blocky.htb

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

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

من خلال نتائج المسح، نلاحظ وجود ثلاثة منافذ مفتوحة:
Port 21: بروتوكول نقل الملفات (FTP) للتحكم والأوامر.Port 22: بروتوكول القشرة الآمنة (SSH)، يُستخدم لتسجيل الدخول الآمن، ونقل الملفات (scp،sftp)، وتوجيه المنافذ.Port 80: يُستخدم غالبًا بواسطة بروتوكول نقل النص التشعبي (HTTP).
مسح الدلائل باستخدام Gobuster و Nikto و WPScan
سنستخدم أداة Gobuster، وهي ماسح دلائل مكتوب بلغة Go. تعتمد Gobuster على قوائم الكلمات (wordlists) الموجودة في نظام Kali Linux ضمن الدليل /usr/share/wordlists. سنستخدم قوائم الكلمات من dirb و dirbuster، ويمكنك تنزيل المزيد من القوائم من SecLists.

لتشغيل Gobuster باستخدام قائمة الكلمات common.txt من dirb:
gobuster dir -u blocky.htb -w /usr/share/wordlists/dirb/common.txt

نلاحظ وجود دلائل خاصة بـ WordPress مثل (wp-admin، wp-content، wp-includes). كما توجد صفحات أخرى مثيرة للاهتمام مثل (/phpmyadmin و /plugins).
بعد ذلك، سنستخدم Nikto، وهو ماسح خوادم ويب مفتوح المصدر يقوم بإجراء اختبارات شاملة ضد خوادم الويب. يتحقق Nikto من الإصدارات القديمة لأكثر من 1250 خادمًا، والمشاكل الخاصة بالإصدارات على أكثر من 270 خادمًا. كما يتحقق من عناصر تكوين الخادم مثل وجود ملفات فهرس متعددة، وخيارات خادم HTTP، ويحاول تحديد خوادم الويب والبرامج المثبتة.

لتشغيل المسح باستخدام Nikto:
nikto -host blocky.htb

تُظهر نتائج Nikto بعض الدلائل التي قد تكون مفيدة مثل (/wp-content/uploads/ و /wp-login.php).
أخيرًا، سنستخدم WPScan، وهو ماسح ثغرات WordPress من نوع الصندوق الأسود (black box) يمكن استخدامه لمسح تثبيتات WordPress عن بُعد للعثور على مشكلات أمنية.

لتشغيل المسح باستخدام WPScan:
wpscan --url blocky.htb -e


من خلال WPScan، تمكنا من اكتشاف اسم مستخدم واحد وهو Notch.
الخطوة 2: استكشاف صفحات الويب المكتشفة
بعد جمع المعلومات الأولية، حان الوقت لزيارة الصفحات التي اكتشفناها خلال مرحلة الاستطلاع. لنبدأ بالصفحة الرئيسية للموقع، والتي تبين أنها مدونة حول لعبة Minecraft باسم BlockyCraft.


قمنا بالبحث في صفحة wiki، ولكن لم نجد أي معلومات مثيرة للاهتمام.

كما قمنا بزيارة صفحة /wp-content/uploads، ولم تسفر عن أي نتائج مفيدة.

بعد ذلك، اكتشفنا لوحة تحكم المسؤول (admin panel) الخاصة بالموقع:

بالإضافة إلى لوحة تحكم phpMyAdmin:

اكتشاف ملفات JAR واستغلالها
بالانتقال إلى مجلد /plugins، وجدنا ملفين بصيغة .jar. ملف JAR هو تنسيق ملف حزمة يُستخدم عادةً لتجميع العديد من ملفات فئات Java والبيانات الوصفية والموارد المرتبطة بها في ملف واحد للتوزيع. ملفات JAR هي ملفات أرشيف تتضمن ملف manifest خاص بـ Java، وهي مبنية على تنسيق ZIP وعادةً ما يكون لها امتداد .jar.
قمنا بتنزيل كلا الملفين إلى نظام Kali Linux الخاص بنا.

لاستكشاف محتوى ملفات Java، استخدمنا أداة JD-GUI لفك تجميعها. JD-GUI هي أداة رسومية مستقلة تعرض أكواد مصدر Java لملفات .class.
قمنا بتشغيل الأداة بالأمر:
jd-gui
ثم اخترنا ملف Java class الذي أردنا قراءته، وهو BlockyCore.class.

داخل الملف، تمكنا من رؤية اسم مستخدم وكلمة مرور:

الوصول إلى phpMyAdmin وتحديد الهاش
عدنا إلى لوحة تحكم phpMyAdmin وأدخلنا بيانات الاعتماد التي وجدناها للتو. تمكنا من الوصول إلى قاعدة البيانات بنجاح.

استكشفنا جدول wp_users ضمن مجلد wordpress لمعرفة ما إذا كان بإمكاننا الحصول على مزيد من المعلومات حول مستخدمي المدونة.
استخدمنا استعلام SQL التالي:
SELECT * FROM `wp_users`
الذي يعني "حدد جميع المستخدمين من جدول wp_users"، وقد أعطانا نتيجة واحدة فقط، وهي المستخدم Notch.

لتحديد نوع التجزئة (الهاش) لكلمة المرور التي عثرنا عليها، استخدمنا أداة hash-identifier. هذه الأداة تُستخدم لتحديد الأنواع المختلفة من التجزئات المستخدمة لتشفير البيانات، وخاصة كلمات المرور.
قمنا بتشغيل hash-identifier بالأمر التالي:
hash-identifier
وقمنا بنسخ ولصق كلمة المرور المجزأة التي حصلنا عليها سابقًا:

أظهرت النتائج أن الهاش على الأرجح هو من نوع MD5 (WordPress).
الخطوة 3: استغلال المنفذ 22 (SSH)
عدنا إلى الطرفية (terminal) وقمنا بالاتصال باستخدام بروتوكول SSH. بروتوكول SSH (المشار إليه أيضًا باسم Secure Shell) هو طريقة لتسجيل الدخول الآمن عن بُعد من جهاز كمبيوتر إلى آخر. يوفر العديد من الخيارات البديلة للمصادقة القوية، ويحمي أمن وسلامة الاتصالات بتشفير قوي. إنه بديل آمن لبروتوكولات تسجيل الدخول غير المحمية (مثل telnet و rlogin) وطرق نقل الملفات غير الآمنة (مثل FTP).
استخدمنا الأمر التالي للاتصال:
ssh notch@10.10.10.37
وأدخلنا كلمة المرور التي وجدناها في ملف BlockyCore.class سابقًا.

الخطوة 4: البحث عن علم المستخدم (user.txt)
أصبحنا الآن متصلين كالمستخدم Notch. قمنا بسرد جميع المجلدات/الملفات باستخدام الأمر ls:

وجدنا ملف user.txt! لقراءة محتوى الملف، استخدمنا الأمر:
cat user.txt
الآن بعد أن حصلنا على علم المستخدم، لنبحث عن علم الجذر (root flag)!
الخطوة 5: رفع الامتيازات (Privilege Escalation)
للتحقق من امتيازات المستخدم الحالي، استخدمنا الأمر sudo. sudo هو برنامج لأنظمة تشغيل شبيهة بـ Unix يسمح للمستخدمين بتشغيل البرامج بامتيازات أمان مستخدم آخر، وهو افتراضيًا المستخدم الخارق (superuser). كان اسمه في الأصل "superuser do" حيث صُممت الإصدارات القديمة من sudo لتشغيل الأوامر فقط بصلاحيات المستخدم الخارق.

لسرد امتيازات المستخدم، استخدمنا هذا الأمر:
sudo -l
استخدمنا نفس كلمة المرور التي وجدناها سابقًا.

نلاحظ أن المستخدم Notch لديه امتيازات غير محدودة ويمكنه تشغيل أي أمر على النظام. قمنا بالتحقق من الهوية (id). يُستخدم الأمر id في Linux لمعرفة أسماء المستخدمين والمجموعات ومعرفاتهم الرقمية للمستخدم الحالي أو أي مستخدم آخر على الخادم.

لرفع الامتيازات إلى المستخدم الجذر (root)، استخدمنا الأمر التالي:
sudo su

الخطوة 6: البحث عن علم الجذر (root.txt)
أصبحنا الآن مستخدمًا جذريًا (root user) ويمكننا التنقل إلى مجلد الجذر (root folder).

وجدنا ملف root.txt!

لقراءة محتوى الملف، استخدمنا الأمر:
cat root.txt
تهانينا! لقد وجدنا كلا العلمين بنجاح.

الخلاصة التقنية
تُقدم آلة Blocky من Hack The Box درسًا عمليًا قيمًا في أساسيات اختبار الاختراق، وتُبرز بشكل خاص المخاطر الأمنية الناجمة عن سوء إدارة كلمات المرور وكشف الملفات الداخلية الحساسة. لقد تتبعنا مسارًا نموذجيًا للاختراق بدءًا من الاستطلاع الشامل باستخدام أدوات مثل Nmap و Gobuster و Nikto و WPScan، مرورًا باكتشاف بيانات الاعتماد المخزنة بشكل غير آمن داخل ملف Java JAR (BlockyCore.class) باستخدام JD-GUI. هذا السيناريو يؤكد على أهمية التكوين الآمن للتطبيقات وعدم تضمين معلومات حساسة في الكود المصدري أو الملفات القابلة للتنزيل. كما أظهرت العملية كيف يمكن لممارسات كلمات المرور الضعيفة أن تؤدي إلى اختراق قاعدة البيانات (phpMyAdmin) ومن ثم الوصول الأولي للنظام عبر SSH. أخيرًا، كشفت سهولة رفع الامتيازات للمستخدم Notch عن ضعف في إدارة الصلاحيات، حيث كان لديه القدرة على تنفيذ أوامر sudo غير مقيدة، مما سمح بالوصول الكامل إلى الجذر. تُعد هذه الثغرات مجتمعة تذكيرًا قويًا بضرورة اتباع أفضل الممارسات الأمنية في كل طبقات البنية التحتية لتجنب التعرض للاختراق.