Открытые порты роутера и VPN: как проверить после взломов Ivanti
Как проверить, видна ли ваша сеть из интернета: внешний IP, сканирование портов, Shodan, UPnP и IPv6. Разбор на фоне взломов VPN-шлюзов Ivanti.
Проверить, видна ли домашняя или офисная сеть из интернета, можно примерно за час. Нужно узнать внешний IP-адрес, просканировать его снаружи, посмотреть, что о нём уже знают поисковики устройств Shodan и Censys, и пройтись по четырём настройкам роутера: удалённое управление, UPnP, проброс портов и IPv6. Волна взломов Ivanti хорошо показывает, зачем это нужно. Атакующие давно идут не через компьютеры сотрудников, а через коробку на границе сети, которая круглые сутки отвечает на запросы из интернета.
Что случилось с Ivanti и почему о нём говорят третий год
Ivanti Connect Secure, бывший Pulse Secure, это VPN-шлюз для удалённого доступа. Его ставят компании и госведомства, чтобы сотрудники из дома попадали во внутреннюю сеть. Шлюз по определению смотрит в интернет, и в этом вся проблема.
В январе 2024 года компания Volexity сообщила о двух уязвимостях нулевого дня: CVE-2023-46805 (обход аутентификации) и CVE-2024-21887 (внедрение команд). В связке они давали полный контроль над шлюзом без пароля. Volexity связала атаки с группой из Китая и за несколько дней насчитала более 1700 взломанных устройств.
Дальше события развивались так:
| Дата | Событие |
|---|---|
| Январь 2024 | CISA выпускает экстренную директиву 24-01 для федеральных ведомств США |
| 1 февраля 2024 | CISA требует отключить шлюзы Ivanti от сети к 2 февраля |
| 29 февраля 2024 | CISA и партнёры предупреждают: штатная утилита проверки целостности Ivanti не видит взлом |
| Март 2024 | CISA признаёт, что через Ivanti взломали две её собственные системы |
| Апрель 2024 | MITRE сообщает о взломе исследовательской сети NERVE через те же уязвимости Ivanti |
| Январь 2025 | CVE-2025-0282, CVSS 9.0, по данным Mandiant эксплуатируется с середины декабря 2024 |
| Апрель 2025 | CVE-2025-22457, CVSS 9.0, Mandiant приписывает атаки китайской группе UNC5221 |
Деталь с утилитой проверки целостности важнее остальных. Администратор запускал официальный инструмент, видел «всё чисто» и успокаивался. По данным CISA, злоумышленники могли сохранять root-доступ даже после сброса к заводским настройкам. Вывод простой: если устройство на границе сети взломано, отчёт с самого устройства мало что доказывает.
Масштаб тоже заметный. Весной 2025 года фонд Shadowserver насчитывал около 5000 непропатченных шлюзов Ivanti Connect Secure, видимых из интернета. Это один вендор и один продукт.
Почему это касается домашнего роутера
Ivanti стоит в корпорациях, а у обычного человека дома роутер за 3000 рублей. Разница меньше, чем кажется. И то и другое пограничное устройство с веб-интерфейсом, своей прошивкой и редкими обновлениями. Антивируса на нём нет, логи почти никто не читает.
Примеры последних лет:
- В ноябре 2016 года вариант ботнета Mirai через порт 7547 (протокол удалённого управления TR-069) вывел из строя около 900 тысяч роутеров клиентов Deutsche Telekom.
- В январе 2024 года ФБР разобрало ботнет KV, через который китайская группа Volt Typhoon прятала свой трафик. Основа ботнета: сотни старых роутеров Cisco и Netgear, у которых закончилась поддержка.
- В сентябре 2024 года ФБР сообщило о ботнете Raptor Train группы Flax Typhoon: более 260 тысяч устройств, в основном домашние роутеры, камеры и сетевые хранилища.
Домашний роутер редко интересен сам по себе. Он нужен как промежуточный узел: через чужой домашний IP атака выглядит как трафик обычного жителя США, Европы или России, а не как запрос из дата-центра. Владелец часто узнаёт об этом последним, когда его IP попадает в чёрные списки и сайты начинают показывать капчу.
Есть ли у вас белый IP-адрес
Первый вопрос: доходят ли вообще запросы из интернета до роутера. Многие провайдеры, особенно мобильные, выдают адрес за CGNAT, когда один внешний IP делят сотни абонентов. Тогда снаружи до роутера по IPv4 не достучаться, и половина проблем отпадает сама.
Проверка простая. Нужно посмотреть адрес WAN в веб-интерфейсе роутера и сравнить его с тем, что показывает внешний сервис:
curl -4 ifconfig.me
curl -6 ifconfig.me
Если адреса совпадают, IP белый и роутер напрямую виден из интернета. Если в роутере адрес из диапазона 100.64.0.0/10, 10.x.x.x или 192.168.x.x, а внешний сервис показывает другой, сеть стоит за NAT провайдера. Вторая команда покажет, есть ли IPv6. Если есть, о нём отдельный разговор ниже.
Как проверить открытые порты роутера снаружи
Сканировать себя изнутри домашней сети бессмысленно: роутер ответит своим внутренним интерфейсом и покажет порты, которые снаружи закрыты. Нужна точка вне сети. Подойдёт VPS за 3-5 долларов в месяц (оценка) или ноутбук, подключённый к интернету через телефон по мобильной сети.
Стандартный инструмент для этого nmap. Сканировать можно только собственный адрес: сканирование чужих сетей во многих странах считается нарушением закона и почти везде нарушает правила хостера.
# все TCP-порты, показать только открытые
sudo nmap -Pn -sS -p- --open 203.0.113.10
# 50 самых популярных UDP-портов
sudo nmap -Pn -sU --top-ports 50 203.0.113.10
Вместо 203.0.113.10 подставляется свой внешний IP. Полное TCP-сканирование занимает от 5 до 20 минут, UDP медленнее. Ключ -Pn нужен потому, что многие роутеры не отвечают на ping, и без него nmap решит, что хоста нет.
Хороший результат: ни одного открытого порта или только те, что открывали сознательно. Плохой: веб-интерфейс роутера на 80, 443 или 8080, Telnet на 23, что-то на 7547.
У UDP есть особенность. WireGuard не отвечает на пакеты без правильного ключа, поэтому nmap покажет его порт как «open|filtered», то есть «не знаю». Это свойство протокола, а не ошибка сканера.
Как посмотреть на свою сеть глазами Shodan и Censys
Shodan и Censys круглосуточно сканируют весь IPv4-интернет и хранят, что ответило на каждом адресе. Именно с таких баз атакующие начинают поиск: после публикации уязвимости в Ivanti список уязвимых шлюзов собирается одним запросом за минуту.
У Shodan есть бесплатный способ без регистрации:
curl https://internetdb.shodan.io/203.0.113.10
Ответ придёт в JSON: открытые порты, найденные программы, известные CVE и метки вроде «vpn» или «iot». Пустой ответ означает, что Shodan на этом адресе ничего не нашёл. Для подробностей есть страница shodan.io/host/ваш-IP и консольный клиент:
pip install shodan
shodan init ВАШ_API_КЛЮЧ
shodan host 203.0.113.10
Censys работает похоже, поиск на search.censys.io. Данные в обеих базах бывают недельной давности. Закрытый сегодня порт Shodan ещё какое-то время будет показывать. Обратное тоже верно: свежий проброс порта появится в базе не сразу.
Какие открытые порты опасны
| Порт | Что это | Риск |
|---|---|---|
| 23/TCP | Telnet | Критический: пароль идёт открытым текстом, любимая цель ботнетов |
| 7547/TCP | TR-069, управление провайдера | Высокий: история массовых взломов |
| 80, 443, 8080/TCP | Веб-интерфейс роутера | Высокий: перебор паролей и уязвимости прошивки |
| 8291/TCP | Winbox MikroTik | Высокий: регулярная цель атак на MikroTik |
| 1900/UDP | UPnP SSDP | Средний: используется для усиления DDoS |
| 3389/TCP | RDP Windows | Высокий: главный вход вымогателей |
| 445/TCP | SMB | Критический: путь WannaCry в 2017 году |
| 5900/TCP | VNC | Высокий: часто вообще без пароля |
| 22/TCP | SSH | Зависит от настройки: с ключами терпимо, с паролем нет |
| 500, 4500/UDP | IPsec | Нормально для VPN при свежей прошивке |
| 1194/UDP | OpenVPN | Нормально при обновлённом сервере |
| 51820/UDP | WireGuard | Низкий: молчит без ключа |
Логика таблицы простая. Сервис, который отвечает любому и показывает страницу входа, это мишень. Сервис, который молчит для незнакомцев, почти невидим.
Что проверить в настройках роутера
Удалённое управление
В меню пункт обычно называется «Удалённый доступ», «Remote Management» или «Доступ из WAN». У многих моделей по умолчанию он выключен, но мастера провайдера при установке иногда включают его для своего удобства. Если пункт активен, веб-интерфейс роутера доступен всему миру.
UPnP
UPnP позволяет программам внутри сети самим открывать порты на роутере. Удобно для игровых консолей и торрентов. Неудобно, когда то же самое делает заражённая камера. Текущие правила видны с любого компьютера в сети:
sudo apt install miniupnpc
upnpc -l
Команда выведет список пробросов, которые устройства открыли сами. Незнакомые записи с портами вроде 3389 или 23 означают, что какое-то устройство в сети решило стать доступным снаружи без ведома владельца.
Проброс портов и DMZ
Ручные правила проброса живут годами. Видеорегистратор, поставленный в 2019 году, давно выброшен, а порт к его старому адресу открыт. Отдельная история режим DMZ: он отправляет на одно устройство вообще все входящие соединения.
WPS и TR-069
WPS упрощает подключение к Wi-Fi по PIN-коду, который перебирается за несколько часов. TR-069 даёт провайдеру управлять роутером удалённо. На арендованном роутере отключить его обычно нельзя, но знать о нём полезно.
Прошивка и конец поддержки
Ботнет KV состоял из роутеров, для которых производитель больше не выпускает обновлений. Модель и дату последней прошивки легко найти на сайте производителя. Если последнее обновление вышло 3-4 года назад, устройство фактически заморожено вместе со всеми известными дырами.
Как проверить свой VPN-сервер или VPS
У владельцев собственного сервера с VPN своя картина. Здесь важно не только то, что слушает порт, но и то, что пропускает файрвол. Все слушающие сервисы видны так:
sudo ss -tulpn
Строки с адресом 0.0.0.0 или [::] слушают на всех интерфейсах, то есть потенциально доступны из интернета. Адрес 127.0.0.1 означает только локальный доступ. Дальше файрвол:
sudo ufw status verbose
# или, если ufw нет
sudo nft list ruleset
Частая история: панель управления VPN, база данных или Docker-контейнер слушают на всех интерфейсах, хотя должны быть доступны только изнутри. Docker к тому же публикует порты напрямую через iptables и обходит правила ufw. Поэтому окончательный ответ всё равно даёт внешнее сканирование nmap.
Разница между протоколами здесь заметна. Корпоративные SSL-VPN вроде Ivanti, Fortinet или Cisco держат в интернете целый веб-сервер со страницей входа: большая поверхность атаки. WireGuard держит один UDP-порт и не отвечает без ключа. Это не делает его неуязвимым, но объясняет, почему массовые волны взломов последних лет приходились именно на SSL-VPN.
Почему IPv6 ломает всю картину
Многие уверены, что NAT защищает домашние устройства: снаружи виден только роутер. С IPv4 это примерно так. С IPv6 каждое устройство в сети получает собственный глобальный адрес, и NAT в этом не участвует.
Защиту тогда обеспечивает только IPv6-файрвол роутера. У большинства современных моделей он по умолчанию блокирует входящие соединения, но не у всех, и в настройках его легко выключить. Shodan сканирует IPv6 гораздо хуже, чем IPv4, потому что перебрать всё адресное пространство невозможно. Это не защита, а лотерея.
Проверка: узнать IPv6-адрес конкретного устройства, например сетевого хранилища или камеры, и просканировать его снаружи с сервера, у которого тоже есть IPv6:
sudo nmap -6 -Pn --top-ports 1000 2001:db8::1234
Если видны открытые порты устройства, IPv6-файрвол роутера их пропускает.
Как понять, что роутер уже взломан
Опыт Ivanti говорит, что самодиагностика взломанного устройства ненадёжна. Но у домашних роутеров есть типичные следы:
- изменились DNS-серверы в настройках WAN или DHCP;
- появились правила проброса или UPnP, которых никто не создавал;
- в списке пользователей появился новый администратор;
- исходящий трафик растёт ночью, когда дома все спят;
- внешний IP оказался в чёрных списках, сайты начали показывать капчу.
IP по чёрным спискам проверяется на сервисах вроде AbuseIPDB или Spamhaus. Ни один признак сам по себе не доказывает взлом, но два-три совпадения уже серьёзный сигнал. В случае Ivanti CISA требовала от ведомств исходить из того, что устройство скомпрометировано, а не из отчёта штатной утилиты.
Сколько времени занимает проверка
| Шаг | Время (оценка) | Что нужно |
|---|---|---|
| Сравнить внешний IP и WAN | 2 минуты | Браузер |
| Запрос к Shodan InternetDB | 1 минута | Браузер или curl |
| Обход настроек роутера | 10-15 минут | Пароль администратора |
| Список UPnP-пробросов | 5 минут | Компьютер в сети |
| Внешнее сканирование nmap | 15-30 минут | VPS или мобильный интернет |
| Проверка IPv6 | 10 минут | Сервер с IPv6 |
В сумме от 45 минут до полутора часов на первый раз. Повторные проверки быстрее, потому что уже понятно, что искать.
Подвох: сканер видит не всё
Внешнее сканирование показывает, какие двери открыты сейчас. Исходящие соединения оно не показывает. Заражённое устройство может само подключиться к серверу злоумышленника и держать туннель, при этом снаружи все порты закрыты. Так работают многие современные ботнеты и программы удалённого доступа.
Вторая слепая зона: облачное управление. Роутеры с мобильным приложением производителя постоянно держат соединение с облаком вендора. Если взломают облако или учётную запись владельца, открытые порты вообще не понадобятся.
Третья: устройство провайдера. У арендованного роутера есть канал TR-069, и его безопасность зависит от провайдера, а не от абонента.
История Ivanti в итоге не про один бренд. Fortinet, Cisco, Citrix, Palo Alto и SonicWall проходили через похожие волны. Любая коробка, которая отвечает на запросы из интернета, рано или поздно попадает в чью-то базу. Разница между владельцем, который знает, что у него торчит наружу, и тем, кто не знает, обычно выясняется в день публикации следующей уязвимости.