Śmieszna tylna furtka w ruterach Linksysa (i prawdopodobnie Netgeara)

Nowy rok zaczynamy jednym z naszych ulubionych tematów, czyli kolejną tylną furtką w urządzeniu sieciowym, zostawioną tam przez producenta z nadzieją, ze nikt jej nie znajdzie. A nadzieja, jak powszechnie wiadomo, jest matką głupich.

Tym razem tylna furtka wygląda dość niepozornie. Ot, otwarty port, który odpowiada dziwnym ciągiem znaków. Okazuje się jednak, że to niestandardowy interfejs zarządzania całym urządzeniem, dostępny dla każdego użytkownika.

Wyzwanie przyjęte

Autor odkrycia, Eloi Vanderbeken, opisał swoje znalezisko w dość niestandardowy sposób – w postaci prezentacji PPT rysowanej w Paincie. Prosimy zatem o wybaczenie, jeśli coś w naszym artykule nie będzie się zgadzać, ale wiele elementów musieliśmy dedukować z obrazków. Wszystko jednak wskazuje na to, że pewnego świątecznego dnia Eloi próbował skorzystać z internetu, który działał bardzo wolno (z marnego łącza korzysta wiele osób). Wpadł zatem na klasyczny pomysł administratora, czyli ograniczenie przepustowości pozostałym użytkownikom. Gdy jednak próbował zalogować się do rutera Linksys WAG200G, problemem okazały się jednak decyzje podjęte wiele lat temu, czyli wyłączenie zdalnego dostępu do interfejsu administratora oraz ustawienie bardzo skomplikowanego i bardzo zapomnianego hasła. Tu następuje moment, w którym nie rozumiemy, czemu Eloi nie mógł po prostu fizycznie zresetować rutera do ustawień fabrycznych – być może urządzenie nie znajdowało się w jego domu lub nie chciał zmieniać hasła dostępu do sieci WiFi wszystkim użytkownikom. Eloi odpowiedzał na nasze pytanie i wyjaśnił, że nie chciał stracić ustawień rutera i modemu.

Nasz bohater przyjął zatem postawę, która jest zapewne oczywistym wyborem dla większości naszych Czytelników – challenge accepted! Odpalił Nmapa i zobaczył, że na ruterze otwarty jest tajemniczy port TCP/32764, który odpowiada ciągiem ScMM\xFF\xFF\xFF\xFF\x00\x00\x00\x00 na każde połączenie. Niestety w internecie nie znalazł żadnych konkretnych informacji na temat tego portu. Trzeba było zatem znaleźć inne rozwiązanie.

Analiza oprogramowania

Pierwszym krokiem gdy próbujemy analizować oprogramowanie rutera jest oczywiście pobranie odpowiedniej paczki ze strony producenta. Tu jednak Linksys się nie popisał – na oficjalnej stronie wyszukiwarka niczego nie znalazła. Z pomocą przyszły oczywiście internetowe fora. Eloi za pomocą narzędzia binwalk zidentyfikował system plików Squashfs, jednak próba jego podmontowania przy użyciu standardowych narzędzi się nie powiodła – jego urządzenie używało wersji starszej, niż obsługiwana przez narzędzia. Po krótkim hakowaniu skryptów konfiguracyjnych udało mu się jednak podłączyć do systemu plików rutera. Tutaj z kolei z pomocą przyszedł grep, który pomógł zidentyfikować plik scfgmgr, odpowiedzialny za wysyłanie tajemniczego komunikatu na porcie 32764. Do akcji ruszyła IDA.

Analiza protokołu

Eloi na swoje szczęście znał się na inżynierii wstecznej w wystarczającym stopniu, by zlokalizować procedury odpowiedzialne za obsługę komunikacji usługi obsługującej port 32764. Ku swojemu zaskoczeniu odkrył tam banalnie prosty protokół, przyjmujący po krótkim nagłówku 13 różnych, kolejno ponumerowanych poleceń. Jak przystało na prawdziwego eksperymentatora, Eloi po prostu wysłał do rutera kilka pakietów. Ku swojemu zaskoczeniu otrzymał pełną konfigurację urządzenia wraz ze wszystkimi hasłami oraz komunikat od żony o treści „czemu nie działa internet!”. Dalsza analiza pozwoliła zidentyfikować znaczenie kolejnych poleceń.

1: zrzut całej konfiguracji z pamięci nvram 2: wyświetlenie wybranej zmiennej 3: ustawienie wybranej zmiennej (a przy okazji błąd przepełnienia bufora) 4: wgranie nvram 5: ustawienie trybu mostka sieciowego 6: wyświetlenie prędkości łącza 7: wykonanie polecenia (czyli shell) 8: zapisanie pliku 9: wyświetlenie informacji o wersji 10: wyświetlenie adresu IP 11: przywrócenie domyślnych ustawień 12: odczytanie fragmentu dysku 13: zrzut nvram

Czy można chcieć czegoś więcej? Jest nawet shell! Dla ułatwienia obsługi tylnej furtki Eloi stworzył odpowiedni skrypt w Pythonie. Na deser znalazł także w ruterze prywatny klucz RSA. A Chińczycy prawdopodobnie wiedzieli o tej tylnej furtce od 2008…

Inne rutery?

Co prawda do tej pory nikt nie potwierdził na 100% faktu obecności tej samej tylnej furtki w innych urządzeniach, jednak w sieci można znaleźć wpisy mówiące o tym, że w wielu modelach ruterów otwarty jest port 32764, który odpowiada na połączenia tym samym ciągiem znaków… Przetestujecie? Przykładowe urządzenia, gdzie tylna furtka może być obecna, to Netgear DG934, WPNT834, WG602, WGR614, DGN2000 oraz Linksys WRVS4400N – choć inne też niewykluczone. Prawdopodobnie mogą to być wszystkie urządzenia, korzystające z komponentów firmy SerComm.

Do tej pory potwierdzono występowanie tej tylnej furtki w następujących ruterach:

Linksys WAG200G

Linksys WAG120N

Linksys WAG160N

Linksys WAG320N (Firmware V1.00.12)

Linksys WAG54G2

Netgear DM111P

Netgear DGN1000

Netgear DGN3500

Netgear DG834

Cisco WAP4410N

Jeśli lubicie czytać o tylnych furtkach w domowych ruterach, to polecamy także nasze wpisy dotyczące innych modeli: