TP-Link – root bez uwierzytelnienia – urządzenia Archer C20i oraz C2

08 lipca 2016, 10:20 | Aktualności | komentarze 2
Tagi: , ,
: zin o bezpieczeństwie - pobierz w pdf/epub/mobi.
TL;DR – możliwość nieuwierzytelnionego wykonywania poleceń jako OS root w dość nowych urządzeniach TP-Link: Archer C20i oraz Archer C2.
Informacje poniżej prezentowane są jedynie w celach edukacyjnych.

Jeśli ktoś jest nowy w temacie podatności na TP-Linkach, warto zobaczyć moje poprzednie badanie (można zacząć od tego, a mięso – tutaj).

Tym razem na warsztacie mamy 2 urządzenia – oba to w dość nowe modele zapewniające komunikację w standardzie WiFi 802.11ac:

tp-u1

Archer C20i

c2

Archer C2

Historia jest dość prosta: na początek przechwycimy request HTTP wykonywany przez urządzenie w momencie uruchamiania funkcji ping:

tp1

Warto zwrócić uwagę, że login i hasło wymagane do wysłania tego requestu są zakodowane w Base64 (nagłówek Cookie). Co się jednak stanie jeśli nie podam danych uwierzytelniających? Otrzymam odpowiedź z kodem 403 Forbidden:

tp2

Jednak… można do requestu dołożyć nagłówek Referer z wartością będącą adresem urządzenia (prywatnym lub publicznym) i w ten sposób… ominąć uwierzytelnienie (error 0 na zrzucie poniżej oznacza…brak błędu :)

tp3

Jak wykonać wstrzyknięcie kodu w OS? Tak:

tp4

Tylko ten request nic nie wykonuje… urządzenie się nie rebootuje. Żeby kod się wykonał potrzebny jest drugi (również nieuwierzytelniony) request http:
tp6

Jak widać response już nie przychodzi… A tymczasem ping zachowuje się tak:

tp5

Na koniec – jak uzyskać już interaktywnego roota? Prosty PoC wygląda tak (z inżynierami TP-Linka potwierdziłem, że wstrzyknięcie kodu działa również przez Internet – jeśli panel administracyjny jest wystawiony na publicznym adresie IP):

tp-shell0

tp-shell11

tp-shell1

c.d.n

Historia zgłoszenia:

  • 18.02.2016 – pierwsze zgłoszenie do TP-Link Polska
  • 22.03.2016 – testy lokalne na przesłanym przez TP-Link urządzeniu (najnowszy dostępny firmware)
  • 23.03.2016 – testy przez WAN na urządzeniu udostępnionym przez TP-Link
  • 19.05.2016 – wypuszczenie poprawki firmware

Podziękowania też dla inżynierów TP-Link Polska za miłą i sprawną współpracę podczas obsługi zgłoszenia.

–Michał Sajdak, pentester w Securitum.

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



Komentarze

  1. hakur

    meh, też tak umiem
    już mogłeś pokazać zdalny upload busyboxa, z dostępem fizycznym to się mija z celem

    Odpowiedz
    • Jak napisałem – c d n – poza tym nie ma co dawać scripkiddym za dużo paliwa. Poza tym jak jesteś uważny zapewne zauważysz tam proces dropbear – więc nawet nie bardzo trzeba cokolwiek uploadować ;-)

      Odpowiedz

Odpowiedz