Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-11374-check — نص برمجي للكشف عن CVE-2026-11374 | Kitploit
أدوات/GitHubGitHub/bishopfox/cve-2026-11374-check
أدوات دفاعيةماسحات الثغرات الأمنيةالاستغلالأمن الويباختبار الاختراقاستخبارات التهديدات
GitHubbishopfox/cve-2026-11374-check

CVE-2026-11374-check

نص برمجي للكشف عن CVE-2026-11374

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

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
# CVE-2026-11374 ManageEngine AD360 نص كشف الشرط الأساسي لـ

نص كشف للشرط الأساسي لاستغلال CVE-2026-11374، وهو ثغرة في تذكرة الدخول الموحد (SSO) القابلة للتوقع تؤدي إلى الاستيلاء على الحسابات دون مصادقة عبر مجموعة ManageEngine AD360. المنتجات الأربعة ضمن النطاق تشترك في إطار `ManageEngineADSFramework`:

| المنتج | الإصدار المتأثر | الإصدار المعالج |
|---|---|---|
| ADSelfService Plus | ≤ 6528 | 6529 |
| RecoveryManager Plus | ≤ 6320 | 6321 |
| M365 Manager Plus | ≤ 4816 | 4817 |
| ADAudit Plus | ≤ 8702 | 8703 |

في الإصدارات المتأثرة، تكون تذكرة الدخول الموحد مجرد `System.currentTimeMillis()` (طابع زمني قابل للتوقع) يتم أخذها عند تسجيل دخول الضحية، لذا يمكن إعادة تشغيلها عبر ملف تعريف الارتباط `CUSTOM_SSO_TICKET` لاختطاف تلك الجلسة. يستبدل الإصلاح التذكرة بـ `UUID.randomUUID()` (معرف عشوائي كافٍ). مسار إعادة التشغيل يمكن الوصول إليه فقط عندما يكون المنتج مدمجًا مع AD360: `ADSFilter` يتحكم فيه عبر `isProductIntegrated()`. تلك البوابة هي الشرط الأساسي الذي يتحقق منه هذه الأداة.

> **ملاحظة:** هذا الكاشف يؤكد الشرط الأساسي، وليس الثغرة نفسها. نتيجة `POTENTIALLY_AFFECTED` ليست حكمًا مؤكدًا بالضعف — انظر أدناه لمزيد من المعلومات.

## هل من الآمن تشغيلها؟

نعم. هي مصممة للاستخدام في الإنتاج والتقييم.

