Уязвимости в маршрутизаторе D-Link DIR-620
«Если хочешь изменить мир – начни с себя!» Для индустрии кибербезопасности эту расхожую фразу можно перефразировать так: «Если хочешь сделать мир безопаснее – начни с умных устройств в своем доме». А если точнее, то начать следует с маршрутизатора – это ядро любой домашней сети, а также интересный объект с точки зрения кибербезопасности. В случаем, если вы получили маршрутизатор от интернет-провайдера в рамках контракта, то исследовать его безопасность интересно вдвойне.
Масштаб проблемы
Примечание. Представленная ниже информация об уязвимостях предоставлена соответствующим компаниям и агентствам (D-Link, интернет-провайдеру, MITRE Corporation) и публикуется в соответствии с Политикой распространения информации об уязвимостях.
В настоящей публикации описывается четыре уязвимости в маршрутизаторе D-Link DIR-620 и учетные записи, жестко «зашитые» в его прошивке. Этой прошивка устанавливается на различных моделях маршрутизаторов D-Link, которые один из крупнейших российских интернет-провайдеров предоставляет своим клиентам. Мы утверждаем это исходя из того факта, что маршрутизатор предоставляется клиентам в рамках стандартного клиентского контракта, при этом название провайдера присутствует в учетных данных, в строке имени пользователя. Вероятно, по этой причине эта конкретная модель так популярна в России и странах СНГ. Домашние маршрутизаторы чаще всего недоступны напрямую, так как находятся за NAT интернет-провайдера и поэтому не попадают в статистику.
Объект исследования
В последних версиях прошивки по умолчанию прописаны учетные данные, эксплуатация которых может позволить злоумышленнику без авторизации получить привилегированный доступ к прошивке и извлечь из нее чувствительную информацию, например, файлы конфигурации с паролями в открытом виде. Уязвимый веб-интерфейс позволяет злоумышленнику без авторизации выполнить произвольный код JavaScript в пользовательском браузере и произвольные команды в операционной системе маршрутизатора.
Эти проблемы были впервые обнаружены в прошивке версии 1.0.37. Некоторые из выявленных уязвимостей были также обнаружены в других версиях прошивки:
- v.1.3.1
- v.1.3.3
- v.1.4.0
- v.2.0.22
Техническое описание
Уязвимость проверки пользовательских данных (отраженные XSS) (CVE-2018-6212)
В интерфейсе администратора есть поле ввода Quick search («быстрый поиск»), которое позволяет пользователю ввести какие-либо данные – именно это единственное поле, которое содержит уязвимость, и побудило меня заглянуть в эту прошивку глубже. Это поле позволяет реализовать атаку межсайтового скриптинга (XSS), которая становится возможной в результате отсутствия фильтрации специальных символов в пользовательском вводе, а также некорректной обработки объекта XMLHttpRequest. (Эта уязвимость обнаружена в версии 1.3.3, но присутствует и в других версиях.)
Параметры уязвимости:
CVSS v3 Base Score: 6.1
Vector: (CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N)
Заданные по умолчанию учетные данные для веб-панели (CVE-2018-6213)
Я скачал прошивку и извлек файловую систему. Большинство прошивок на базе Linux чаще всего содержат BusyBox – программный продукт, содержащий урезанные Unix-утилиты для встраиваемых систем. Зная, какие утилиты входят в этот набор по-умолчанию, достаточно легко распознать проприетарные исполняемые файлы, которые не входят в оригинальный набор инструментов BusyBox и в которые, вероятно, были внесены изменения с учетом нужд провайдера.
Я извлек строки из исполняемого файла веб-сервера (httpd), и тут же мне в глаза бросилась строка «anonymous». Я посмотрел функцию, в которой используется эта строка.
Это данные к привилегированной учетной записи, и они не могут быть изменены администратором. При помощи привилегированного доступа к веб-панели злоумышленник может получить конфиденциальную информацию.
Параметры уязвимости:
CVSS v3 Base Score: 6.5
Vector: (AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H)
Внедрение команд ОС возможна из-за некорректной обработки следующего параметра при пользовательском вводе (уязвимость обнаружена в прошивке версии 1.0.3):
/index.cgi?<…>&res_buf
Параметры уязвимости:
CVSS v3 Base Score: 9.1
Vector: (/CVSS:3.0/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H)
Заданные по умолчанию учетные данные для Telnet (CVE-2018-6210)
При помощи указанной уязвимости внедрения команд ОС злоумышленник может извлечь учетные данные Telnet (они были обнаружены в прошивке версии 1.0.3). Например, используя заданные по умолчанию учетные данные, можно получить административный доступ к маршрутизатору (фрагмент строки «etc/passwd»).
Параметры уязвимости:
CVSS v3 Base Score: 10.0
Vector: (/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
Как закрыть уязвимость
- Ограничить доступ к веб-панели, разрешив его только доверенным IP-адресам;
- Запретить доступ к Telnet;
- Регулярно менять логин и пароль администратора к сервисам маршрутизатора.
Коммуникация по проблеме
15.01.2018: отчет отправлен производителю
15.01.2018: отчет отправлен интернет-провайдеру
24.01.2018: получен ответ от интернет-провайдера
06.02.2018: получен ответ от производителя: «Устройства не предназначались для реализации в розницу и поставлялись клиентам через федерального оператора, запросившего кастомизацию».
Если вы хотите получать другие материалы, касающиеся обнаружения и исследования уязвимостей, подписывайтесь на рассылку.
Бэкдоры на заднем дворе D-Link