14 марта 2013 в 19:06

Бэкдор в роутерах TP-LINK

Польский security-эксперт Michał Sajdak из компании Securitum нашел очень интересный бэкдор в роутерах TP-LINK.

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



Инструкция:
  1. Пользователь выполняет HTTP-запрос:
    http://192.168.0.1/userRpmNatDebugRpm26525557/start_art.html
  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.
+76
87233
220
ahtox74 22,3
Похожие публикации
Обустраиваем хомяка или «OpenWrt уделывает прошивку от TP-LINK?». Часть 1 — подготовительная 8 декабря в 04:37
Переделка беспроводного USB Wi-Fi адаптера TP-LINK TL-WN722N в адаптер Philips PTA01 для телевизора Philips 55PFL7606H и других 11 июля в 16:07
Катаемся на флоппике и изучаем перспективный роутер. (В этой статье не пострадал ни один TP-Link MR3020 и TL-WR703N, и отделался легким испугом HAME MPR A100 (A2)) 21 марта в 13:41
По следам уязвимости D-Link: В беспроводных маршрутизаторах Tenda и Medialink обнаружен бэкдор 19 октября 2013 в 23:18
Пошаговая прошивка OpenWRT на роутер TP-LINK TL-WR741ND из Windows 16 июля 2013 в 14:52
Универсальный ПДУ для XBMC из TP Link MR3020 11 июня 2013 в 14:54
TP-Link TL-WR703N. Небольшой, но полезный мод 3 мая 2013 в 19:40
Делаем VoIP GSM шлюз из Tp-link mr-3020 и Huawei E-171 — часть вторая — добавляем Siemens Gigaset c470IP и SMS 12 марта 2013 в 01:06
Интернет термометр на TP-Link MR3020 30 декабря 2012 в 03:37
Краткий обзор мобильного роутера TP-Link MR3040 23 октября 2012 в 19:58

Комментарии (69)

