Как я случайно обнаружил бэкдор в роутерах ZTE для Ростелекома
Ожидает приглашения
Доброго всем дня, друзья.
Наверное, у каждого из вас бывали такие истории, когда вы теряли связь со всемирной паутиной по той причине, что ваш горячо любимый интернет-провайдер не справился с выполнением своих обязательств по предоставлению услуг связи. Если говорить максимально легко и просто — у вас просто внезапно исчезало интернет-соединение, а Ethernet-кабель, бережно (или не очень) проведённый в ваш дом, не показывал никаких признаков жизни.
Звонки провайдеру обычно редко заканчиваются положительным результатом. В моей жизни очень часто происходила такая ситуация, когда провайдер вовсе не видел проблемы, а потом, спустя пару часов, при повторном звонке всё же видел проблему и клятвенно обещал, что всё скоро починят-исправят, не забывая извиниться после каждого сказанного предложения.
И вот в один из апрельских вечеров (когда бОльшую часть страны закрыли на небезызвестную самоизоляцию) я спокойно работал над одним фриланс-проектом, как внезапно связь с внешним миром у меня полностью пропала, тем самым прервав разработку проекта на неопределённое время.
Резервных каналов связи не было, до дедлайна проекта было ещё далеко, поэтому я позволил себе немного отдохнуть от рабочих дел, заодно впервые за долгое время взглянуть на WiFi-роутер, который стоял в квартире. Хотя не совсем корректно сказать «взглянуть», так как устройство стояло в соседней комнате, в которой люди благополучно видели явно уже не первый сон, а искать его и шариться по углам желания явно не было, поэтому вращение роутера началось на высочайшем, абстрактном уровне.
Немного слов о персонаже. Точкой доступа был девайс производства ZTE, модели ZXHN H298A. Прошивка последней версии и, если судить по Ростелекомовским логотипам, фирменная, то есть в той или иной степени заточена под задачи провайдера «Ростелеком». Этот провайдер, как вы можете догадаться, и являлся поставщиком услуг связи в мой тогдашний дом.
Согласны? Узнали?
У меня возникло возможно дурное, но предположение, что что-либо не так с настройками роутера, поэтому я непременно захотел зайти в панель управления роутером (которая располагается по внутреннему IP-адресу 192.168.0.1), дабы посмотреть, какая история там происходит да и банально познакомиться с устройством поближе.
Введя стандартную пару логин/пароль (admin и admin; были указаны на коробке роутера), я с отсутствием удивления обнаружил, что они не подходят. Устройство устанавливалось и настраивалось в моё отсутствие, никаких данных по входу мне не сообщали, лишь дав изучить коробку устройства, на которой, как и на всех других коробках, была информация о стандартных логинах и паролях для устройства, а также названия и пароли для подключения к точкам доступа.
Периодически я проверял наличие интернет-соединения переходом на главную Яндекса, но всякий раз роутер показывал мне, что WAN-подключение отсутствует.
Гугление с телефона не дало каких-либо результатов, все вопросы с узнаванием пароля для доступа сводилось к ответу в стиле «сбросьте настройки и живите счастливо» вне зависимости от марки и модели устройства.
Однако по своей натуре я существо любопытное, поэтому решил побродить по различным (доступным мне и любым другим желающим пользователям) страницам веб-интерфейса, отдельное внимание уделяя HTML-коду. Не раз сталкивался с тем, что он может скрывать очень много чего интересного.
На странице входа я ничего примечательно не обнаружил, а вот на странице, которая показывалась всякий раз, когда я «пинговал» Яндекс, обнаружился крайне интересный блок кода.
Обычная такая форма с POST-запросом.
И наблюдательные индивидуумы сразу отметят наличие очень интересных данных в этой форме со спрятанными (hidden) полями ввода. Здесь и логин и пароля входа, и названия точек доступа, и пароли к ним, и некоторая информация о настройках устройства.
Поразившись приятной находке, я первым делом проверил логин и пароль для входа (они подошли) и повторно проверил работоспособность метода для получения столь важных данных, обновив пароль на свой. После обновления пароля на другой злосчастная страница по-прежнему отдавала данные с уже актуализированным паролём. Интересная ситуация.
Покопавшись в настройках и не обнаружив там ничего сверхъестественного, я добавил ссылку на скомпрометированную страницу в избранное и отправился спать.
По утру интернет вернулся в мою бренную жизнь, все необходимые интернет-ресурсы открывались без каких-либо неполадок, но, помня про вчерашнюю обнаруженную проблему, я решил посетить ту самую страницу с ошибкой, окончательно убедившись в существовании проблемы и наличии бэкдора.
Так как проблема весьма полезная и упростила бы жизнь солидной части пользователей (которые, если судить по их рассказам, тщетно пытались угадать пароль с технической поддержкой), я без всевозможных зазрений совести выложил детальную инструкцию по получения доступа а сайте одного известного форума, заодно сняв видео с наглядным описанием возможности узнать тот самый пароль и выложив его на не менее известный видеохостинг. Немного времени спустя, обнаружилось, что проблема воспроизводится ещё на некоторых роутерах и явно существует во всех версиях прошивок ZXHN H298A.
Разумеется, я искал возможность связаться то с ZTE, то с Ростелекомом и сообщить о проблеме, но ни в первом, ни во втором случае не обнаружил никаких доступных и прямых средств связи для этой цели. Буду весьма признателен Хабровчанам, если подскажут правильный порядок действий в этой ситуации (кроме банального обращения в поддержку Ростелекома). Можно сказать, что проблема крайне тяжелая, так как данный баг наблюдается на большом количестве устройств, а массовое обновление роутеров практически невыполнимая задача.
Искренне надеюсь, что обнаруженная проблема будет исправлена в кратчайшие сроки и не будет использована во вред тех или иных лиц.
Наверное, у каждого из вас бывали такие истории, когда вы теряли связь со всемирной паутиной по той причине, что ваш горячо любимый интернет-провайдер не справился с выполнением своих обязательств по предоставлению услуг связи. Если говорить максимально легко и просто — у вас просто внезапно исчезало интернет-соединение, а Ethernet-кабель, бережно (или не очень) проведённый в ваш дом, не показывал никаких признаков жизни.
Звонки провайдеру обычно редко заканчиваются положительным результатом. В моей жизни очень часто происходила такая ситуация, когда провайдер вовсе не видел проблемы, а потом, спустя пару часов, при повторном звонке всё же видел проблему и клятвенно обещал, что всё скоро починят-исправят, не забывая извиниться после каждого сказанного предложения.
И вот в один из апрельских вечеров (когда бОльшую часть страны закрыли на небезызвестную самоизоляцию) я спокойно работал над одним фриланс-проектом, как внезапно связь с внешним миром у меня полностью пропала, тем самым прервав разработку проекта на неопределённое время.
Резервных каналов связи не было, до дедлайна проекта было ещё далеко, поэтому я позволил себе немного отдохнуть от рабочих дел, заодно впервые за долгое время взглянуть на WiFi-роутер, который стоял в квартире. Хотя не совсем корректно сказать «взглянуть», так как устройство стояло в соседней комнате, в которой люди благополучно видели явно уже не первый сон, а искать его и шариться по углам желания явно не было, поэтому вращение роутера началось на высочайшем, абстрактном уровне.
Немного слов о персонаже. Точкой доступа был девайс производства ZTE, модели ZXHN H298A. Прошивка последней версии и, если судить по Ростелекомовским логотипам, фирменная, то есть в той или иной степени заточена под задачи провайдера «Ростелеком». Этот провайдер, как вы можете догадаться, и являлся поставщиком услуг связи в мой тогдашний дом.
Согласны? Узнали?
У меня возникло возможно дурное, но предположение, что что-либо не так с настройками роутера, поэтому я непременно захотел зайти в панель управления роутером (которая располагается по внутреннему IP-адресу 192.168.0.1), дабы посмотреть, какая история там происходит да и банально познакомиться с устройством поближе.
Введя стандартную пару логин/пароль (admin и admin; были указаны на коробке роутера), я с отсутствием удивления обнаружил, что они не подходят. Устройство устанавливалось и настраивалось в моё отсутствие, никаких данных по входу мне не сообщали, лишь дав изучить коробку устройства, на которой, как и на всех других коробках, была информация о стандартных логинах и паролях для устройства, а также названия и пароли для подключения к точкам доступа.
Периодически я проверял наличие интернет-соединения переходом на главную Яндекса, но всякий раз роутер показывал мне, что WAN-подключение отсутствует.
Гугление с телефона не дало каких-либо результатов, все вопросы с узнаванием пароля для доступа сводилось к ответу в стиле «сбросьте настройки и живите счастливо» вне зависимости от марки и модели устройства.
Однако по своей натуре я существо любопытное, поэтому решил побродить по различным (доступным мне и любым другим желающим пользователям) страницам веб-интерфейса, отдельное внимание уделяя HTML-коду. Не раз сталкивался с тем, что он может скрывать очень много чего интересного.
На странице входа я ничего примечательно не обнаружил, а вот на странице, которая показывалась всякий раз, когда я «пинговал» Яндекс, обнаружился крайне интересный блок кода.
Обычная такая форма с POST-запросом.
И наблюдательные индивидуумы сразу отметят наличие очень интересных данных в этой форме со спрятанными (hidden) полями ввода. Здесь и логин и пароля входа, и названия точек доступа, и пароли к ним, и некоторая информация о настройках устройства.
Поразившись приятной находке, я первым делом проверил логин и пароль для входа (они подошли) и повторно проверил работоспособность метода для получения столь важных данных, обновив пароль на свой. После обновления пароля на другой злосчастная страница по-прежнему отдавала данные с уже актуализированным паролём. Интересная ситуация.
Покопавшись в настройках и не обнаружив там ничего сверхъестественного, я добавил ссылку на скомпрометированную страницу в избранное и отправился спать.
По утру интернет вернулся в мою бренную жизнь, все необходимые интернет-ресурсы открывались без каких-либо неполадок, но, помня про вчерашнюю обнаруженную проблему, я решил посетить ту самую страницу с ошибкой, окончательно убедившись в существовании проблемы и наличии бэкдора.
Так как проблема весьма полезная и упростила бы жизнь солидной части пользователей (которые, если судить по их рассказам, тщетно пытались угадать пароль с технической поддержкой), я без всевозможных зазрений совести выложил детальную инструкцию по получения доступа а сайте одного известного форума, заодно сняв видео с наглядным описанием возможности узнать тот самый пароль и выложив его на не менее известный видеохостинг. Немного времени спустя, обнаружилось, что проблема воспроизводится ещё на некоторых роутерах и явно существует во всех версиях прошивок ZXHN H298A.
Разумеется, я искал возможность связаться то с ZTE, то с Ростелекомом и сообщить о проблеме, но ни в первом, ни во втором случае не обнаружил никаких доступных и прямых средств связи для этой цели. Буду весьма признателен Хабровчанам, если подскажут правильный порядок действий в этой ситуации (кроме банального обращения в поддержку Ростелекома). Можно сказать, что проблема крайне тяжелая, так как данный баг наблюдается на большом количестве устройств, а массовое обновление роутеров практически невыполнимая задача.
Искренне надеюсь, что обнаруженная проблема будет исправлена в кратчайшие сроки и не будет использована во вред тех или иных лиц.