ملاحظات Pentester: حالات الصيد

صورة

- يا رفاق بارد! لذلك لا أحد قد خذلنا حتى الآن!
- حاولنا.

نعم ، حياة صيادي الضعف مليئة بالمجاملات المحددة من العملاء ولا تقل عن المواقف المحددة. على مدار العام الماضي ، أكملنا أكثر من خمسين اختبارًا للاختراق في شركات مختلفة ، ويجب القول ، لقد رأينا كل شيء. كلمة مرور واحدة لجميع الحسابات والأنظمة ، التخزين المفتوح لكلمات المرور في قاعدة بيانات ، بقايا وظيفة تصحيح الأخطاء في بيئة قتالية ... لذلك ، عندما أخبر زملاءنا من JSOC CERT العديد من القصص عن التحقيقات في الحوادث الإلكترونية ، قررنا في قسم Pentest الحفاظ على الجانب الآخر من "المتراس" وإظهاره »: البنية التحتية للعميل من خلال عيون القراصنة. سنخبرك اليوم عن أكثر المواقع الخارجية إثارة للاهتمام في الآونة الأخيرة ، عندما اضطررنا إلى اختراق المحيط الداخلي للعميل ، مع وجود قائمة بعناوين IP الخارجية وأسماء النطاقات الخاصة به فقط.

Odyn، odyn تماما


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

بعد 4 ساعات:
"نحن بالفعل في الداخل."
- هيا؟ لا يمكن أن يكون هكذا! الآن دعونا نتحقق من السجلات ...

الجمعة:
- اللعنة ، حقا. كيف ذلك؟ لكن بما أن الوقت لم ينجح ، فربما تبحث عن شيء آخر؟
- نعم لا شك.

وبدأنا في البحث. عند مسح محيط المؤسسة ، صادفنا مضيفًا كانت عليه 4 تطبيقات ويب تدور حولها ، وخادم FTP ، ولوحة إدارة phpMyAdmin معلقة. لم يكشف تحليل تطبيقات الويب عن أي نقاط ضعف حرجة (على سبيل المثال ، حقن SQL ، XXE ، RCE ، وما إلى ذلك) من شأنها أن تسمح لنا بالوصول إلى الخادم. في مرحلة ما تحولوا إلى FTP - وهنا كان أكثر إثارة للاهتمام بالفعل: تم فتح وصول مجهول على الخادم ، ولكن للقراءة فقط.

صورة

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

صورة

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

صورة

هذه هي الطريقة التي يمهد بها الكسل العادي (وأيضًا لشرح التردد في إدخال كلمات مرور مختلفة لكل لوحة إدارة؟) الطريق للمتسللين إلى الشبكة الداخلية للمؤسسة.

لماذا التصحيح في بيئة قتالية؟


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

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

صورة

مثال آخر في بداية المشروع ، أطلقنا وحشية متكررة للنطاقات الفرعية وتركناه. بعد مرور بعض الوقت ، وللمفاجأة ، ظهر نطاق فرعي من المستوى الخامس يسمى test.debug.application.client.ru ، حيث وجدنا تطبيقًا على الويب مع تثبيت المشرف هناك. هذا هو تطبيق إدارة قاعدة بيانات خفيفة الوزن ، في الإصدارات القديمة منه ، إذا تم تكوينه بشكل غير صحيح ، يمكنك التفاعل مع قاعدة بيانات SQLite دون كلمة مرور.

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

كل ما تبقى هو معرفة العنوان الكامل لتطبيق الويب على الخادم. هنا ساعدنا جميع "CMS 1C-Bitrix" المحبوب ، والذي ، في رسالة خطأ ، شاركنا بكل سرور معنا حيث يوجد. ثم بقي فقط لملء قذيفة وإنهاء المشروع.

صورة

يمكن الاطلاع على العمل مع SQLite DB هنا .

وجدت سجلات؟ كلمات المرور كهدية!


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

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

بعد الوصول إلى التطبيق ، واصلنا تحليله ووجدنا ملفًا آخر مثيرًا للاهتمام - تم عرض جميع استعلامات قاعدة البيانات في الوقت الفعلي فيه. باستخدام أداة تصحيح الأخطاء المناسبة ، أصبح البحث عن الثغرات الأمنية واستغلال حقن SQL Boolean-Timebased SQL التي تم العثور عليها مهمة تافهة.

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

علامات المحاصيل


أولاً ، قم بإجراء اختبار تغلغل دوري - سوف يساعدك في العثور على نقاط رقيقة ربما تكون قد فاتتك في مرحلة التطوير أو عند التبديل من بيئات الاختبار إلى مكافحة تلك.

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

ثالثًا ، قم بإزالة أوضاع تصحيح الأخطاء في البيئات القتالية.

PS


بشكل عام ، فإن الحياة اليومية لقسم Pentest مليئة بجميع أنواع "الترفيه" ، وبالطبع ، فإن الاختبارات الخارجية ليست الوحيدة. قد يرغب العميل في التحقق من ثغرات المحيط الداخلية (pentest الداخلية) ، أو تحليل أمان تطبيقات الويب والجوال ، بالإضافة إلى شبكات WiFi ، أو الترتيب للموظفين للتحقق من استخدام أساليب الهندسة الاجتماعية.

في وقت فراغنا من المشاريع ، نفهم Zen ، نبحث عن نقاط ضعف جديدة ، ونحسن أدواتنا وتقنياتنا. ونحن منخرطون في bugbounty (حيث بدونها).

سوف تتعلم عن تنوع "مغامراتنا" في المشاركات التالية.

Source: https://habr.com/ru/post/ar463971/


All Articles