0
Dreammaker #
Это касается только родной прошивки? Если например, опенврт или какая-то другая, то не должно, как я понимаю работать?
+21
xReaper #
Конечно.
+1
ftp13 #
А можно обо всем и по подробнее(оформить как перевод), ибо перевод chrome отвратительный…
Проверил на своем TL-WR743ND v2.0, потерял только видимость сети(помог ребут роутера) хотя старенький комп с патч-кодером этого даже не заметил.
+4
ZiGR #
А у мена на TL-WR741N вообще упал Wi-Fi, поднялся после ребута.
0
dmitryim #
Да, по ссылке из поста определенно не стоит переходить — упадет, даже если tftp сервера нет.
0
beerhack #
у меня такой же, аналогично случилось.
0
hunterxp #
блин, поздно прочитал ваш коммент…
уронил удалённый wifi =(
0
kopch #
Та же фигня с MR3420.
+40
mwizard #
+9
ivan_kolmycheck #
Вместо тысячи слов.
+13
andy128k #
Сито?
+22
backmeupplz #
Решето!
0
fishbone #
У меня с одним из DLink ов была интересная история. Была халтурка подключить видеонаблюдение и удаленное администрирование пары компьютеров, связаных с РБУ для сбора статистики, к интернету, чтобы можно было удаленно мониторить. Настраиваю на роутере DDNS, разрешаю управление из WAN, ставлю криптостойкий пароль и уезжаю. Понадобилось как то проверить связь до одного из узлов. Цепляюсь по telnet, а пароль не идет. Начинаю подбирать пароль — никак. Стал подбирать связки логин-пароль в итоге зашел под support-support. На Web-интерфейс пустило и вовсе без пароля. Позже проверил из LAN — все пароли на месте, везде запаролено, все безопасно.
0
ivan_kolmycheck #
В оригинале есть информация, как обнаружили этот бекдор?
0
ahtox74 #
Только лишь небольшое упоминание тут: http://sekurak.pl/more-information-about-tp-link-backdoor/

0
ivan_kolmycheck #
Просто это действительно интересно: как всё-таки обнаружили эту уязвимость? Был какой-то код, который проанализировали? Слили дамп прошивки и разобрали его? Вариантов очень много. Жаль, что там лишь «небольшое упоминание».
+1
snizovtsev #
Да анализом прошивки наверняка. Это же не какой-нибудь экзотический девайс из нестандартных компонентов, а более менее типичный SoC с линуксом, который можно удобно изучать.
0
ivan_kolmycheck #
Ну вот и хотелось бы получить информацию «из первых рук» — от нашедшего.
+2
ahtox74 #
Я не знаю что он конкретно делал чтобы найти этот бэкдор, но мне кажется разумным следующий вариант событий:
1. Вытаскиваем все файлы из файла прошивки с помощью Binwalk
2. Анализируем в IDA (Его как я понял заинтересовали строка /userRpmNatDebugRpm26525557/start_art.html)
3. ????
4. PROFIT: http://i.imgur.com/tavhm5H.png

Рядом со строкой «start_art.html» еще находится "/userRpmNatDebugRpm26525557/erase_cal.html". Думаю найдется кто-нибудь, кто сможет определить что она делает на свой страх и риск.
+2
BugMaker #
Поццоны, не качайте! У меня от этой хрени холодильник сгорел!
Ну а если серьезно, то у меня как раз 4300. Первая строка вешает роутер (наверное, потому что TFTP не находит), а вот вторая — да ну ее нафиг :). Вообще, довольно странный бэкдор, он же только внутри сети работает. Так что бояться нечего.
+3
nitro80 #
>Так что бояться нечего.
Пока в сети предприятия не найдётся хакерёнок :)
+1
ploop #
TP-LINK за 30$ в сеть предприятия? :)
0
AndreyF #
Запросто. У нас на приватизированных (и не только) предприятиях такие персонажи встречаются, что диву даёшься как оно вообще живо-то до сих пор
0
poisons #
В виде wifi точки на 3х человек че бы нет. Микротик я так понимаю тоже не алле для гуру? Каждой задаче свой инструмент.
0
KawaiDesu #
А почему не сделать дамп прошивки и не попытаться смонтировать\распаковать содержимое файловой системы? Там и структура каталогов будет сохранена, и скрипты соответствующие читабельны.
0
ahtox74 #
Собственно Binwalk для этого и предназначен: http://code.google.com/p/binwalk/
0
KawaiDesu #
Спасибо за ссылку. Мне кажется, у него всё же принцип работы отличается от того, что я подразумевал. Он ищет файлы по сигнатурам и распаковывает их. Про монтирование не нашёл. А я говорил о распознании сигнатуры ФС и её нормальном подключении\распаковки (как, например, yaffs).
0
ZiGR #
А какие, собственно, критерии для этого самого nart.out? Он должен быть скомпилированным под Linux?
0
ploop #
Возможно, проскочит шелл-скрипт (смотря как там родная прошивка организована)
+1
Veliant #
Если уж на то пошло, то кроме nart.out грузится еще art.ko который потом грузится через insmod
+3
poisons #
Оооо))) опять эти укуренные прошивкописайтели за плошку риса…
+15
Sauron #
Кстати, в сети обнаружилось еще такое:
websec.ca/advisories/view/root-shell-tplink-wdr740

TP-Link WDR740ND/WDR740N routers have a hidden debugging shell with root privileges that could be abused by attackers.

The username is hard coded in the HTTP server binary and the password cannot be changed from the management interface so the following credentials are almost guaranteed to work:

/userRpmNatDebugRpm26525557/linux_cmdline.html.

User:osteam
Password:5up

«Update: People have been reporting on forums that models WR743ND,WR842ND,WA-901ND,WR941N,WR941ND,WR1043ND,WR2543ND,MR3220,MR3020,WR841N also have access to this root shell.»


Какой ужас. Дебаг шелл с рутовыми привилегиями с фиксированными логином и пассвордом (из трёх букв).
0
dmitryim #
Похоже, что только указанного пароля недостаточно (как минимум на MR3220) — нужно авторизоваться как администратор. В противном случае дает посмотреть только оболочку шелла, но не дает выполнить команду. Красота! Хорошо хоть извне не пускает.
0
Sauron #
Забавно
Надо бы на WDR740ND/WDR740N попробовать
0
NoOne #
Да, на WR1043ND в начале еще админские логин/пароль необходимы на веб-морду.

