>
Май 2017
Пн Вт Ср Чт Пт Сб Вс
« Апр    
1234567
891011121314
15161718192021
22232425262728
293031  

Взлом роутера D-link через встроенный бэкдор

В последнее время в сети появилось много информации о том что множество домашних роутеров подвержены уязвимостям. Как привило эти уязвимости связаны с встроеной операционной системой роутеров. Сегодня мы расмотрим очередной пример уязвимых устройств только с ними ситуация еще проще. Производитель сам вставил в код операционной системы роутера функционал позволяющий получить к нему доступ.

В начале года вернулась мода копать различные устройства под рукой, например роутеры. Доступен, распространен, а собой представляет целый мини-компьютер. Тут тебе обычно и Линукс, и веб-морда. И не задалось с D-Link’ом: сначала у них выявили уязвимости в стиле конца 90-х — начала 2000-х, но это ладно. А потом начали находиться разные неприятные бэкдоры.
Первый из них затрагивает модели DIR-300revA, DIR-300revB, DIR-600revB. На устройствах присутствует следующий скрипт:

Для нас ключевая строчка — поднятие демона telnetd и указание юзера и пароля. Юзер — Alphanetworks, пароль — версия текущей прошивки. Неприятно, не правда ли? Ну да ладно, едем дальше, стали копать их глубже. Теперь к списку добавляются следующие модели:

• DIR-100;
• DI-524;
• DI-524UP;
• DI-604S;
• DI-604UP;
• DI-604+;
• TM-G5240;
• Planex BRL-04UR (роутеры используют прошивку от D-Link);
• Planex BRL-04CW.

Взлом роутера D-link

Прошивка D-Link. Интересное сравнение строк в alpha_auth_check

Крейг Хеффнер (Craig Heffner) разреверсил прошивки для этих устройств и сообщил, что нашел интересное место при авторизации на роутере. Если юзерагент равен значению xmlset_roodkcableoj28840ybtide, то авторизация не требуется. Если прочитать строчку задом наперед, получится editby04882joelbackdoor_teslmx, что явно говорит о назначении данного кода. Но сделаем некоторое отступление. Есть непроверенная информация, что данная «фича» юзалась для реконфигурации DNS-сервера какой-то из либ на роутере (начало UA намекает об этом — xmlset) и это просто возможный костыль и злого умысла не было. Но так или иначе, даже если это так — это непростительный в данном случае костыль.
D-Link выпустил обновленные прошивки, исправляющие эти уязвимости. Конечно, все перечисленные модели довольно старые, но очень популярные устройства, разошедшиеся в свое время большим тиражом.

Эксплуатация бэкдора довольна проста, и её суть показана на следующей иллюстрации:

Инструкция по взлому роутера D-Link:

  1. Пользователь выполняет HTTP-запрос:
  2. Роутер подключается к IP-адресу, сделавшему данный запрос, и пробует найти TFTP-сервер.
  3. В случае если TFTP-сервер найден, роутер скачивает файл «nart.out»
  4. Скачанный файл запускается с привилегиями root-пользователя

Скорее всего данный бэкдор может быть использован только внутри сети.
Бэкдор содержат следующие модели роутеров: TL-WDR4300, TL-WR743ND (v1.2 v2.0). Однако данный список может быть не полным.
Оригинал: link

UPDATE от меня:
Помимо URL, который указан выше, в прошивке для TL-WDR4300 содержатся еще два:

Обработка HTTP-запроса к /userRpm/DebugResultRpm.htm:

Как мы видим у скрипта есть три параметра:
/userRpm/DebugResultRpm.htm?cmd=CMD&wan_bpa_usr=osteam&passwd=5up

Если при запросе к этому URL комманда действительно выполняется, то это дает возможность произвести красивую CSRF-атаку (например сменить роутинг или изменить hosts-файл).
Нужны добровольцы с TP-Link, которые могли бы проверить этот URL.

 

На информационном портале devttys0.com некто Craig Heffner – опытный специалист в области реверс-инжиниринга – выложил статью-исследование очередной программной закладки в роутерах D-Link. На этот раз закладка была выявлена в официальной прошивке для DIR-100 revA, но, по его мнению, присутствует в роутерах других серий:

  • DIR-100
  • DI-524
  • DI-524UP
  • DI-604S
  • DI-604UP
  • DI-604+
  • TM-G5240
  • Planex BRL-04UR
  • Planex BRL-04CW

