Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
TP-Link – root bez uwierzytelnienia – urządzenia Archer C20i oraz C2
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:
Historia jest dość prosta: na początek przechwycimy request HTTP wykonywany przez urządzenie w momencie uruchamiania funkcji ping:
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:
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 :)
Jak wykonać wstrzyknięcie kodu w OS? Tak:
Tylko ten request nic nie wykonuje… urządzenie się nie rebootuje. Żeby kod się wykonał potrzebny jest drugi (również nieuwierzytelniony) request http:
Jak widać response już nie przychodzi… A tymczasem ping zachowuje się tak:
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):
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.
meh, też tak umiem
już mogłeś pokazać zdalny upload busyboxa, z dostępem fizycznym to się mija z celem
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ć ;-)