Zdalne wykonywanie kodu na wielu modelach ruterów D-Linka

dodał 3 marca 2015 o 14:28 w kategorii Wpadki  z tagami:
Zdalne wykonywanie kodu na wielu modelach ruterów D-Linka

W tym tygodniu nie pisaliśmy jeszcze o błędach w domowych ruterach, a to już wtorek, więc czas nadrobić zaległości. Tym razem mamy dla Was trywialne wstrzykiwanie poleceń w licznych modelach ruterów D-Linka oraz TRENDnetu.

Zanim ruszycie do Shodana szukać obiektów do testów spieszymy poinformować, że interfejs administracyjny w większości opisywanych poniżej modeli jest domyślnie niedostępny z sieci publicznej. Nie eliminuje to oczywiście możliwości ataku – dostęp można włączyć lub wystarczy błąd typu CSRF. Przejdźmy jednak do rzeczy.

Ping jako uniwersalne narzędzie do wstrzykiwania poleceń

Błąd, odkryty niezależnie przez dwóch badaczy, leży w wielokrotnie już atakowanym poleceniu ping. Nie wiemy czemu, ale najwyraźniej zablokowanie możliwości wstrzykiwania dowolnych poleceń wraz z prostym pingiem leży poza zakresem możliwości większości programistów tworzących rozwiązania dla domowych urządzeń sieciowych. Tym razem trzeba oddać minimum honoru programiście – polecenie ping w wersji IPv4 nie jest podatne. Co innego jednak w przypadku wersji IPv6 – tu już wyobraźni komuś zabrakło. Polecenie

daje dostęp do powłoki systemowej. Oczywiście usługa ncc/ncc2 odpowiedzialna za polecenie ping działa z uprawnieniami roota, co oszczędza szukania kolejnego błędu w celu podniesienia uprawnień. Oczywiście skrypt ping.ccp dostępny jest bez potrzeby uwierzytelnienia, bo czemu pytać kogoś o hasło, skoro chce tylko wysłać pakiet ICMP. Czy to na pewno już rok 2015?

D-Link 810L

D-Link 810L

Więcej atrakcji

Choć powyżej opisany błąd jest najpoważniejszy, to nie jest jedyny. Dzięki skryptowi fwupgrade.ccp możemy bez uwierzytelnienia wgrać dowolny plik do katalogu /var/tmp. Co prawda brak uprawnień przekieruje nas do formularza logowania, ale plik i tak zostanie wgrany. Z kolei w /var/tmp znajdziemy na przykład konfigurację serwerów DNS, dzięki czemu możemy ją łatwo podmienić w taki oto sposób:

Do tego możemy jeszcze dołożyć całą garść funkcji diagnostycznych, które także umożliwiają przejęcie kontroli nad urządzeniem i które po prostu ktoś zapomniał usunąć. Szczegóły znajdziecie w oryginalnym raporcie.

Podatne modele

Autor odkrycia potwierdził istnienie powyżej opisanych podatności w następujących modelach:

  • D-Link DIR-626L (Rev A) – v1.04b04
  • D-Link DIR-636L (Rev A) – v1.04
  • D-Link DIR-808L (Rev A) – v1.03b05
  • D-Link DIR-810L (Rev A) – v1.01b04
  • D-Link DIR-810L (Rev B) – v2.02b01
  • D-Link DIR-820L (Rev A) – v1.02B10
  • D-Link DIR-820L (Rev A) – v1.05B03
  • D-Link DIR-820L (Rev B) – v2.01b02
  • D-Link DIR-826L (Rev A) – v1.00b23
  • D-Link DIR-830L (Rev A) – v1.00b07
  • D-Link DIR-836L (Rev A) – v1.01b03
  • TRENDnet TEW-731BR (Rev 2) – v2.01b01

Prawdopodobnie – bo na podstawie obrazów z oprogramowaniem – podatność może znajdowac się także w następujących modelach:

  • DIR-651A2 – v1.10NAb02
  • DIR-808LA1 – v1.03b05
  • DIR-810LA1 – v1.01b04
  • DIR-820LA1 – v1.02b10
  • DIR-826LA1 – v1.02b26
  • DIR-830LA1 – v1.00b07
  • DIR-836LA1 – v1.01b03
  • TEW-731BRV2 – v2.00b08
  • TEW-711BRV1 – v1.00b31
  • TEW-810DRV1 – v1.00b19 
  • TEW-813DRUV1 – v1.00b23

Powoli pojawiają się aktualizacje oprogramowania, jednak nie są jeszcze dostępne dla wszystkich modeli. Zalecamy zatem instalacje alternatywnego oprogramowania tam, gdzie to tylko możliwe.