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


الأدوات المستخدمة في التحليل
خلال هذا المسار، يمكن الاستفادة من مجموعة أدوات شائعة في الاختبار الأمني، من أبرزها:
NmapNmap Scripting EngineGobusterSearchsploitxxdOpenSSLSSHtmux
هذه الأدوات لا تُستخدم عشوائياً، بل يكمل بعضها بعضاً: فالأولى للاستطلاع، والثانية لاكتشاف الثغرات، ثم تأتي أدوات استخراج المعلومات وفك الترميز والوصول النهائي.
المرحلة الأولى: الاستطلاع وجمع المعلومات
أهمية مرحلة الاستكشاف قبل أي استغلال
الاستطلاع هو الأساس الحقيقي لأي اختبار اختراق ناجح. فكلما زادت دقة المعلومات التي تجمعها في البداية، أصبحت قراراتك اللاحقة أكثر وعياً وأقل عشوائية. لهذا السبب، من الأفضل عادةً منح هذه المرحلة وقتاً كافياً بدلاً من القفز مباشرة إلى محاولات الاستغلال.
فحص المنافذ باستخدام Nmap
يمكن تنفيذ فحص مكثف للهدف عبر الأمر التالي:
nmap -A -v 10.129.1.190


يشير الخيار -A إلى تفعيل اكتشاف نظام التشغيل، وتحديد الإصدارات، وتشغيل السكربتات، وتنفيذ traceroute. أما -v فيزيد من مستوى التفاصيل أثناء الفحص.
أظهر الفحص وجود ثلاثة منافذ مفتوحة:
- المنفذ
22: خدمةSSHللوصول الآمن عن بُعد. - المنفذ
80: خدمةHTTP. - المنفذ
443: خدمةHTTPS.
فحص الثغرات عبر سكربتات NSE
بعد معرفة المنافذ المفتوحة، يمكن الانتقال إلى فحص الثغرات المعروفة باستخدام محرك سكربتات Nmap:
nmap --script vuln 10.129.1.190

يوفر Nmap Scripting Engine مرونة عالية في أتمتة مهام الشبكات وتحليل الخدمات. وغالباً ما توجد السكربتات على المسار التالي:
/usr/share/nmap/scripts

كما يمكن البحث عن سكربت محدد باستخدام grep عند الحاجة.

ومن أهم ما ظهر في النتائج أن النظام متأثر بثغرة ssl-heartbleed.

كما توفّر النتائج مراجع مهمة لفهم الثغرة بشكل أعمق، مثل:
- قاعدة بيانات
CVEلدىMITRE. - النشرة الأمنية الرسمية لمشروع
OpenSSL.


ما هي ثغرة Heartbleed؟
ثغرة Heartbleed هي خلل أمني شهير أصاب مكتبة OpenSSL. ظهرت الثغرة في عام 2012، ثم كُشف عنها علناً في أبريل 2014. خطورتها نابعة من أنها تسمح للمهاجم بقراءة أجزاء من ذاكرة الخادم أو العميل المتأثر، ما قد يؤدي إلى تسريب كلمات المرور، والمفاتيح الخاصة، وبيانات الجلسات، وغير ذلك من المعلومات الحساسة.
بمعنى أبسط: عند استغلال الثغرة، يمكن استرداد بيانات من الذاكرة لم يكن من المفترض كشفها مطلقاً. وهذا ما جعلها من أكثر الثغرات تأثيراً في تاريخ الإنترنت الحديث.


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


تفقد الشيفرة المصدرية للصفحة لم يكشف عن شيء مهم.

اكتشاف المسارات والمجلدات باستخدام Gobuster
هنا تظهر أهمية أدوات تعداد المحتوى المخفي. يمكن استخدام Gobuster مع قوائم كلمات مختلفة للعثور على ملفات ومجلدات غير ظاهرة مباشرة.
الأمر الأول باستخدام قائمة big.txt:
gobuster dir -u 10.129.1.190 -w /usr/share/wfuzz/wordlist/general/big.txt -x php,html,txt

