Konferencja Mega Sekurak Hacking Party w Krakowie – 26-27 października!
Adminie… Czy znamy Twoje grzechy? ;-) Sprawdź!
Konferencja Mega Sekurak Hacking Party w Krakowie – 26-27 października!
Adminie… Czy znamy Twoje grzechy? ;-) Sprawdź!

W artykule chciałbym podzielić się moimi doświadczeniami związanymi ze zgłoszeniem podatności w routerach dostarczanych przez dostawców Internetu (ISP) oraz procesem jej późniejszego „usuwania”.
Ze względu na niską złożoność ataku oraz konsekwencję jej wykorzystania czuję moralny obowiązek podzielenia się spostrzeżeniami. Celem artykułu jest pokazanie, jak w praktyce wygląda obsługa podatności w urządzeniach, nad którymi użytkownik końcowy ma ograniczoną kontrolę oraz jakie wnioski można z tego wyciągnąć dla bezpieczeństwa własnej sieci domowej.
Historia zaczyna się 26 czerwca 2025 roku, kiedy przestał działać u mnie Internet. W czasie oczekiwania na przywrócenie usługi, z czystej ciekawości postanowiłem przyjrzeć się routerowi dostarczonemu przez operatora.
Podczas analizy okazało się, że urządzenie działa w oparciu o system OpenWRT 19.07.6. Od tego momentu dalsze kroki były już dość naturalne – OpenWRT jest dobrze udokumentowanym systemem, a jego architektura i mechanizmy są powszechnie znane.
OpenWRT udostępnia interfejs API ubus, który w tym przypadku był dostępny przez protokół HTTP. Webowy panel administracyjny producenta nie stanowi odrębnej warstwy serwerowej – w praktyce jest to aplikacja kliencka, która z poziomu przeglądarki użytkownika wywołuje bezpośrednio endpointy API ubus, przekazując tokeny sesyjne i parametry operacji w jawnej postaci.
Ta obserwacja skierowała mnie do próby nadużycia tego interfejsu w sposób, którego producent najwyraźniej nie przewidział. Przeglądając dostępne obiekty i procedury API, szybko okazało się, że jedna z nich umożliwia wykonywanie poleceń na poziomie systemu operacyjnego (procedura exec z obiektu file). W praktyce oznaczało to dostęp do powłoki systemowej i możliwość wykonania pełnego zrzutu systemu plików urządzenia.
Przykładowe wywołanie API ubus:
$cmdPayload = @{
jsonrpc = "2.0"
id = 1
method = "call"
params = @(
$SessionToken,
"file",
"exec",
@{
command = "whoami"
}
)
}
Invoke-RestMethod -Uri https://$RouterIP/ubus -Method Post -Body $cmdPayload -ContentType "application/json"
W tym momencie analiza weszła w kolejny etap. Posiadając kompletny obraz systemu, możliwe stało się spokojne przyjrzenie się rozwiązaniom dodanym przez producenta – w szczególności skryptom i mechanizmom, które nie są częścią standardowej dystrybucji OpenWRT. To właśnie w tych elementach ujawniły się problemy, które w kolejnych krokach doprowadziły do pełnego zdalnego wykonania kodu.
Podczas analizy natrafiłem na skrypt powłoki odpowiedzialny za obsługę obiektu ubus kaonsessionhelper, służący do tworzenia sesji ubus po zalogowaniu się do panelu WWW.
Skrypt ten zawierał zaszyte na stałe poświadczenia systemowego użytkownika:



