Włamał się do odtwarzacza. Pilotem. Przez nazwę sieci WiFi.

dodał 26 października 2012 o 22:17 w kategorii Top, Włamania, Wpadki  z tagami:
Włamał się do odtwarzacza. Pilotem. Przez nazwę sieci WiFi.

Urządzenia z wbudowanym systemem są pełne niespodzianek. Okazuje się, że analiza oprogramowania może doprowadzić do uzyskania uprawnień roota na odtwarzaczu multimedialnym za pomocą pilota. I to przez manipulację nazwą sieci WiFi.

W serwisie poświęconym analizie wbudowanego oprogramowania w różnych urządzeniach opisano ciekawą i niezwykle oryginalną historię włamania do odtwarzacza NeoTV firmy Netgear. NeoTV potrafi bezprzewodowo przesyłać sygnał wideo, pochodzący z takich serwisów jak Youtube, Hulu czy Netflix.

Analiza urządzenia rozpoczęła się od jego otwarcia i odnalezienia portu szeregowego, który niestety nie udostępniał powłoki z uprawnieniami administracyjnymi. Kolejnym krokiem było zatem pobranie aktualizacji oprogramowania urządzenia i jego analiza. Narzędzie binwalk pokazało, że w pliku obrazu oprogramowania  znajdują się dwa obrazy systemu plików SquashFS, dość często stosowanego w tego typu urządzeniach.

Pierwszy obraz po jego wyodrębnieniu i zamontowaniu okazał się zawierać między innymi plik binarny /usr/local/bin/ntv300ui, odpowiedzialny za obsługę interfejsu urządzenia, w tym także komend pilota. Analiza pliku binarnego za pomocą dizasemblera pokazała, że programiści, tworzący kod, chętnie korzystali z funkcji system() oraz popen(). Użyli ich między innymi w kodzie odpowiedzialnym za łączenie się urządzenia z domową siecią bezprzewodową. Jaki był tego skutek? Oto, co działo się, kiedy użytkownik podał za pomocą pilota nazwę docelowej sieci `reboot`.


Nazwa sieci (źródło: devttys0.com)

Zaczynamy od pieczołowitego wystukania na pilocie odpowiedniej nazwy sieci.


Próba połączenia (źródło: devttys0.com)

Urządzenie próbuje się z nią połączyć.


Reboot (źródło: devttys0.com)

Co kończy się nieuniknionym restartem. Czyż to nie piękne?

Próba połączenia do sieci o nazwie „;bin/sh/ # pozwoliła badaczom na uzyskanie ograniczonej powłoki na porcie szeregowym. To ich jednak nie zadowoliło, ponieważ interfejs był mało funkcjonalny a prezentowane ekrany wymieszane z wynikami procedur diagnostycznych. Interfejs ten pozwolił jednak na znalezienie ciekawego skryptu /root/rc.user, którego fragment sprawdzał, czy istnieje plik /mnt/ubi_boot/mfg_test/enable i w przypadku pozytywnego wyniku testu uruchamiał usługę telnet.

Co prawda plik „enable” nie istniał, ale nic nie stało na przeszkodzie, by można go było utworzyć poprzez sztuczkę z nazwą sieci bezprzewodowej. Długość pola nazwy sieci  ograniczała wydawane komendy do 32 znaków, ale badacze ominęli to ograniczenie, tworząc krok po kroku odpowiedni skrypt a następnie go wykonując. Restart urządzenia dał im to, czego szukali – powłokę roota, bez hasła, czekającą na porcie 21. Voilà!


Powłoka roota (źródło: devttys0.com)

Do słynnych już włamań takich jak emacsem przez sendmail oraz Skypem do banku dodajemy dzisiaj pilotem przez SSID do dekodera. Nie wiemy też jak Wy, ale my zaraz zmienimy nazwę naszej sieci bezprzewodowej na „rm -rf /.