ثم يمكن تكرار الفحص باستخدام قائمة megabeast.txt:
gobuster dir -u 10.129.1.190 -w /usr/share/wfuzz/wordlist/general/megabeast.txt -x php,html,txt

هذه المرحلة تؤكد نقطة مهمة: اختيار قائمة الكلمات المناسبة قد يصنع فرقاً كبيراً. أحياناً لا تكشف قائمة واحدة كل شيء، لذلك يفيد الجمع بين أكثر من قائمة للحصول على صورة أشمل.
من أبرز النتائج التي ظهرت:
- المسار
/dev - المسار
/decode - المسار
/encode

داخل مجلد /dev وُجد ملفان مهمان. الأول يحمل الاسم hype_key ويحتوي على قيم ست عشرية hex، والثاني هو notes.txt ويبدو كأنه قائمة مهام.


كما وُجدت صفحة لفك الترميز على /decode، وأخرى للترميز على /encode.


المرحلة الثالثة: استخراج المفتاح وفك تمثيله
عند نسخ محتوى الملف hype_key إلى ملف محلي، يمكن أولاً التحقق من سلامة النسخ عبر الأمر:
cat hype.key


بما أن البيانات مكتوبة بصيغة hex، فيمكن تحويلها إلى شكلها الأصلي باستخدام xxd:
cat hype.key | xxd -r -p
الخيار -r يعكس العملية، بينما يسمح -p بقراءة نص ست عشري بسيط. النتيجة هنا كانت مفتاح RSA مشفراً.

لحفظ الخرج في ملف جديد:
cat hype.key | xxd -r -p > hype_key.rsa

لكن وجود مفتاح خاص مشفر دون عبارة مرور لا يكفي وحده. لذلك تصبح الخطوة التالية هي البحث عن كلمة المرور المرتبطة به.
المرحلة الرابعة: البحث عن استغلال مناسب لثغرة Heartbleed
بما أن نتائج الاستطلاع أشارت بوضوح إلى وجود ثغرة Heartbleed، فمن الطبيعي البحث عن استغلال جاهز معروف لها باستخدام أداة Searchsploit.
searchsploit heartbleed

بعد ظهور النتائج، يمكن فتح تفاصيل الاستغلال المطلوب:
searchsploit -x 32764.py


ويمكن كذلك معرفة مكان ملف الاستغلال على النظام:
searchsploit -p 32764.py

ثم نسخه إلى مجلد العمل الحالي:
cp /usr/share/exploitdb/exploits/multiple/remote/32764.py .
ls -la

ولتبسيط التسمية، يمكن إعادة تسمية الملف:
mv 32764.py heartbleed.py

ثم تشغيله:
python2 heartbleed.py 10.129.1.190

عند مراجعة المخرجات، ظهر نص لافت:
$text =aGVhcnRibGVlZGJlbGlldmV0aGVoeXBlCg==
هذه السلسلة تبدو مرمزة بصيغة Base64. وهنا يمكن الاستفادة من صفحة /decode التي اكتشفناها مسبقاً.

بعد فك الترميز ظهرت عبارة المرور التالية:
heartbleedbelievethehype

ويمكن أيضاً فكها من الطرفية مباشرة عبر:
echo aGVhcnRibGVlZGJlbGlldmV0aGVoeXBlCg== | base64 --decode

المرحلة الخامسة: فك تشفير مفتاح RSA والوصول عبر SSH
بعد الحصول على عبارة المرور، يمكن محاولة فك حماية المفتاح الخاص عبر OpenSSL:
openssl rsa -in hype_key.rsa -out hype_key_decrypted.rsa
عند المطالبة بكلمة المرور، يتم إدخال العبارة المستخرجة سابقاً.

وبالعودة إلى نتائج الفحص الأولي، نعرف أن خدمة SSH متاحة على المنفذ 22. وبناءً على اسم الملف hype_key وما ظهر في المسارات، يمكن افتراض أن اسم المستخدم هو hype.
أمر الاتصال:
ssh -i hype_key_decrypted.rsa hype@10.129.1.190