Я еще закидывал dropbear на флешку, подключал к роутеру, потом через этот веб-шел запускал dropbear и коннектился уже нормальным SSH на роутер. Насколько я помню, логин admin, пароль такой же 5up

И через него слил в нормальном виде всю прошивку.
0
denv #
на MR3220 получилось, окошко авторизации действительно выскакивало пару раз, просто игнорим, далее у вас загрузится страничка где можно будет вписать:

User:osteam
Password:5up
0
StealthX #
Да, но выполнить что-то не выйдет. Во всяком случае, у меня без авторизации не прокатило.
0
StealthX #
Подтверждаю (для wr1043 1.1(RU) 3.13.9). Консоль доступна при закрытии окна авторизации, но выполнить команды не получится.
+3
isden #
> MR3020

О, отлично, спасибо. А то сходу не нашлось как в оригинальной прошивке в потроха залезть.
0
asm0dey #
1043ND работает.

UPD: Ан нет, логин с пассвордом не подходят.
0
Shkoder #
работает. в прошивке 3.13.12 Build 120405 Rel.33996n отлично работает к сожалению…

еще один повод поскорей перейти на *WRT
0
asm0dey #
И правда, работает. Что-то у меня наверное руки скривились невовремя.
Но на WRT тоже не очень хорошо — они медленные по сравнению со стоковой.
0
RussianNeuroMancer #
> WRT
Который?
0
asm0dey #
Все, которые я пробовал — OpenWRT, DD-WRT, Gargoyle. Самые лучшие воспоминания, кстати, о Gargoyle. Но все равно вернулся на сток.
0
RussianNeuroMancer #
Какую версию OpenWRT вы пробовали?
0
asm0dey #
Не вспомню уже. Последнюю которая на тот момент была строил билдером. Было не очень давно — где-то полгода назад.
0
RussianNeuroMancer #
Как проявлялись замедления? Пробовали ли вы спрашивать о них на форуме OpenWRT или писать в багтрекер?
0
asm0dey #
Замедления проявлялись в том, что скорость скачивания на моих 80 мегабитах не дотягивала до скорости на стоке. Писать в багтрекер лень — мне оказалось проще перейти на сток обратно.
0
RussianNeuroMancer #
Разве что скажу, что как по мне, в вашем случае вероятно было что-то странное. У меня тариф на 60, подключение по PPPoE, скорость при прямом подключении и через роутер не отличается. (Билды от транка годичной давности до 12.09 beta 2.) Вряд ли на 80 там могла быть большая разница. Возможно вам просто попался неудачный срез транка?
0
asm0dey #
Да, такое возможно. Еще может сказываться режим использования, наверное.
С другой стороны Gargoyle — тот же OpenWRT но настроенный и вроде бы как проверенный — там уж наверняка нету неудачного среза транка. И он мне тем не менее показался медленным тоже. Ну и еще один бонус у стока есть — проставил пароль вайфая и все работает. А даже в гаргойле этот вайфай еще включать надо.
0
ploop #
А не тестировали его на полную (100 мегабит)? Интересует с OpenWRT. Знаю, что DIR620 отлично справляется с прошивкой от кинетика, но его пришлось отдать :(

Теперь ищу что-то недорогое взамен. У самого 3420 + 3G + OpenWRT, но его взять на тесты проблематично, он замурован высоко, да и семья не одобрит…
0
RussianNeuroMancer #
> А не тестировали его на полную (100 мегабит)?
Не тестировал.
0
ploop #
Кстати, а что значит «медленные»?
0
asm0dey #
Замедления проявлялись в том, что скорость скачивания на моих 80 мегабитах не дотягивала до скорости на стоке.
0
StealthX #
Работает с авторизацией на вебморде? У меня окно с вводом пароля можно закрыть, но команды не будут выполняться и будет выдаваться повторный запрос на авторизацию.
0
easyman #
На TP-Link 4300 с последней родной прошивкой подвешивает вебсервер. Инет у меня ещё работает, сейчас пойду перезагружать роутер.
При этом, если пользователь не залогинен в веб интерфейсе, выдается сообщение о ошибке.
Кто-нибудь знает, как получить shell с root на родной прошивке на 4300?
0
f1ac #
841N — Нужно предварительно авторизоваться на веб-интерфейсе, и osteam не подходит
UPD: если сперва нажать на одну из предопределённых команд, то дальше всё проходит.
0
Limosha #
TL-WR741N пускает на веб-шелл и логин пароль подходит.
0
xdevel #
Firmware Version: 3.12.11 Build 120320 Rel.51047n
Hardware Version: WR740N v4 00000000

Art download failed (в случае, если TFTP сервер не обнаружен)
0
Disconnecter #
TL-WR340G/TL-WR340GD
Говорит не правильный юзернейм и пасс
+1
ComodoHacker #
Могли бы и получше спрятать. Там port knocking что ли, тайминги, строку в бинарнике разделить…
Такой уровень говорит о том, что это не настоящий бэкдор против мирового империализма, а просто инструмент для дебага.
+1
Sleuthhound #
вообще дебаг интерфейс тп-линков давно известен
/192.168.0.1/userRpmNatDebugRpm26525557/linux_cmdline.html
user: osteam
pass: 5up

так что наслаждайтесь…
–3
Nomad1 #
ок, а зачем пользоваться этой кошмарной родной прошивкой, когда есть DD-WRT и OpenWRT?
0
menraen #
Таки вероятнее всего это не бэкдор, а результат плохой работы QA у китаезов.

Некоторые производители не стесняются в Release Notes про такие «бекдоры» писать как про новые фичи. Вот, к примеру, ZyXEL:
Modification V1.00 (BWE.4 )b1 / Jun 13, 2011
1. [Modification]
Symptom:Support hidden URL which named tools_archangel.cgi to control debug
message.
Application Note:Tools_archangel.cgi can control the arch_angel daemon
whether send Syslog or not to our Syslog server.

Хотя с другой стороны, название arch_angel daemon наводит на мысль, что инфа попала в Release Notes по недосмотру ZOG ;)
0
shanker #
Не так давно в других роутерах этого же производителя (TL-WA701N и TL-WA701ND) были найдены уязвимости
0
ozonar #
TL-WR1043ND тоже умер. Не отвечает админка и упал WiFi. Проводную сеть тоже подкосило
0
gavrish #
Про ту страничку давно всем известно, и на хабре не так давно проскакивала статья
Эксплуатируем уязвимости роутеров wi-fi с android-устройства там тоже вспоминалась она и другие… во общем немножко боян.
0
fandm #
Тема в принципе не свежая, однако не хотелось писать отдельную статью. Отпишусь здесь. В моём случае роутер TP-Link TL-WR841N. В нём в стоковой прошивке «3.14.19 Build 130620 Rel.63894n» в админке по умолчанию не доступен пункт меню "Удаленное управление". Но если ввести адрес 192.168.0.1/userRpm/ManageControlRpm.htm, то попадаем на соответствующую страницу управления настройками удалённого доступа к роутеру. Выглядит эта страница ТАК. Так вот, в моём случае в роутере уже был прописан «Remote Management IP Address» = 222.88.88.234 (китайский сегмент), хотя по умолчанию должен быть прописан адрес 0.0.0.0 (удалённое управление отключено). Конечно, злоумышленник по адресу 222.88.88.234 должен знать ещё и логин/пароль. Но, как минимум, у него появляется возможность заняться перебором возможных вариантов, если логин/пароль не оставлены по умолчанию владельцем роутера. Кстати, для проверки устойчивости пароля достаточно удобно пользоваться этим сервисом: www.passwordmeter.com/

Каким образом туда попал адрес 222.88.88.234 — достоверно неизвестно. Но, исходя из информации в Google (запросы: «ManageControlRpm.htm» и «TP-Link 222.88.88.234»), склоняюсь к выводу, что роутер был изначально приобретён с такой настройкой (приобретён примерно в начале 2014-го).

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.