Wbudowany root shell na routerach TP-Link

dodał 20 czerwca 2012 o 11:46 w kategorii Wpadki  z tagami:
Wbudowany root shell na routerach TP-Link

Analiza oprogramowania wbudowanego w urządzeniach sieciowych może przynieść ciekawe odkrycia. A to ktoś znajdzie link, umożliwiający dostęp do kamery, a to konto serwisowe w routerze. A czasem root shella w popularnym routerze Wifi.

Kanadyjska firma Websec zainteresowała się routerami firmy TP-Link, a konkretnie modelem WR740N i WR740ND (na swojej stronie podają, że były to modele WDR740N i WDR740ND, ale takie nie istnieją w ofercie TP-Link). Analiza plików binarnych wbudowanego serwera HTTP ukazała niezwykle ciekawą funkcjonalność.

Jak dostać roota na routerze

Okazało się, że serwer www ma zapisany w kodzie ukryty link,

http://[adres IP]/userRpmNatDebugRpm26525557/linux_cmdline.html

Po wejściu na ten adres użytkownikowi ukazuje się klasyczny webshell.

Webshell na routerze TP-Link (źródło: Websec)

Oprócz linka, w kodzie zapisane są również dane niezbędne do logowania: użytkownik to osteam, a hasło 5up.

Wyszukanie fragmentu linka backdoora w Google pokazało, że pierwsi odkryli go ponad rok temu Rosjanie, jednak nie podzieli się nim z tą częścią świata, która nie rozumie cyrylicy. Z wpisów na rosyjskich forach wynika, że ta ukryta funkcjonalność dostępna jest także przynajmniej w modelach WR741ND oraz WR1043ND.

Na co pozwala dostęp?

Jak twierdzą odkrywcy, po wejściu na podany link otrzymujemy dostęp do powłoki z uprawnianiami administracyjnymi – możemy więc zrobić wszystko. Na pewno możemy modyfikować pliki konfiguracyjne i ustawiać złośliwe ścieżki routingu. Zapewne możemy także np. usunąć kluczowe pliki i wyłączyć router z eksploatacji. Podejrzewamy, że w ten sposób można także np. odczytać hash hasła do sieci bezprzewodowej lub zainstalować sniffer sieciowy.

Jak zabezpieczyć swój router?

Przede wszystkim w opisie problemu pokazano jedynie dostęp do routera po wewnętrznym IP – zatem jest całkiem prawdopodobne, że webshell nie jest dostępny z zewnątrz.

Oczywiście ze względu na zapisanie parametrów dostępu bezpośrednio w skompilowanym pliku binarnym, nie mamy możliwości zmiany hasła lub wyłączenia dostępu. Prawdopodobnie w celu usunięcia problemu trzeba będzie zaczekać na aktualizację oprogramowania od dostawcy.

Ze względu na popularność routerów tego producenta w Polsce prosimy czytelników o weryfikację, czy problem faktycznie dotyczy wskazanych urządzeń – i być może również innych modeli TP-Link. Jeśli możecie potwierdzić lub zaprzeczyć, podajcie również wersję oprogramowania, w które wyposażone jest Wasze urządzenie. I sprawdźcie, czy da się zalogować zdalnie :)

Aktualizacja
W oparciu o komentarz naszych użytkowników (dziękujemy!) możemy uzupełnić wpis o następujące informacje:
  • Jeśli jest włączona opcja Security -> Remote Management -> 255.255.255.255 to serwer www routera jest dostępny z zewnątrz i błąd można wykorzystać zdalnie! W pozostałych przypadkach wykorzystanie błędu wymaga dostępu do sieci lokalnej (przez WiFi lub kabel/port LAN)
  • W menu Security -> Local Management możemy określić, które MAC adresy będą miały w sieci lokalnej dostęp do panelu zarządzania routerem
  • Wykorzystanie błędu może wymagać (mamy różne doniesienia – podobno można anulować żądanie hasła) wcześniejszego zalogowania się hasłem i loginem administratora routera (jeśli nie zmieniliście z domyślnego admin/admin to polecamy interwencję)
  • Potwierdzone działanie na następujących modelach: TL-WR740N, TL-WR740ND, TL-WR743ND, TL-WR842ND, WA-901ND, TL-WR941N, TL-WR941ND, TL-WR1043ND, WR2543ND, TL-MR3220, TL-MR3020, TL-WR841N (na dwóch ostatnich link działa, ale brak dostępu – prawdopodobnie inny login/hasło). Nie działa na modelach TL-WR340G, TL-WR543G. Dla TD-W8901G raporty są rozbieżne.
  • Prostym rozwiązaniem problemu jest zmiana wbudowanego oprogramowania na dd-wrt (tu więcej na ten temat) lub OpenWRT