Exploit-DB و searchsploit

جارٍ التحميل…

01 / ملخص الدرس

Exploit-DB و searchsploit

إزاي تدوّر على exploits في Exploit-DB وبـ searchsploit من غير إنترنت، وتنسخ الـ exploit وتقراه قبل ما تشغّله، وتفلتر النتايج بـ Python.

02 / شرح الدرس مكتوبًا

نص شرح المعلم والكود الذي كتبه ونتيجة تشغيله، بنفس ترتيب الدرس.

الـ NVD بيقولّك الثَغْرة موجودة. بس علشان تثبتها، محتاج exploit، يعني code بيستغلها. وأشهر مكان للـ exploits العامة: Exploit DB.

الـ Exploit DB موقع من OffSec، فيه آلاف الـ exploits. كل exploit ليه رقم اسمه EDB dash ID. وفيه أداة في الـ terminal اسمها searchsploit، فيها نسخة من الموقع كلها على جهازك، شغّالة من غير إنترنت.

إزاي تستخدم searchsploit؟ تكتب searchsploit وبعده اسم المنتج والإصدار. dash m وبعده الرقم، بينسخلك الـ exploit في المكان بتاعك. و dash x بيفتحه للقراءة.

وأهم نصيحة في الدرس ده: اقرا الـ exploit قبل ما تشغّله. افهم بيعمل إيه خطوة بخطوة. exploits من ناس مجهولة ممكن تكون فيها backdoor تأذيك إنت. وعدّل الـ IP والـ port للهدف بتاعك. ما تشغّلش code مش فاهمه على جهاز العميل. هنا نتيجة searchsploit محفوظة في list، كل item فيه العنوان والـ path. نطلّع رقم الـ EDB من آخر الـ path، قبل الـ dot. نشغّل… تلات exploits، كل واحد برقمه.

main.py
# Saved output of: searchsploit apache 2.4.49
results = [
    ("Apache HTTP Server 2.4.49 - Path Traversal and RCE", "multiple/webapps/50383.sh"),
    ("Apache HTTP Server 2.4.50 - Remote Code Execution (2)", "multiple/webapps/50406.sh"),
    ("Apache 2.4.x - Denial of Service", "linux/dos/40961.py"),
]

for title, path in results:
    edb_id = path.split("/")[-1].split(".")[0]
    print(f"EDB-{edb_id:6} {title}")

المخرجات

EDB-50383  Apache HTTP Server 2.4.49 - Path Traversal and RCE
EDB-50406  Apache HTTP Server 2.4.50 - Remote Code Execution (2)
EDB-40961  Apache 2.4.x - Denial of Service

دورك: إحنا مش عايزين هجمات Denial of Service، لأنها بتوقّع الخدمة. فلتر أي عنوان فيه Denial of Service، وما تطبعهوش.

تمرين

جُوّه الـ loop: if "Denial of Service" in title: continue

الحل: نشغّل… اتنين بس، والـ DoS اختفى.

main.py
# Saved output of: searchsploit apache 2.4.49
results = [
    ("Apache HTTP Server 2.4.49 - Path Traversal and RCE", "multiple/webapps/50383.sh"),
    ("Apache HTTP Server 2.4.50 - Remote Code Execution (2)", "multiple/webapps/50406.sh"),
    ("Apache 2.4.x - Denial of Service", "linux/dos/40961.py"),
]


for title, path in results:
    if "Denial of Service" in title:
        continue
    edb_id = path.split("/")[-1].split(".")[0]
    print(f"EDB-{edb_id:6} {title}")

المخرجات

EDB-50383  Apache HTTP Server 2.4.49 - Path Traversal and RCE
EDB-50406  Apache HTTP Server 2.4.50 - Remote Code Execution (2)

الدرس الجاي: مصادر تانية للـ exploits، وبالذات GitHub و Metasploit. يلا بينا.

03 / دروس المسار (16)
  1. 01يعني إيه ثغرة؟ ومن الـ Recon للـ Vulnerabilities
  2. 02CVE و CWE: أسماء الثغرات
  3. 03الخطورة: CVSS و EPSS و KEV
  4. 04البحث في NVD
  5. 05Exploit-DB و searchsploitانت هنا
  6. 06GitHub و Metasploit
  7. 07الفحص بـ Nmap NSE
  8. 08الفحص بـ Nuclei
  9. 09الفحص بـ Nikto
  10. 10الفحص بـ OpenVAS
  11. 11فحص بصلاحيات ومن غيرها
  12. 12تجميع وتنظيم النتايج
  13. 13False Positives والتأكد اليدوي
  14. 14ترتيب الأولويات
  15. 15أتمتة الفحص بـ Python
  16. 16مراجعة شاملة