Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-35616 — كشف مجموعة أدوات لـ CVE-2026-35616، وهو تجاوز للمصادقة المسبقة في واجهة برمجة التطبيقات (API) في FortiClient EMS. يتضمن ماسحًا بلغة Python وسكربت Nmap NSE لتحديد الإصدارات المعرضة للخطر وتقديم إرشادات المعالجة. | Kitploit
أدوات/GitHubGitHub/keraattin/cve-2026-35616
ماسحات الثغرات الأمنيةتحليل الثغرات الأمنيةالاستغلالجمع المعلوماتأمن الويبأمن الشبكاتاختبار الاختراقالمصادقة
GitHubkeraattin/cve-2026-35616

CVE-2026-35616

كشف مجموعة أدوات لـ CVE-2026-35616، وهو تجاوز للمصادقة المسبقة في واجهة برمجة التطبيقات (API) في FortiClient EMS. يتضمن ماسحًا بلغة Python وسكربت Nmap NSE لتحديد الإصدارات المعرضة للخطر وتقديم إرشادات المعالجة.

عرض المستودع
124منذ 5 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

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

عرض جميع الأدوات →
مشاركة

CVE-2026-35616 - تجاوز مصادقة API قبل التحقق في FortiClient EMS يؤدي إلى تنفيذ تعليمات برمجية عن بُعد

CVE-2026-35616 CVSS 9.1 CISA KEV CWE-284

خلاصة سريعة

ثغرة حرجة في تجاوز المصادقة في Fortinet FortiClient EMS 7.4.5 و 7.4.6 تسمح لمهاجم عن بُعد غير مصادق تمامًا بتجاوز مصادقة API عبر تزوير ترويسة HTTP واحدة (X-SSL-CLIENT-VERIFY). يكمن الخلل في أن برمجية Django الوسيطة تثق في بيانات وصف شهادة العميل القادمة من ترويسات يتحكم بها المستخدم، وليس فقط من الوكيل العكسي الموثوق. يمنح هذا المهاجمين وصولًا إداريًا كاملًا لواجهة API - ومن هناك، تنفيذ تعليمات برمجية عشوائية على نقاط النهاية المُدارة عبر المؤسسة.

تم استغلالها بنشاط منذ 31 مارس 2026. أُضيفت إلى كتالوج CISA KEV في 6 أبريل 2026.


جدول المحتويات

  • حقائق سريعة
  • ما هو FortiClient EMS؟
  • غوص عميق في الثغرة
    • البنية المعمارية
    • أين يقع الخلل
    • مسار الهجوم
  • تحليل الأثر
  • الإصدارات المتأثرة
  • الجدول الزمني للاستغلال
  • الكشف
    • الماسح بلغة بايثون
    • سكربت Nmap NSE
    • التحقق اليدوي
  • مؤشرات الاختراق
  • المعالجة
  • المراجع
  • المؤلف

حقائق سريعة

الحقلالتفاصيل
معرف CVECVE-2026-35616
البائعFortinet
المنتجخادم إدارة المؤسسات FortiClient (EMS)
الإصدارات المتأثرة7.4.5، 7.4.6
غير المتأثرةفرع 7.2.x، 7.4.4 والإصدارات الأقدم
CVSS v3.19.1 (حرجة)
CWECWE-284 - التحكم غير السليم في الوصول
متجه الهجومالشبكة
المصادقةغير مطلوبة
تفاعل المستخدملا شيء
نضج الاستغلالمُستغلة في البرية
CISA KEVأُضيفت في 6 أبريل 2026 (الموعد النهائي: 9 أبريل 2026)
التصحيحتصحيح عاجل متاح؛ الإصلاح الكامل في 7.4.7
نسبة الفضل إلىSimo Kohonen (Defused Cyber)، Nguyen Duc Anh

ما هو FortiClient EMS؟

خادم إدارة المؤسسات FortiClient (EMS) هو منصة إدارة نقاط النهاية المركزية من Fortinet. يعمل كطبقة القيادة والتحكم لنشر وتكوين ومراقبة وكلاء FortiClient عبر المؤسسة. اعتبره الدماغ الذي يحكم كل نقطة نهاية في بيئة مُدارة بواسطة Fortinet:

  • يدفع سياسات الأمان وملفات تعريف VPN إلى نقاط النهاية
  • يدير امتثال نقاط النهاية وفحوصات الوضعية
  • يوزع تحديثات البرامج والتصحيحات
  • يتكامل مع جدران حماية FortiGate للوصول إلى الشبكة بدون ثقة (ZTNA)
  • يخزن ويدير القياسات عن بُعد والشهادات وبيانات الاعتماد لنقاط النهاية