Коротко говоря, если у вашего браузера установлен User-Agent как «xmlset_roodkcableoj28840ybtide», то вы автоматически получаете админский доступ к веб-панели управления роутером без всякой авторизации.

Первым делом автор скачал официальную прошивку firmware v1.13 для DIR-100 (для его DI-524 используется та же самая). Затем прошёлся по бинарнику своей утилитой binwalk и вынул SquashFS с ситемой, откуда взял веб-сервер /bin/webs и загрузил его в IDA:
image

Судя по строкам, /bin/webs это модифицированная версия thttpd. Авторы модификации — Alphanetworks, подразделение D-Link, все добавленные методы начинаются с префикса alpha:
image

alpha_auth_check

Данная функция кажется наиболее интересной. При детальном анализе выясняется, что в ней выполняется сравнение строк – строка со смещением 0xD0 в структуре http_request_t и константой«xmlset_roodkcableoj28840ybtide». Если совпадают, то alpha_auth_check сразу же возвращает 1 (успешная авторизация).

Автор погуглил константу xmlset_roodkcableoj28840ybtide и нашёл единственное упоминание на русском форуме: http://forum.codenet.ru/q58748. Сообщения датируются 2010 годом, но про то, каким образом в бинарнике используется эта строка, никто не упомянул.

Продолжая исследование, Craig находит, что по смещению 0xD0 в структуру http_request_t данные пишутся функцией httpd_parse_request.
imageimage

Собирая всю полученную информацию воедино, автор в конечном итоге составляет следующий псевдокод для функции alpha_auth_check:

 

You stay classy, D-Link 🙂

Также данной уязвимости подвержены устройства:

 

Уязвимость у D-Link DIR-300 давно известна. Суть ее проста, возможность увидеть конфигурацию роутера, а иногда и изменить пароль у admin

DIR-300

Уведомление о безопасности.

Суть в создании POST запроса к роутеру по адресу http://192.168.0.1:80/tools_admin.php следующего содержания:

После этого можно зайти на устройство используя следующую пару логин/пароль: admin/admin

Для удобства можно создать следующий html форму:

В новых версиях прошивок данную ошибку прикрыли, но осталась возможность просматривать настройки, для этого достаточно передавать некоторые параметры в GET запросах к роутеру:

Подробнее можно почитать тут.

Есть еще одна возможность. При включении/перезагрузке роутера на некоторое время запускается telnet-сервер доступный всем пользователям LAN/WLAN, который можно использовать для безусловного получения полных административных прав (root) на роутере. Стандартная учетная запись:Alphanetworks Пароль: wrgg19_c_dlwbr_dir300

Тов. N!K!TA подбросил еще пару возможных паролей: wrgn23_dlwbr_dir300bи wrgn49_dlob_dir300b5

Вот еще для Dir-320 wrgg27_dlwbr_dir320

Вот еще пары — логин-пароль от PingWinbl4:
Alphanetworks wrgg19_c_dlwbr_dir300

Alphanetworks wrgn49_dlob_dir600b

Alphanetworks wrgn23_dlwbr_dir600b

Alphanetworks wrgn22_dlwbr_dir615

Alphanetworks wrgnd08_dlob_dir815

Alphanetworks wrgg15_di524

Alphanetworks wrgn39_dlob.hans_dir645

Подробнее можно почитать тут.

Сама уязвимость

Взлом через Telnet

Так же замечу что у DIR-300 файл настроек http://192.168.0.1/config.bin зашифрован, но вытащить необходимые данные из него можно с помощьюRouterPassView

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

Все это относится и к Dir-320 (прим. версии A) На картинке демонстрирую их работу:

После авторизации в админке благодаря этой конструкции можно рестарнуть роутер:

Вот видео демонстрирующее полный взлом DIR-300 через Wi-Fi (WPA2 WPS):

Вот еще некоторые штуковины, которые стоит опробовать:

Подробнее тут

Подробнее тут

Уязвимость CVE-2002-0140 DNS демона dnrd тут и тут

Share Button
[Всего голосов: 12    Средний: 3.5/5]

Вам может быть интересно также:

Last updated by at .

2 комментария Взлом роутера D-link через встроенный бэкдор

Leave a Reply

You can use these HTML tags

<a href="" title="" rel=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">