Команда через URL. Взлом маршрутизатора Netgear никогда не был таким простым

ab3401d6c3a0cf7993853ff307198a1c.jpg
Маршрутизатор Netgear R8000 открыт для всех пользователей интернета

Специалисты по безопасности рекомендуют владельцам WiFi-маршрутизаторов популярной линейки Netgear Nighthawk (восемь моделей, список под катом) временно отключить веб-сервер на маршрутизаторе до выхода официальной версии патча. Пока что Netgear в экстренном порядке выпустила бета-версию патча для некоторых из пострадавших моделей. Для остальных патча нет вообще.

Новая уязвимость исключительно проста в эксплуатации и доступна для понимания даже школьникам. Эксплойт опубликован — есть подробная инструкция по взлому. Поэтому слишком высок риск стать жертвой атаки.


  • Netgear AC1750-Smart WiFi Router (модель R6400)
  • Netgear AC1900-Nighthawk Smart WiFi Router (модель R7000)
  • Netgear AC2300-Nighthawk Smart WiFi Router with MU-MIMO (модель R7000P)
  • Netgear AC2350-Nighthawk X4 AC 2350 Dual Band WiFi Router (модель R7500)
  • Netgear AC2600-Nighthawk X4S Smart WiFi Gaming Router (модель R7800)
  • Netgear AC3200-Nighthawk AC3200 Tri-Band WiFi Router (модель R8000)
  • Netgear AC5300-AC5300 Nighthawk X8 Tri-Band WiFi Router (модель R8500)
  • Netgear AD7200-Nighthawk X10 Smart WiFi Router (модель R9000)


Обнаруженная уязвимость допускает удалённое выполнение команды на маршрутизаторе, если пользователь откроет в браузере веб-страницу с вредоносного сайта или с нормального сайта, вместе с которой загрузится вредоносный рекламный баннер через AdSense или любую другую рекламную сеть. По локальной сети можно инициировать удалённое выполнение команды простым запросом к маршрутизатору.

По сути, для удалённого выполнения команды Linux на маршрутизаторе достаточно всего лишь добавить эту команду к обычному URL. Команда выполняется с рутовыми привилегиями. Это означает, что можно сделать с маршрутизатором жертвы практически что угодно: открыть сессию telnet, FTP, использовать его для DDoS-атаки или что угодно ещё. Он полностью во власти злоумышленника.


Для проверки конкретного маршрутизатора на наличие бага делаем следующее.

1. Открываем в браузере страницу http://192.168.1.1/cgi-bin/;telnetd$IFS-p$IFS’56789′ (здесь 192.168.1.1 следует заменить на локальный IP-адрес вашего маршрутизатора, если он отличается). В браузере будет белая или серая страница, в зависимости от браузера.

2. Открываем командную строку (под Windows это Win+R → cmd).

3. Набираем в командной строке следующую команду:

telnet 192.168.1.1 56789

Опять же IP-адрес 192.168.1.1 заменяем на локальный IP-адрес вашего маршрутизатора. Если появится сообщение, что telnet «не является внутренней или внешней командой», то устанавливаем клиент telnet: «Панель управления» → «Программы и компоненты» → «Включение или отключение компонентов Windows» → «Клиент Telnet» (включенная галочка).

56f6c5801a47719f10307eaeef9b5eb6.png

4. Если ваш маршрутизатор уязвим, то после выполнения вышеуказанной команды появится примерно такое сообщение.

62aa12348eef1a7a7aa0a8a718a851f7.png

Если ваша модель маршрутизатора указана в списке уязвимых, то на последних версиях прошивки такое сообщение должно появляться. Возможно, более старые версии прошивки не подвержены багу, специалисты ещё не проверили все версии, а компания-производитель тоже не опубликовала полную информацию.

5. Чтобы для проверки убить сессию telnet, нужно узнать идентификатор процесса telnetd. Для начала пишем:

ps | grep telnet

Получим список процессов, в том числе telnetd (7302 на скриншоте).

aa94b19c930a843c40a29e0a5c928177.png

6. Далее наберите стандартную Linux-команду:

kill

где  — идентификатор процесса, который мы узнали на предыдущем этапе.

617190d9a4309d72737c5230e8fbf373.png

После нажатия клавиши Enter процесс будет убит. Точно так же можно убить любой другой процесс или отключить доступ к веб-интерфейсу (http://192.168.1.1/cgi-bin/;killall$IFS’httpd’). По идее, если с помощью уязвимости вы отключите доступ к веб-интерфейсу, то админский интерфейс станет недоступным для других злоумышленников, которые попробуют воспользоватью этой уязвимостью, до перезагрузки маршрутизатора. Наверное, это приемлемый вариант в том случае, если нужно работать в интернете, но патч не установлен.

Хотя удалённая перезагрузка маршрутизатора всё равно должна сработать:
http://[RouterIP]/cgi-bin/; REBOOT

В качестве ещё одной защитной меры можно посоветовать сменить стандартный локальный IP-адрес маршрутизатора.


Уязвимость обнаружил в августе 2016 года Эндрю Роллинс (Andrew Rollins), специалист по безопасности, известный под ником Acew0rm. Он сообщил производителю об этом баге 25 августа, но компания так и не ответила на его письмо. Обождав положенные несколько месяцев, Эндрю выложил информацию об уязвимости в открытый доступ.

В 2009 году точно такую уязвимость нашли в маршрутизаторах DD-WRT. История повторяется.

Если ваш маршрутизатор уязвим, специалисты рекомендуют отключить веб-интерфейс или установить бета-версию патча, который выпущен для моделей R6400, R7000 и R8000.

Сканирование через Shodan выдаёт почти 10 000 уязвимых маршрутизаторов. Так что кое-кто сейчас может хорошо развлечься.

© Geektimes