عندما يحصل مهاجم على وصول إداري إلى EMS، فإنه يمتلك فعليًا مفاتيح كل نقطة نهاية مُدارة في المؤسسة.


غوص عميق في الثغرة

البنية المعمارية

يستخدم FortiClient EMS حزمة تطبيقات ويب قياسية إلى حد ما خلف الكواليس:

root@kitploit:~
+----------------+          +----------------+          +----------------+
|   Browser /    |  HTTPS   |    Apache      |   WSGI   |    Django      |
|   API Client   | -------> |   (mod_ssl)    | -------> |    Backend     |
+----------------+          +----------------+          +----------------+

عند تكوين TLS المتبادل (mTLS)، تتعامل وحدة mod_ssl الخاصة بـ Apache مع التحقق من شهادة العميل. بعد التحقق من الشهادة، يمرر Apache نتيجة التحقق إلى Django عبر متغيرات بيئة WSGI الموثوقة:

  • SSL_CLIENT_VERIFY - حالة التحقق (SUCCESS، NONE، FAILED)
  • SSL_CLIENT_S_DN - الاسم المميز للموضوع من الشهادة
  • SSL_CLIENT_SERIAL - الرقم التسلسلي للشهادة

هذا هو النمط القياسي والآمن. المشكلة تكمن في كيفية قراءة برمجية Django الوسيطة لهذه البيانات.

أين يقع الخلل

في FortiClient EMS 7.4.5 و 7.4.6، تم تعديل برمجية Django الوسيطة للمصادقة لتقبل أيضًا هذه المعلومات نفسها من ترويسات طلبات HTTP:

  • X-SSL-CLIENT-VERIFY
  • X-SSL-CLIENT-S-DN
  • X-SSL-CLIENT-SERIAL

يُرجح أن هذا أُضيف لدعم نشر الوكيل العكسي حيث لا يكون Apache هو نقطة إنهاء TLS. ومع ذلك، لا تميز البرمجية الوسيطة بين هذين المصدرين. تتحقق من متغيرات WSGI أولًا، لكن إذا كانت غائبة (عدم تكوين mTLS، أو اتصال مباشر)، فإنها تتراجع إلى ترويسات HTTP - والتي يمكن لأي عميل تعيينها.

إليك التحليل المفاهيمي:

root@kitploit:~
المسار الآمن (المقصود):
  Apache mod_ssl يتحقق من الشهادة --> يعين متغيرات بيئة WSGI --> Django يقرأ متغيرات البيئة  [موافق]

المسار غير الآمن (الثغرة):
  المهاجم يعين ترويسات HTTP مباشرة --> Django يقرأ الترويسات --> يثق بها  [فشل]

تثق البرمجية الوسيطة فعليًا بالعميل ليشهد بنفسه على حالة التحقق من شهادته. هذا يشبه حارسًا يسأل شخصًا "هل قام الحارس الآخر بفحص هويتك بالفعل؟" ويسمح له بالدخول عندما يقول "نعم".

مسار الهجوم

root@kitploit:~
الخطوة 1: يرسل المهاجم طلب POST إلى نقطة نهاية API في EMS
        مع هذه الترويسات:
        
        X-SSL-CLIENT-VERIFY: SUCCESS
        X-SSL-CLIENT-S-DN: CN=admin
        X-SSL-CLIENT-SERIAL: 0000000000000001

الخطوة 2: تتحقق برمجية Django الوسيطة من متغيرات بيئة WSGI → غير موجودة
        تتراجع إلى ترويسات HTTP → تجد X-SSL-CLIENT-VERIFY: SUCCESS

الخطوة 3: تعامل البرمجية الوسيطة الطلب كمصادق عليه بهوية إدارية

الخطوة 4: يحصل المهاجم على وصول إداري كامل لواجهة API