Stałe poświadczenia zaszyte w firmware urządzenia umożliwiały utworzenie sesji ubus przy użyciu procedury login obiektu session. Co istotne, proces ten nie wymagał znajomości poświadczeń abonenta ani dostępu do jego panelu administracyjnego. W praktyce dawało to pełny dostęp do API, a w konsekwencji — pełną kontrolę nad urządzeniem.
Interfejs ten dostępny jest za pośrednictwem usługi HTTP (port 80 i 443). Domyślnie usługa ta udostępniana jest wyłącznie w sieci lokalnej (LAN), jednak znane są przypadki, w których użytkownicy wystawiają ją również na interfejs WAN.
W związku z powyższym odkryciem:
Kolejne etapy komunikacji wyglądały następująco:
Na tym etapie warto podkreślić rolę CERT Polska, który odpowiadał za koordynację procesu obsługi podatności oraz komunikację z producentem i dostawcami Internetu (ISP) za co serdecznie dziękuję.
12 stycznia 2026 roku postanowiłem zweryfikować skuteczność wprowadzonych poprawek.
Analiza wykazała, że:
W praktyce oznacza to, że podatność nie została usunięta w sposób trwały, a jedynie częściowo zamaskowana. Z tego powodu uznałem poprawkę za nieskuteczną. Informacja o nieskuteczności poprawki została przekazana do CERT Polska.
Na tym etapie naturalnie pojawia się pytanie:
W jakim stopniu producenci i operatorzy są w stanie zadbać o bezpieczeństwo urządzeń, które trafiają do milionów użytkowników?
Nie jest to pytanie z tezą. Model biznesowy operatorów, skala wdrożeń, długie cykle testowe oraz zależności pomiędzy producentem a dostawcami usług powodują, że proces reagowania na podatności bywa długi i skomplikowany.
Ostateczną ocenę pozostawiam czytelnikowi.
Kto by pomyślał, że 15 minutowy black-out routera może zaprowadzić do podatności?
Na podstawie powyższych doświadczeń warto rozważyć architekturę, w której router dostarczony przez operatora pełni jedynie rolę modemu lub urządzenia dostępowego, a właściwą bramą sieciową jest własny, zarządzany przez użytkownika router. Co ważne router powinien pochodzić od renomowanego producenta lub takiego który umożliwia wgranie alternatywnego oprogramowania np. OpenWRT.
Takie podejście ma kilka istotnych zalet:
Posiadając własny router:
Własny router to:
Router operatora:
Własny router:
Dodatkowa warstwa routingu umożliwia:
Natomiast jak każde rozwiązanie to również ma swoje wady o których warto wspomnieć:
Dwa urządzenia to:
Efekt:
Debugowanie problemów sieciowych jest trudniejsze.
Natomiast możemy przeciwdziałać niektórym wadom w zależności od możliwości:
Opisana historia pokazuje, że zaufanie do dostawcy usługi nie zawsze idzie w parze z realną kontrolą nad urządzeniem, które staje się bramą do naszej sieci. Problem polega na tym, że użytkownik końcowy ma bardzo ograniczony wpływ na jego konfigurację, aktualizacje i sposób reagowania na podatności. Skutki takiego modelu stają się szczególnie widoczne, gdy spojrzymy na dane dotyczące podatnych urządzeń obecnych w publicznej przestrzeni Internetu.
Według danych z zoomeye.ai w polskich sieciach nadal widocznych jest około 300 podatnych routerów. Każdy z nich to potencjalny element cudzej infrastruktury – węzeł botnetu, punkt przesiadkowy lub punkt do dalszych ataków. Najczęściej bez wiedzy i świadomości jego właściciela. Przykładem realnej kampanii, która pokazała jak taka infrastruktura może wyglądać w praktyce, jest botnet AyySSHush, opisany przez zespół GreyNoise Labs na początku 2025 roku. W ramach tej operacji cyberprzestępcy wykorzystali luki w oprogramowaniu routerów ASUS do utworzenia ukrytego dostępu SSH w tysiącach urządzeń, a analizy Censys i innych narzędzi wskazały ponad 9 000 faktycznie przejętych routerów na całym świecie.
Własny router, umieszczony za urządzeniem operatora, nie jest gwarancją bezpieczeństwa, ale pozwala odzyskać coś znacznie ważniejszego: kontrolę nad tym, co dzieje się w naszej sieci, a od kontroli zaczyna się świadome bezpieczeństwo.
~Piotr Ługowski
Tylko i wyłącznie swój router, routery od operatorów to totalna masakra, 0 konfiguracji, 0 bezpieczeństwa, byle klientowi yt, fb i netflix działały.
Mając router tylko od dostawcy neta to jednocześnie dostawca neta ma tak na prawdę kontrolę nad naszą siecią, widzą jakie urządzenia się podłączają do wifi, widzą nazwe i hasło do wifi, nawet jak kl zmieni na swoje to i tak mogą je sprawdzić, mogą zmieniać większość ustawień, zdalnie zrestartować czy przywrócić ustawienia fabryczne, generalnie mogą wszystko to co użytkownik, a nie raz jeszcze więcej :) – jestem byłym pracownikiem jednego z dużych ISP :)
Dodatkowo nie raz na routerze od dostawcy są wymuszone jego DNS-y
Przełączając router w tryb bridge operator traci dostęp do większości informacji w systemie, więc najlepiej przełączać go w bridge lub jeśli dany operator to oferuje to samo ONT (jeśli mówimy o światłowodzie oczywiście)
A już nie mówiąc, że niektórzy operatorzy np T-mobile tak ograniczają routery, że samemu nawet nie da się oddzielić 2.5 i 5 GHz – trzeba z tym dzwonić na infolinię
Dostawcy neta potrafią mieć też różne wpadki, u mnie np router dostawcy kiedyś sam przywrócił ustawienia fabryczne (no albo zdalnie ktoś mu pomógł, tego już nie sprawdzę :D ) albo sama aktywowała się sieć WIFI która była wyłączona – zrobiło to się samo po aktualizacji sprzętu
A pomijając bezpieczeństwo – routery od operatora nie raz są bardzo słabe, inwestując w prywatny router z wyższej półki można przy okazji poprawić wydajność i stabilność sieci. Nie mówiąc już o zasięgu wifi który zazwyczaj jest kiepski w routerach operatora, wiadomo są wyjątki, ale zazwyczaj to dramat
Piotrze, to „samoczynne włączanie się WiFi” było w Liberty Global (marka UPC)? Jeżeli tak: celowe działanie. Mieli usługę, w której oferowali dostęp do internetu poprzez routery innych klientów (Wi-Free). Usługę tę każdy miał wykupioną domyślnie i trzeba było z niej zrezygnować, dzwoniąc na infolinię. Wtedy modem przestawał automatycznie resetować ustawienia i przywracać WiFi.
Z ich punktu widzenia oni „tylko naprawiali” usługę, którą „złośliwie uszkadzałeś” wyłączając WiFi. :P Mnie przy okazji prób dogrzebania się do dna poinformowano, że celowe i powtarzające się wyłączanie WiFi „może być potraktowane” jako zakłócanie pracy system komputerowego, za co grozi odpowiedzialność karna.
To powinno być dla nas dodatkowym przypomnieniem. To plastikowe pudełko od ISP jest ich wyłączną własnością i częścią ich wewnętrznej infrastruktury. „Konfiguracja” to jest forma „uprzejmości” z ich strony. Uprzejmości, która u wielu konsumentów zaciera granicę i wynikającą z niej świadomość swojej pozycji.
Akurat to mi się w Netii przytrafiło :/
Ale UPC też miałem, i tą usługę wifi-free miałem całkowicie wyłączoną. Generalnie paru operatorów już przerobiłem i nic tylko prywatny router, już pomijając bezpieczeństwo, stabilność, kontrolę itd to taka prosta sprawa, jakaś awaria od operatora trzeba przywrócić ustawienia fabryczne na routerze operatora, albo wymienić router bo internet szwankuje, jak mamy tylko router od operatora to czeka nas konfiguracja wszystkiego od 0, a tak to wrzucasz tryb bridge na routerze od operatora, wpinasz swój router i działa
Rurki miedziane na antenki, albo całe urządzenie do puszki – i niech sobie włączają ;-)
Własny router pomaga nieco również na nadmierną ciekawość dostawców. Vectra liczy sobie dopłatę za brak udostępniania ruchu podmiotom trzecim. Czy w takim razie będą również analizować ile abonent ma urządzeń, jakich i jak rozkłada się od nich ruch? Mając podwójny NAT operator może zgadywać i to całkiem skutecznie. Nie ma już jednak pełnych danych na tacy, co czyni je znacznie mniej wartościowymi dla brokerów.
Dobra robota !
Dziękuję w imieniu nieświadomych lamerów ;)
No wiec… Jak raz chciałem od operatora światłowodu router wifi to dowiedziałem się że nie będę miał w ogóle dostępu do zarządzania nim (czyt. Panelu) bo… Uwaga! Mógłbym zakłócać im całą infrastrukturę… Chińskim i badziewnym routerem.
cytuję:
Posiadając własny router:
(…)
mamy możliwość szybkiego reagowania na nowe podatności,
koniec cytatu
Ale bzdura! Nie masz co robić, tylko co dzień to sprawdzasz? Rodzice i dziadkowie też?
Chcesz być bezpieczny, to nie wystawiaj żadnego portu na zewnątrz. To się robi jeden jedyny raz.
Bzdury to Ty wypisujesz.
Można ustawić aktualizacje automatyczne, powiadomienia (np. e-mail), ustawić skrypty.
Wcześnkej zadbać o backup konfiguracji i ew. danych (np. logów).
Można chociażby zapisać się do newslettera producenta, aby informował o aktualizacjach (mail, RSS).
Opcji jest wiele. Jak ma się swój sprzęt to samemu trzeba o niego dbać, ale to nie znaczy, że trzeba wszystko tobić ręcznie.
Jako ciekawostkę dorzucę swoje własne doświadczenia. Minęło już trochę czasu i mogę pomylić drobne detale, więc dla uniknięcia postawienia kogoś w zbyt dobrym lub złym świetle, nie wskażę konkretnych firm. Mowa o jednym z głównych ogólnopolskich ISP, i konsumenckiej marce jednego z największych producentów sprzętu sieciowego. Jako kontekst: zapytania ze skryptów i formularzy szły wtedy na adresy LAN we wszystkich przeglądarkach bez problemu i bez ograniczeń.
Wszystkie formularze do zmiany ustawień mają CSRF. Ok, wymaga bycia zalogowanym, ale ominięcie tego to prosty social engineering. PoC przygotowany, działa (zmiana konfiguracji WiFi). Zgłosiłem do producenta. Zero reakcji. Zgłosiłem do ISP. Odpowiedź generalnie bezsensowna, w stylu „stosujemy najwyższej klasy zabezpieczenia skryptami jawy”. Musiało jednak dotrzeć do właściwego działu, bo po jakimś czasie zobaczyłem poprawkę. Poprawka polegała na tym, że dodali pole z nazwą “csrf” w formularzach. Pole… po prostu jest, bez wartości. Sprawdzają, czy jest obecne w zapytaniu, ale tylko tyle. Ponowne zgłoszenie, ta sama ścieżka. Kolejna poprawka: pole ma losową wartość. Losową, tzn. wylosowali raz i na twardo wpisali. Pozostaje to samo na zawsze we wszystkich modemach. Kolejna poprawka… pole zmienia się, ale to jakiś żart jeśli chodzi o zbiór wartości. Nawet nie siliłem się na analizę kryptologiczną, czy te wartości nie pochodzą przypadkiem ze zwykłego LCG albo nie są np. zamaskowanym czasem zapytania. To był zbiór do przeszukania w ciągu kilku minut nawet na jednym modemorouterze.
Dałem sobie spokój z tematem. Niedługo potem, przy wymuszonej ogólnokrajowej zmianie parametrów łącza, zmienili producenta na Chińskiego Compala i tam już takich cyrków nie było.
Ja od zawsze idę w wariant bridge i własny router – jedyny minus: jeśli jest IPTV to operatorzy pozostawiają je tylko na swoim urządzeniu (jest tylko kabel, bez wifi).
Jest to w pewnym sensie zrozumiałe (nie chcą się tłumaczyć za problemy z odbiorem, które nie muszą być spowodowane ich urządzeniami a routerem klienta) – tym niemniej jest to męczące…
Dlatego operatorzy powinni pozwalać użytkownikom na wykorzystywanie swoich własnych routerów zamiast tych należących do operatorów Internetu, jak jest chociażby w Niemczech. Od dawna stara się o to Free Software Foundation Europe, zob. https://fsfe.org/activities/routers/routers.en.html .
Name and shame – czyżby chodziło o urocze urządzenia KAON wydawane przez Playa do łącz HFC/FTTH, te, które mają bridge w ustawieniach, ale on nie działa? ;)
W opisie CVE jest model i wersja oprogramowania, można sprawdzić na swoim routerze czy to to :)
Vectra ma takie routery