Zgłoszone w listopadzie 2017 roku cztery podatności (CVE-2017-15655, CVE-2017-15653, CVE-2017-15654, CVE-2017-15656) przez Błażeja Adamczyka (br0x) pozwalają osobie atakującej zdalnie uruchomić kod, który ujawni poświadczenia administratora routera. Począwszy od wersji oprogramowania AsusWRT 3.0.0.4.382.18495 możliwe jest:

CVE-2017-15655: w firmware w wersji 3.0.0.0.4.376.* i starszych zdalne wykonanie nieautoryzowanego kodu z uprawnieniami administratora, kiedy zalogowany użytkownik otworzy kilka podstron web-aplikacji do zarządzania routerem w przeglądarce. Atakujący znając publiczny adres IP sieci (logowanie do konfiguracji routera musi być włączone z zewnątrz) może wysłać poniższe polecenie curl, zastawiając tym samym pułapkę na administratora (który logując się do routera, spowoduje zapisanie hasła otwartym tekstem w pliku „.CSS”; patrz ostatni CVE-2017-15656):

$ curl 'http://routerIP:8080' -H "Host: xxxxxxxxxxxxxx $(for i in $(seq 1 9700); do echo -n " "; done)  \$(nvram show > /www/user/nvram.css )"

Atak możliwy jest do przeprowadzenia także z sieci lokalnej.

W kwestii tej luki producent odmówił załatania podatności starszym modelom (np. RT-N65R, RT-N65U), które zostały po prostu uśmiercone (cykl życia produktu został zakończony).

CVE-2017-15654: zaktualizowana i odporna na atak jest wersja firmware 3.0.0.4.382.18495. W przeciwnym wypadku podatność daje napastnikowi możliwość odgadnięcia identyfikatora tokenu sesji uwierzytelnionego użytkownika.

Co można z tym zrobić? […]

CVE-2017-15653: […] przejąć pełną kontrolę nad routerem. Podatność dotyczy niewystarczającej weryfikacji adresu IP użytkownika logującego się do panelu administratora routera. Tutaj napastnik do wykonania dowolnej akcji potrzebuje ID tokenu sesji z powyższej podatności. Jeżeli mu się uda to pozyskać, to oprogramowanie firmy ASUS nie będzie sprawdzało adresu IP logującej się osoby — napastnik omija mechanizm weryfikacji.

W opublikowanym PoC (proof of concept) atakujący pobiera aktualną konfigurację routera, nawet jeśli żądanie eksportu ustawień wysyłane jest z innego adresu IP niż zalogowany użytkownik:

curl "http://ROUTERADDRESS/s.CFG" -H "Cookie: asus_token=TOKEN" -H 'User-Agent: asusrouter-asusrouter-asusrouter-asusrouter'

CVE-2017-15656: wszystkie routery firmy ASUS przechowują hasła w postaci nieszyfrowanego tekstu w pamięci NVRAM. Mając możliwość wykonania zdalnego kodu możliwe jest uruchomienie polecenia „nvram show” (lub pobieranie i zdekodowanie pliku kopii zapasowej ustawień) oraz odczytanie hasła administratora.

Autor zgłoszonych podatności pisze tak:

Połączenie wszystkich podatności sprawia, że uzyskanie dostępu do routera jest łatwe: wystarczy poczekać na zalogowanie się administratora i pobranie loginu/hasła za pomocą tokenu. Na koniec można pobrać plik kopii zapasowej oraz odczytać login i hasło administratora z pliku „.CSS”.

Zalecamy aktualizację oprogramowania routerów ASUS tak szybko, jak to tylko możliwe. Producent udziela szczegółowych instrukcji.

Dr inż. Błażej Adamczyk jest wykładowcą na Politechnice Śląskiej, głównym architektem systemów IT w COI, ekspertem w dziedzinie bezpieczeństwa systemów IT i reverse engineering, bug hunter oraz zwolennikiem podejścia full/responsible disclosure. Specjalizuje się w technologiach wirtualizacji systemów i sieci komputerowych.

AUTOR:

Adrian Ścibor

Podziel się