الخطوة 5: من واجهة API الإدارية، يمكن للمهاجم:
        - دفع سياسات خبيثة إلى جميع نقاط النهاية المُدارة
        - استخراج بيانات الاعتماد والشهادات المخزنة
        - نشر حمولات عبر توزيع البرامج
        - تعديل تكوينات ZTNA
        - الانتقال الجانبي إلى الشبكة الأوسع

يتطلب الهجوم بأكمله طلب HTTP واحدًا فقط. لا تخمين كلمات مرور، ولا حشو بيانات اعتماد، ولا هندسة اجتماعية. مجرد ترويسة واحدة مزورة.


تحليل الأثر

تتجاوز الخطورة هنا الخادم نفسه. FortiClient EMS هو مضاعف قوة - اختراقه يمنح المهاجم نفوذًا على كل نقطة نهاية مُدارة:

الأثر المباشر:

  • تحكم إداري كامل في وحدة تحكم EMS
  • الوصول إلى جميع تكوينات نقاط النهاية وبيانات الاعتماد والشهادات المخزنة
  • القدرة على قراءة/تعديل/حذف سياسات نقاط النهاية
  • الوصول إلى تكوينات VPN وإعدادات ZTNA

الأثر اللاحق (عبر نقاط النهاية المُدارة):

  • نشر برمجيات خبيثة على جميع الأجهزة المُدارة عبر توزيع البرامج
  • حصاد بيانات الاعتماد من القياسات عن بُعد لنقاط النهاية
  • تعطيل أو إضعاف ضوابط الأمان على جميع نقاط النهاية المُدارة
  • الحركة الجانبية عبر التلاعب بتكوينات VPN/ZTNA
  • وصول خلفي دائم عبر تسليم الحمولات القائمة على السياسات

مخاطر المؤسسة:

  • في نشر مؤسسي نموذجي، يدير EMS مئات إلى آلاف نقاط النهاية
  • يمكن أن يؤدي مثيل EMS واحد مُستغل إلى اختراق على مستوى المؤسسة
  • غالبًا ما يتم وضع FortiClient EMS في منطقة شبكة موثوقة ذات وصول واسع

الإصدارات المتأثرة

الإصدارالحالة
FortiClient EMS 7.4.6عرضة للثغرة
FortiClient EMS 7.4.5عرضة للثغرة
FortiClient EMS 7.4.4 والإصدارات الأقدمغير متأثرة
FortiClient EMS 7.2.xغير متأثرة

الجدول الزمني للاستغلال

التاريخالحدث
~أواخر مارس 2026اكتشاف الثغرة والإبلاغ عنها بواسطة Simo Kohonen و Nguyen Duc Anh
31 مارس 2026تسجيل أولى محاولات الاستغلال ضد أنظمة honeypot (Defused Cyber)
4 أبريل 2026إصدار Fortinet تصحيحات عاجلة طارئة لـ 7.4.5 و 7.4.6
6 أبريل 2026إضافة CISA لـ CVE-2026-35616 إلى كتالوج KEV (الموعد النهائي: 9 أبريل 2026)
13 أبريل 2026نشر مجموعة أدوات الكشف هذه

الكشف

الماسح بلغة بايثون

يختبر سكربت بايثون نقاط نهاية API متعددة باستخدام تقنية الاستجابة التفاضلية.

كيف يعمل:

  1. بصمة النظام - تحديد FortiClient EMS عبر جسم استجابة HTTP والترويسات
  2. طلب خط الأساس - إرسال POST إلى كل نقطة نهاية API بدون ترويسات مزيفة (يتوقع HTTP 401 Unauthorized)
  3. الطلب المزيف - إرسال نفس الطلب مع حقن X-SSL-CLIENT-VERIFY: SUCCESS
  4. المقارنة - إذا تغير رمز الحالة من 401 إلى أي شيء آخر (عادةً 500 أو 200)، يتم تأكيد تجاوز المصادقة

لا يتم إرسال أي حمولة استغلال أبدًا. الاختبار آمن للإنتاج.

الاستخدام:

root@kitploit:~
# تثبيت التبعيات (مطلوبة مكتبة stdlib فقط لهذا السكربت)
pip install -r requirements.txt

# هدف واحد
python CVE-2026-35616_FortiClientEMS_detector.py -t 192.168.1.100

# منفذ مخصص
python CVE-2026-35616_FortiClientEMS_detector.py -t ems.corp.local -p 8443