- لا يتم استغلال أي شيء. يرسل المسبار تذكرة دخول موحد غير صالحة (`1700000000000`، قيمة ميلي ثانية قديمة بما يكفي بحيث لا يمكن أبدًا أن تكون موجودة في الذاكرة المؤقتة)، لذا لا يتم استرداد أي جلسة على الإطلاق. يخبرنا الخادم فقط بمسح ملفات تعريف الارتباط التي أرسلناها.
- لا تغييرات في حالة الهدف. كل طلب هو `GET` عادي، وملفات تعريف الارتباط الوحيدة المتأثرة هي تلك المؤقتة التي ترسلها الأداة.
- لا هجوم بالقوة الغاشمة أو حل للجلسة. لا تحاول الأداة حل تذكرة الطابع الزمني النشط الذي من شأنه إثبات قابلية الاستغلال؛ هذا استغلال وليس كشفًا، وهو خارج النطاق هنا (انظر [القيود](#limitations)).

## ما يمكن وما لا يمكن لهذه الأداة إخبارك به

إصلاح CVE-2026-11374 غيّر فقط كيفية إنشاء التذكرة (من ميلي ثانية إلى UUID)؛ لم يغير مسار إعادة تشغيل ملف تعريف الارتباط الذي يمارسه هذا المسبار. نتيجة لذلك، يستجيب التثبيت المُعالَج بايت ببايت بشكل مطابق للتثبيت الضعيف لأي طلب غير مصادق.

ما يمكن للأداة فعله، بدون مصادقة وبدون تدمير:

- تأكيد أن منتجًا ضمن النطاق يمكن الوصول إليه لديه مسار إعادة تشغيل ملف تعريف الارتباط CustomSSO نشط (أي أنه مدمج مع AD360)، وهو الشرط الأساسي لاستغلال CVE-2026-11374.
- تحديد أي من المنتجات الأربعة هو، من خلال ملف تعريف ارتباط الجلسة الخاص بكل منتج.
- قراءة أفضل جهد لرقم إصدار الأصل كدليل. هذا متاح على ADSelfService Plus وADAudit Plus وM365 Manager Plus؛ غير متاح على RecoveryManager Plus.

ما لا يمكنه فعله:

- التفريق بين الضعيف والمعالج. لا توجد إشارة آمنة وسلبية وغير مصادقة لذلك. نتيجة `POTENTIALLY_AFFECTED` تعني أن الشرط الأساسي قد تحقق ويجب عليك التحقق من مستوى الإصلاح، وليس أن المضيف مؤكد الضعف.
- تأكيد قابلية الاستغلال. إثبات أن المضيف قابل للاستغلال فعليًا يتطلب ملاحظة تنسيق تذكرة مُنشأة (رقم مكون من 13 رقمًا يعني ضعيف، UUID يعني معالج، وكلاهما يحتاج إلى رؤية مصادقة أو على المضيف)، أو قراءة `conf/product.conf` محليًا، أو حل تذكرة حية بنشاط (استغلال حقيقي، لم يتم تنفيذه عمدًا هنا).
- الثقة الكاملة في رقم إصدار ADSelfService Plus الأقل من الإصدار المعالج. `?build=` في ADSSP هو أحيانًا الإصدار الحقيقي وأحيانًا عنصر نائب مجمد يقرأ أقل من الإصدار المعالج، لذلك القيمة الأقل من المعالج غامضة وتضعها الأداة كغير حاسمة. القيمة عند أو فوق الإصدار المعالج لا تزال إشارة موثوقة للمعالجة، لأن العنصر النائب دائمًا منخفض جدًا للوصول إليه.

## المتطلبات

- بايثون 3.7+ ومكتبة [`requests`](https://pypi.org/project/requests/). قم بالتثبيت باستخدام `pip install requests`.

## الاستخدام

```bash
# single host (prefer a URL or host:port; ports differ per product)
./cve_2026_11374_check.py https://adssp.example.com:8888

# multiple hosts (scheme optional: https is tried first, then http)
./cve_2026_11374_check.py host-a:8081 host-b:8365

# scan a list, one target per line ('#' comments allowed), compact output
./cve_2026_11374_check.py -f targets.txt --brief

# machine-readable output for pipelines
./cve_2026_11374_check.py -f targets.txt --json > results.json
```

المنافذ الافتراضية تختلف حسب المنتج (ADSelfService Plus 8888, ADAudit Plus 8081, M365 Manager Plus 8365, RecoveryManager Plus 8090)، لذا مرر عنوان URL أو `host:port`. المضيف العاري يستخدم 8888 افتراضيًا.

### الخيارات

| العلم | الوصف |
|------|--------|
| `targets` | مضيف أو أكثر بصيغة `host` أو `host:port` أو `https://host:port` |
| `-f, --targets-file FILE` | قراءة الأهداف من ملف (هدف واحد لكل سطر؛ يُسمح بالتعليقات `#`) |
| `--brief` | سطر واحد محاذي لكل هدف، مفيد لمسح العديد من المضيفين |
| `--json` | إخراج نتائج JSON منظمة |
| `--timeout SECS` | مهلة لكل طلب (الافتراضي: 15) |
| `--no-build` | تخطي طلب رقم الإصدار الإضافي عند الإيجابية |
| `--no-color` | تعطيل الإخراج الملون (يحترم أيضًا `NO_COLOR` وغير TTY) |

### أمثلة

وحدة تحكم مدمجة مع AD360 (مفصل، الافتراضي). يوضح السطر الثاني أن هذا هو الشرط الأساسي وليس حكم ضعف؛ الثالث هو دليل الإصدار الأفضل جهدًا:

```console
$ ./cve_2026_11374_check.py https://adssp.example.com:8888
[!] https://adssp.example.com:8888: POTENTIALLY_AFFECTED
      ADSelfService Plus: AD360-integrated, CustomSSO replay path active - precondition met. Not confirmed vulnerable; verify patch level (fixed build 6529).
      build: 6519 (below fixed 6529 - inconclusive: ?build= may be a stale placeholder or a hotfix)
```

تثبيت مستقل لنفس المنتج، حيث مسار إعادة التشغيل غير نشط:

```console
$ ./cve_2026_11374_check.py https://adssp.example.com:8888
[+] https://adssp.example.com:8888: UNAFFECTED
      ADSelfService Plus: standalone / not AD360-integrated (no cleanup), so the replay path isn't reachable here. Verify build >= 6529 regardless.
```

مسح قائمة مع سطر واحد محاذي لكل مضيف (`--brief`). رمز الخروج هو `1` إذا كان أي مضيف `POTENTIALLY_AFFECTED`، وإلا `0`، وهو مفيد في البرامج النصية. الملاحظة الطرفية تظهر المنتج المحدد، بالإضافة إلى رقم الإصدار عند العثور:

```console
$ ./cve_2026_11374_check.py -f targets.txt --brief; echo "exit: $?"
POTENTIALLY_AFFECTED  https://host-a:8888  ADSelfService Plus 6519
POTENTIALLY_AFFECTED  http://host-b:8081   ADAudit Plus 8530
UNAFFECTED            http://host-c:8365   M365 Manager Plus
UNAFFECTED            https://host-d:443
INCONCLUSIVE          http://host-e:8888   ADSelfService Plus
ERROR                 host-f:8888  timeout
exit: 1
```

إخراج قابل للقراءة آليًا (`--json`). كل نتيجة تحمل `verdict` و `state` و `detail` خلفها، و `product` المحدد، وعند العثور على شيء - كائن `build`: `build` هو الرقم الموجود، `fixed_build` هو الحد الأدنى لهذا المنتج، `patch_hint` هو التوجيه (`likely_patched` عند أو فوق الإصدار المعالج، وإلا `inconclusive`)، و `note` شرح قصير:

```console
$ ./cve_2026_11374_check.py https://host-b:8081 --json
[
  {
    "target": "https://host-b:8081",
    "state": "potentially_affected",
    "detail": "ADAudit Plus: AD360-integrated, CustomSSO replay path active - precondition met ...",
    "product": "ADAudit Plus",
    "build": { "build": "8530", "fixed_build": "8703", "patch_hint": "inconclusive", "note": "below fixed 8703 - inconclusive: may be a hotfix" },
    "verdict": "POTENTIALLY_AFFECTED"
  }
]
```

## الأحكام

| الحكم | المعنى |
|-------|--------|
| `POTENTIALLY_AFFECTED` | منتج ضمن النطاق مدمج مع AD360؛ مسار إعادة تشغيل ملف تعريف الارتباط CustomSSO نشط، لذا تحقق الشرط الأساسي لاستغلال CVE-2026-11374. هذا ليس حكمًا مؤكدًا بالضعف؛ تحقق من مستوى الإصلاح (انظر الخطوات التالية). |
| `UNAFFECTED` | مسار إعادة التشغيل غير قابل للوصول. إما: منتج مستقل ضمن النطاق (غير مدمج مع AD360 — على الرغم من أنه سيصبح قابلاً للوصول إذا تم دمجه لاحقًا، لذا تحقق من الإصدار على أي حال)؛ منتج من إطار ManageEngine ADS ليس أحد المنتجات الأربعة ضمن النطاق؛ أو لا يوجد منتج ضمن النطاق في الاستجابة على الإطلاق (ليس أحد منتجات CVE-2026-11374 الأربعة، أو وكيل يزيل ملف تعريف ارتباط الجلسة). |
| `INCONCLUSIVE` | `HTTP 400` — على الأرجح قفل تحديد معدل IAM يخفي الإشارة؛ أعد المحاولة بعد ~60 ثانية. |
| `ERROR` | فشل الاتصال/المهلة/TLS. |

## رموز الخروج

| الرمز | المعنى |
|------|--------|
| `0` | لم يعيد أي هدف `POTENTIALLY_AFFECTED` |
| `1` | هدف واحد على الأقل هو `POTENTIALLY_AFFECTED` |
| `2` | خطأ في الاستخدام (وسائط خاطئة / ملف أهداف غير قابل للقراءة) |

## كيف يعمل

أرسل تذكرة غير صالحة مع علامة تطبيق إلى أي عنوان URL لـ CustomSSO (`*.do`):

```text
GET /AppsHome.do
Cookie: CUSTOM_SSO_TICKET=1700000000000; CUSTOM_SSO_APP_TAG_NAME=AD360
```

على تثبيت مدمج مع AD360، تعمل سلسلة `ADSFilter → CustomSSOFilter → CookieSSOImpl` في فرع الحل الخاص بها (العلامة تسمي منتجًا مختلفًا، لذا `appName != prodName`)، تفشل في حل التذكرة المزيفة، وتصدر رؤوس استجابة لتنظيف ملفات تعريف الارتباط:

```text
Set-Cookie: CUSTOM_SSO_TICKET=removed; Max-Age=0; ...
Set-Cookie: CUSTOM_SSO_APP_NAME=removed; Max-Age=0; ...
Set-Cookie: CUSTOM_SSO_APP_TAG_NAME=removed; Max-Age=0; ...
```

التثبيت المستقل لا يشغل هذا المسار أبدًا ولا يصدر أي تنظيف. يتم تحديد المنتج من ملف تعريف ارتباط جلسة Tomcat الثابت الخاص بكل منتج (`JSESSIONIDADSSP` لـ ADSelfService Plus، وهكذا)، والذي يتم تعيينه في كل استجابة. يعتمد الفحص على الرؤوس بدلاً من رمز الحالة، حيث يُرجع ADSSP المدمج `302` بينما يُرجع ADAudit و M365 و RMP `200` لنفس المسبار.

| استجابة المسبار | الحكم |
|----------------|--------|
| رؤوس تنظيف وملف تعريف ارتباط لمنتج معروف ضمن النطاق | `POTENTIALLY_AFFECTED` |
| ملف تعريف ارتباط منتج، بدون تنظيف، حالة ≠ 400 | `UNAFFECTED` (مستقل / غير مدمج) |
| لا يوجد ملف تعريف ارتباط لمنتج ضمن النطاق، حالة ≠ 400 | `UNAFFECTED` (ليس أحد المنتجات الأربعة) |
| رؤوس تنظيف ولكن ملف تعريف ارتباط منتج غير معروف | `UNAFFECTED` (ManageEngine، خارج النطاق) |
| `HTTP 400` | `INCONCLUSIVE` (على الأرجح قفل تحديد معدل IAM؛ انظر القيود) |

## القيود

- `POTENTIALLY_AFFECTED` ليس "مؤكد الضعف." إنه الشرط الأساسي للاستغلال. لأن الإصلاح لم يلمس مسار الكود هذا، فإن الإصدار المعالج يستجيب بشكل مماثل، لذا عليك تأكيد مستوى الإصلاح خارج النطاق (انظر الخطوات التالية). هذا هو الحد الأقصى لما يمكن للمراقب غير المصادق معرفته.
- لا تأكيد نشط. الأداة لا تحاول أبدًا حل تذكرة حقيقية بالوقت الحالي. تلك التقنية يمكنها إثبات ضعف المضيف بشكل إيجابي، لكنها استغلال نشط (تختطف جلسة حية)، محدودة بالتقييد واحتمالية، وتحتاج إلى جلسة ضحية نشطة، لذا فهي مستبعدة من هذا الكاشف.
- `HTTP 400` يمكن أن يكون قفل تحديد معدل وليس إجابة حقيقية. تطبق Zoho IAM تقييدًا متجددًا لعنوان URL يحد من عنوان IP المصدر بحوالي 40 طلبًا لكل 60 ثانية، ثم يقفل هذا المسار لمدة ~60 ثانية. أثناء القفل، ترجع الطلبات `HTTP 400` وتُخفي إشارة التكامل. تبلغ الأداة عن هذه كـ `INCONCLUSIVE`؛ أعد المحاولة من عنوان IP هذا بعد حوالي دقيقة.
- خلف وكيل عكسي، يمكن الإبلاغ عن وحدة تحكم تزيل أو تعيد كتابة ملف تعريف ارتباط الجلسة بشكل خاطئ كـ `UNAFFECTED`. قم بالتأكيد مباشرة إذا كنت تتوقع وجود منتج ManageEngine هناك.
- أرقام الإصدار هي تلميحات وليست أحكامًا. ADAudit (`?v=`) و M365 (`?bN=`) دائمًا ما يكشفان الإصدار الحقيقي؛ `?build=` في ADSSP هو أحيانًا حقيقي وأحيانًا عنصر نائب مجمد يقرأ أقل من الإصدار المعالج، لذا القيمة الأقل من المعالج في ADSSP غامضة؛ RMP لا يكشف أي شيء. في كل حالة، رقم إصدار عند أو فوق الإصدار المعالج يشير بقوة إلى المعالجة، وأدناه غير حاسم.

## الخطوات التالية للمدافعين

إذا عاد هدف بـ `POTENTIALLY_AFFECTED`، عامله كمكشوف ويستحق التأكيد، ثم:

1. تأكيد مستوى الإصلاح مباشرة (لا تستطيع الأداة ذلك). اقرأ `conf/product.conf` (`build_number`) على المضيف وقارنه بالإصدار المعالج لذلك المنتج (ADSelfService Plus 6529, RecoveryManager Plus 6321, M365 Manager Plus 4817, ADAudit Plus 8703). فسره بشكل توجيهي: إصدار عند أو فوق الإصدار المعالج هو مؤشر قوي على أن المضيف معالج، لأن إصلاح UUID موجود في ذلك الفرع. إصدار أقل من الإصدار المعالج غير حاسم وليس دليلاً على الضعف، لأن التصحيحات السريعة والترجيعات خارج النطاق يمكنها تطبيق إصلاح UUID دون زيادة رقم الإصدار؛ في هذه الحالة، ارجع إلى فحص تنسيق التذكرة أدناه.
2. تحقق من تنسيق التذكرة المنشأة إذا كان بإمكانك تسجيل الدخول. ملف تعريف الارتباط `CUSTOM_SSO_TICKET` ليس `HttpOnly`، لذا بعد المصادقة يمكنك قراءة قيمته: رقم مكون من 13 رقمًا يعني ضعيف، UUID يعني معالج. هذا هو أوضح فحص إيجابي.
3. قم بالتحديث إلى الإصدار المعالج (أو أحدث) على أي مضيف ضعيف أو لا يمكنك تأكيد معالجته. الاستبدال يستبدل التذكرة القابلة للتوقع بـ UUID عشوائي.
4. ابحث عن محاولات الاستغلال. على المضيف، يسجل `serverOut_<date>.txt` التقييد كدفقات من:

   ```text
   IAMSecurityException ErrorCode: URL_ROLLING_THROTTLES_LIMIT_EXCEEDED,
   RequestURI: "/showLogin.cc", RemoteAddr: <source IP>
   ```

   زيادة مفاجئة في `URL_ROLLING_THROTTLES_LIMIT_EXCEEDED` على مسارات توزيع SSO/تسجيل الدخول من عنوان IP مصدر واحد هي مؤشر قوي على هجوم القوة الغاشمة للتذاكر. راجع أيضًا عمليات تسجيل الدخول الناجحة الحديثة ونشاط الجلسة للبحث عن علامات الاستيلاء.
5. تقليل التعرض في هذه الأثناء. قيد الوصول الشبكي إلى مجموعة AD360 (لا ينبغي أن تكون مواجهة للإنترنت)، وإذا لم يكن مسار إعادة التشغيل مطلوبًا، فإن تعطيل تكامل CustomSSO يزيل الشرط الأساسي بالكامل.

## المعالجة

قم بتحديث المنتج المتأثر إلى الإصدار المعالج على الأقل (ADSelfService Plus 6529, RecoveryManager Plus 6321, M365 Manager Plus 4817, ADAudit Plus 8703) أو أحدث. الاستبدال يستبدل تذكرة SSO القابلة للتوقع `System.currentTimeMillis()` بـ `UUID.randomUUID()`.

## الترخيص

هذا الكود موزع تحت [رخصة MIT](https://github.com/bishopfox/cve-2026-11374-check/blob/main/LICENSE).

## إخلاء مسؤولية قانوني

استخدام هذه الأداة لمهاجمة أهداف دون موافقة متبادلة مسبقة غير قانوني. إنها مسؤولية المستخدم النهائي الامتثال لجميع القوانين المحلية والولائية والاتحادية المعمول بها. المطورون لا يتحملون أي مسؤولية ولا يتحملون مسؤولية أي سوء استخدام أو ضرر ناتج عن هذا البرنامج.

## انظر أيضًا

- [NVD: CVE-2026-11374](https://nvd.nist.gov/vuln/detail/CVE-2026-11374)
- ManageEngine service packs:
  [ADSelfService Plus](https://www.manageengine.com/products/self-service-password/service-pack.html) ·
  [RecoveryManager Plus](https://www.manageengine.com/ad-recovery-manager/service-pack.html) ·
  [M365 Manager Plus](https://www.manageengine.com/microsoft-365-management-reporting/service-pack.html) ·
  [ADAudit Plus](https://www.manageengine.com/products/active-directory-audit/service-pack.html)
- [Bishop Fox Blog: Full Technical Analysis](https://bishopfox.com/blog/millisecond-of-predictability-why-cve-2026-11374-hard-to-exploit)
تنزيل الأداة