وبذلك يتم الحصول على وصول أولي كمستخدم hype.
المرحلة السادسة: الوصول إلى user.txt
بعد تسجيل الدخول، يمكن التنقل إلى مجلد /home ثم إلى مجلد المستخدم hype بحثاً عن ملف الراية الخاص بالمستخدم.


لعرض محتوى الملف:
cat user.txt

المرحلة السابعة: تصعيد الصلاحيات إلى root
بعد الحصول على وصول المستخدم، تأتي مرحلة تحليل البيئة الداخلية للبحث عن فرص تصعيد الصلاحيات. عند محاولة دخول مجلد /root مباشرة، لن يكون ذلك متاحاً للمستخدم العادي.

لكن داخل مجلد المستخدم hype يظهر ملف .bash_history، وهو ملف يسجل الأوامر التي نُفذت سابقاً في الصدفة.

يمكن قراءة محتواه عبر:
cat .bash_history

من خلال التاريخ، تظهر أوامر مرتبطة بالأداة tmux. وهذه أداة تسمح بإدارة جلسات طرفية متعددة، وقد تتحول إلى فرصة خطيرة إذا كانت هناك جلسة تعمل بصلاحيات أعلى ويمكن لمستخدم آخر الوصول إليها.
للتحقق من الجلسات أو العمليات ذات الصلة:
ps aux | grep tmux

إذا وُجدت جلسة tmux مرتبطة بالمستخدم root وبمقبس يمكن الوصول إليه، فقد يتيح ذلك الالتحاق بها مباشرة:
tmux -S /.devs/dev_sess

وبهذه الخطوة يتم الوصول إلى صلاحيات root.

بعدها يمكن الانتقال إلى مجلد /root وقراءة الملف النهائي:
cat root.txt

الدروس الأمنية المستفادة من آلة Valentine
- وجود ثغرة قديمة مثل
Heartbleedكافٍ لتسريب بيانات حساسة جداً من الذاكرة. - الملفات المكشوفة داخل مسارات التطوير مثل
/devقد تمنح المهاجم أدلة حاسمة. - استخدام أكثر من قائمة كلمات في
Gobusterيرفع احتمالات اكتشاف المسارات المهمة. - تاريخ الأوامر
.bash_historyقد يتحول إلى مصدر معلومات خطير إذا لم يُؤمَّن جيداً. - جلسات
tmuxأو المقابس المشتركة غير المحمية قد تؤدي مباشرة إلى تصعيد الصلاحيات.
توصيات المعالجة والحماية
- ترقية
OpenSSLإلى إصدار آمن ومحدّث فوراً. - استبدال جميع المفاتيح والشهادات التي ربما تأثرت بالتسريب، مع إبطال القديمة.
- تطبيق مبدأ أقل الصلاحيات
Principle of Least Privilegeعلى الخدمات والمستخدمين. - منع كشف ملفات التطوير والنسخ الاحتياطية والمسارات الحساسة على الويب.
- تقييد الوصول إلى ملفات التاريخ مثل
.bash_historyومراجعة محتواها دورياً. - تأمين جلسات
tmuxوالمقابس المرتبطة بها وعدم تشغيلها بطريقة تسمح لمستخدمين غير مخولين بالوصول إليها.
الخلاصة التقنية
تكشف آلة Valentine كيف يمكن لثغرة واحدة مع سوء ضبط بسيط أن تفتح سلسلة كاملة من الاستغلال: من تسريب ذاكرة عبر Heartbleed، إلى استرجاع كلمة مرور مفتاح خاص، ثم وصول أولي عبر SSH، وأخيراً تصعيد صلاحيات بسبب جلسة tmux غير مؤمنة. تقنياً، هذه الآلة تقدم درساً مهماً مفاده أن الأمن لا يعتمد على عنصر منفرد، بل على سلامة السلسلة كاملة: التحديثات، وإدارة الأسرار، وعزل الجلسات، وتقليل الصلاحيات.