# فحص جماعي من ملف
python CVE-2026-35616_FortiClientEMS_detector.py -f targets.txt

# حفظ مخرجات JSON إلى ملف
python CVE-2026-35616_FortiClientEMS_detector.py -t 192.168.1.100 --json -o results.json

# مع تفعيل التحقق من شهادة SSL
python CVE-2026-35616_FortiClientEMS_detector.py -t 192.168.1.100 --verify-ssl

# زيادة المهلة للشبكات البطيئة
python CVE-2026-35616_FortiClientEMS_detector.py -t 192.168.1.100 --timeout 20

الخيارات:

العلمالوصفالافتراضي
-t, --targetعنوان IP أو اسم المضيف للهدف-
-f, --fileملف يحتوي على الأهداف، هدف واحد لكل سطر (يتم تخطي الأسطر التي تبدأ بـ #)-
-p, --portمنفذ الهدف443
--timeoutمهلة الاتصال بالثواني10
--verify-sslتفعيل التحقق من شهادة SSLمعطل
--jsonإخراج النتائج بتنسيق JSONإيقاف
-o, --outputحفظ النتائج إلى ملف-

مثال على المخرجات:

root@kitploit:~
╔══════════════════════════════════════════════════════════════╗
║  CVE-2026-35616 - FortiClient EMS Auth Bypass Detector     ║
║  Pre-Authentication API Access Bypass → Privilege Escalation║
║  CVSS: 9.1 (Critical) | CISA KEV: Active Exploitation      ║
╚══════════════════════════════════════════════════════════════╝

[*] Scanning 192.168.1.100:443...

Target: 192.168.1.100:443
============================================================
  [*] FortiClient EMS detected (Version: Unknown)

  Vulnerability Test Results:
    [VULNERABLE] /api/v1/auth/signin  Baseline: 401 → Spoofed: 500
    [VULNERABLE] /api/v1/system/status  Baseline: 401 → Spoofed: 500
    [NOT VULN] /api/v1/endpoints  Baseline: 401 → Spoofed: 401

  [!] TARGET IS LIKELY VULNERABLE TO CVE-2026-35616
      Pre-authentication API bypass confirmed. Apply hotfix immediately!
      Remediation: Upgrade to FortiClient EMS 7.4.7 or apply the hotfix

سكربت Nmap NSE

root@kitploit:~
# تثبيت سكربت NSE
sudo cp CVE-2026-35616_FortiClientEMS.nse /usr/share/nmap/scripts/
sudo nmap --script-updatedb

# فحص أساسي
nmap -p 443 --script CVE-2026-35616_FortiClientEMS <target>

# فحص شبكة فرعية
nmap -p 443 --script CVE-2026-35616_FortiClientEMS 10.0.0.0/24

# فحص أهداف متعددة من ملف
nmap -p 443 --script CVE-2026-35616_FortiClientEMS -iL targets.txt

# مع اكتشاف إصدار الخدمة
nmap -sV -p 443 --script CVE-2026-35616_FortiClientEMS <target>

مثال على مخرجات Nmap:

root@kitploit:~
PORT    STATE SERVICE
443/tcp open  https
| CVE-2026-35616_FortiClientEMS:
|   VULNERABLE:
|   FortiClient EMS Pre-Authentication API Bypass
|     State: VULNERABLE
|     IDs:  CVE:CVE-2026-35616
|     Risk factor: Critical (CVSS: 9.1)
|     Disclosure date: 2026-04-04
|     Extra information:
|       Affected endpoints: 2
|       Remediation: Apply hotfix for FortiClient EMS 7.4.5/7.4.6 or upgrade to 7.4.7
|       CISA KEV deadline: April 9, 2026
|     References:
|       https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-35616
|_      https://www.cisa.gov/known-exploited-vulnerabilities-catalog

التحقق اليدوي

إذا كنت تريد التأكيد يدويًا باستخدام curl:

root@kitploit:~
# الخطوة 1: خط الأساس - يجب أن يُرجع 401
curl -sk -X POST https://<TARGET>:443/api/v1/auth/signin \
  -H "Content-Type: application/json" \
  -d '{}' \
  -o /dev/null -w "%{http_code}\n"

# الخطوة 2: المزيف - إذا أُرجع أي شيء غير 401، فمن المرجح أنه عرضة للثغرة
curl -sk -X POST https://<TARGET>:443/api/v1/auth/signin \
  -H "Content-Type: application/json" \
  -H "X-SSL-CLIENT-VERIFY: SUCCESS" \
  -H "X-SSL-CLIENT-S-DN: CN=admin" \
  -H "X-SSL-CLIENT-SERIAL: 0000000000000001" \
  -d '{}' \
  -o /dev/null -w "%{http_code}\n"

إذا أُرجع الأول 401 والثاني 500 أو 200، فإن المثيل عرضة للثغرة.


مؤشرات الاختراق

ابحث عن هذه العلامات في بيئتك:

  • طلبات API شاذة تحتوي على ترويسات X-SSL-CLIENT-VERIFY من مصادر غير وكيلة
  • تغييرات سياسات غير متوقعة مدفوعة إلى نقاط النهاية دون نشاط جلسة إدارية
  • حسابات إدارية جديدة أو بيانات اعتماد معدلة في EMS دون سجلات نشاط مقابلة
  • سلوك غير معتاد لوكلاء FortiClient على نقاط النهاية المُدارة (تثبيتات برامج جديدة، تغييرات سياسات)
  • سجلات وصول Apache تُظهر استدعاءات API دون مصافحات mTLS مقابلة
  • تنبيهات Honeypot/IDS لطلبات تحتوي على حقن ترويسات متعلقة بالشهادات

مصادر السجلات للمراجعة:

  • سجلات تطبيق FortiClient EMS
  • سجلات الوصول والأخطاء في Apache
  • سجلات وكلاء FortiClient على نقاط النهاية المُدارة
  • بيانات تدفق الشبكة التي تُظهر اتصالات بمنافذ API الخاصة بـ EMS

المعالجة

إجراءات فورية (قم بها الآن):

  1. طبق التصحيح العاجل - أصدرت Fortinet تصحيحات عاجلة طارئة لـ FortiClient EMS 7.4.5 و 7.4.6 في 4 أبريل 2026
  2. قيّد الوصول إلى الشبكة - حدد الوصول إلى واجهة إدارة EMS لشبكات الإدارة الموثوقة فقط (قواعد جدار الحماية، قوائم ACL)
  3. راقب نشاط API - فعّل التسجيل المفصل وراقب أنماط الوصول الشاذة إلى API

على المدى القصير (هذا الأسبوع):

  1. قم بالترقية إلى FortiClient EMS 7.4.7 عند توفره للإصلاح الكامل
  2. دقق تكوينات نقاط النهاية - تحقق من جميع نقاط النهاية المُدارة بحثًا عن تغييرات سياسات غير مصرح بها
  3. قم بتدوير بيانات الاعتماد - غيّر جميع كلمات مرور المسؤولين وأعد توليد أي شهادات يديرها EMS
  4. راجع نقاط النهاية المُدارة - افحص بحثًا عن علامات نشر برمجيات خبيثة أو تغييرات تكوين غير مصرح بها

على المدى الطويل:

  1. تقسيم الشبكة - تأكد من أن EMS في شبكة VLAN إدارية معزولة مع ضوابط وصول صارمة
  2. قواعد WAF/الوكيل العكسي - انشر قواعد لتجريد ترويسات X-SSL-CLIENT-VERIFY و X-SSL-CLIENT-S-DN و X-SSL-CLIENT-SERIAL من الطلبات الواردة عند حافة الشبكة
  3. المراقبة - نفذ تنبيهات على أي وصول إلى API دون جلسات mTLS صالحة

المراجع

  • كتالوج CISA KEV - CVE-2026-35616
  • مدونة Tenable - تحليل CVE-2026-35616
  • Bishop Fox - تجاوز مصادقة API في FortiClient EMS
  • SOCRadar - تجاوز مصادقة CVE-2026-35616 في FortiClient EMS
  • Horizon3.ai - تحليل CVE-2026-35616
  • BleepingComputer - ثغرة FortiClient EMS مُستغلة في الهجمات
  • The Hacker News - Fortinet يصحح CVE-2026-35616 المُستغلة بنشاط

المؤلف

Kerem Oruç - مهندس أمن سيبراني

  • GitHub: @keraattin
  • Twitter: @keraattin
تنزيل الأداة