Реверс-инжиниринг IP-камеры (часть 3): Заставь ее говорить на моем языке

Опубликовано TheJoe на

Приблизительное время чтения: 5 минут

Однажды ты просыпаешься, вы смотрите на старое устройство, которое много лет лежит в ящике стола — в моем случае IP-камера с славным, но упорным чипом HiSilicon hi3510 – и решить, что пришло время сделать все правильно. Ты говоришь себе: “Больше никаких проприетарных облаков, больше никаких сомнительных приложений на вашем смартфоне. Сегодня настроил сохранение видео по FTP прямо на локальном компьютере.”. Немного выбора’ обязательный, еще и потому, что поддержка этих устройств часто прекращается “облако” в течение нескольких месяцев после их выхода на рынок.

В моем случае вместо ПК с Linux я буду использовать сервер Linux.. Открыть медиа-хранилище (Ом) — это дистрибутив на основе Debian, который позволяет мне управлять файлами и общими ресурсами так же легко, как с помощью NAS.. У меня также есть возможность запустить Docker и любую службу, которую он поддерживает.… и тогда это линукс: В моем распоряжении все инструменты, с которыми я знаком.

Есть только один маленький, огромная проблема: в настройках этой камеры нет записи, касающейся FTP. Голос в моей голове подсказывает мне: “Привет, один момент… Я не нашел свой голос FTP в файлах конфигурации?” На самом деле это так, но в интерфейсе камеры нельзя ввести сервер назначения, ты не можешь изменить имя пользователя, пароль от порта.

“ОК, эта камера имеет адрес FTP-сервера в одном из файлов конфигурации, FTP-порт и пара учетных данных, но в интерфейсе ничего не видно. Так эта камера использует FTP или нет? И он этим пользуется… что это передает? Где вещает? Как это передает?”

Устройство представляет собой черный ящик, и FTP, вероятно, запрограммирован китайским производителем для упаковки видео и отправки их напрямую и только на удаленные серверы через проприетарное приложение..

Фантастический! Так начинается одно из тех классических ночных приключений с открытыми терминалами., сетевые пакеты, перехваченные на лету, и часы, потраченные на создание реверс-инжиниринг на прошивке, которая не хотела сотрудничать. Если вы тоже попали в ловушку кодов ошибок китайских камер, вот как я вышел живым.


Первое препятствие: Великий обман DNS (Ошибка -2)

Первое, что вы делаете, когда устройство не подключается, — это проверяете файлы конфигурации.. Скачав файл config_action.ini камеры, появилась первая нелепая деталь: прошивка полностью игнорируется локальный IP-адрес NAS, который я ввел на экране. Это было написано в его коде, твердый как мрамор, что для проведения каких-либо тестов камера должна была сначала связаться с сервером материнской компании: www.myidoorbell.com. Излишне говорить, что этого сайта больше не существует.… но камера этого не знает.

Пока камера не получила ответ с этого веб-адреса, FTP-тест даже не начался, выплевывая общую ошибку -2 (хост недоступен), или, по крайней мере, я так думал.

Как решить? я использовал Главная страница AdGuard (локальный DNS, как и другие) чтобы создать собственное правило перезаписи DNS. Я сказал своему маршрутизатору: “Сенти, когда камера ищет www.myidoorbell.com, Не отправляйте это в Интернет. Дай ей IP моего OMV. (192.168.5.10)”.

В этот момент камера проглотила наживку. Но ошибка стала другой.


Второе препятствие: Грязный синтаксис и тихие журналы (Ошибка -3)

Фиксированный DNS, код ошибки камеры прошел мимо -2 а -3. Один шаг вперед, некоторые, но возникла неприятная проблема: FTP-сервер OpenMediaVault (ПроФТПД) это не показывалось абсолютно ничего здесь журнал. Полная пустыня.

Ищем в недрах прошивок HiSilicon, оказывается, эти чипы отправляют FTP-команды с синтаксисом “грязный”, добавление случайных пробелов в конец строк. Чтобы переварить этот материал, Мне пришлось создать собственный файл конфигурации для ProFTPD. (/etc/proftpd/conf.d/cam_fix.conf) вставка некоторых директив допуска, включая:

MultilineRFC2228 on
ServerIdent on "Ready"

Это очистило сообщения, но тест продолжал проваливаться с ошибкой -3 e ProFTPD остается неизменным. почему?


Il “Босс Финал”: Перехват с помощью tcpdump

Когда логи ПО врут или молчат, есть только одно дело: слушать напрямую сетевые кабели. Я открыл терминал OMV и запустил последнюю диагностическую команду для перехвата трафика камер.:

sudo tcpdump -ni any host 192.168.5.125

Я повторил тест, и место преступления появилось в реальном времени.. Камера стучалась в дверь 21 (FTP), сервер ответил, что готов, камера отправила имя пользователя, и в этот момент сервер захлопнул дверь перед ее носом этим сообщением:

FTP: 550 Richiesto SSL/TLS sul canale di controllo

Тайна раскрыта! По умолчанию, последние версии OpenMediaVault (Сегодня я расскажу вам о) настроен на шифрование и безопасность FTP-соединений (FTPS). Но старый чип камеры, быть элементарным, он вообще не поддерживал шифрование и говорил только по классическому FTP с открытым текстом.. Ощущение отклонения соединения из-за отсутствия TLS, камера мгновенно закрыла сеанс, даже предотвращение записи входа в системные журналы.

Смотри сюда:  Fotoxx, редактор изображений

Все, что потребовалось, — это зайти на панель управления OMV., отключить требование TLS/SSL в настройках FTP-сервиса (разрешение незашифрованного трафика в локальной сети) и перезапустите демон.

В конце концов, последний штрих: из дампа пакета я заметил, что камера обрезала пароль до soli 8 символы, игнорирование последующих пробелов, генерируемых ошибкой собственной веб-панели. Я привел пароль пользователя Linux на OMV в соответствие с этими 8 точные символы с sudo chpasswd е…

HTTP/1.1 200 OK -> result="0"

Виттория! Камера зарегистрирована, записал свой тестовый файл в общую папку и закрыл сессию. Контроль наконец-то стал моим.


Необходимое размышление: Кому принадлежат наши данные?

Эта ночная игра, а также удовлетворение от того, что я подчинил оборудование своей воле, это оставило у меня глубокое чувство беспокойства.

Вы помните три начальных вопроса? Они были “Что это передает?”, “Где вещает?” е “Как это передает?”.

Подумайте об этом тщательно. Покупаем блестящую электронику, часто привлекают низкие цены и аккуратно оформленные коробки.. Мы отбрасываем их, мы подключаем их к розетке и устанавливаем приложение, которое просит нас создать еще одну облачную учетную запись. В тот самый момент, мы пробираемся в наши дома, в наших комнатах, перед нашей семейной близостью, электронный глаз, управляемый “Мистер Никто”.

В ходе этого анализа мы обнаружили две пугающие вещи об этом устройстве сомнительного происхождения.:

  1. Нулевой консенсус, нулевая прозрачность: Даже если вы настроите камеру для локальной работы, прошивка запрограммирована на обход вашего выбора и отправку данных на удаленный сервер (www.myidoorbell.com) находится черт знает где, без того, чтобы пользователь когда-либо подписывал или понимал реальное согласие на управление этим трафиком..
  2. Полное отсутствие безопасности: Камера утверждала, что отправляет видеопотоки и учетные данные для входа через FTP-соединение. совершенно ясно, не зашифрован. Это значит кто угодно, по цепочке интернет-узлов между нашим домом и китайским сервером, мог бы перехватить, смотрите и сохраняйте наши видео без каких-либо усилий.

Суверенитет данных не является абстрактной концепцией для веб-философов.; это сознательное решение забрать ключи от собственного дома. Потратьте час на настройку локального сервера, заставить своенравный кусок кремния работать по нашим правилам и изолировать его от интернета меня позабавило, но это не просто ботанское времяпрепровождение. Это единственный оставшийся способ провести непреодолимую границу между нашей частной жизнью и непрозрачностью технологического рынка, который хочет, чтобы мы были постоянно прозрачными., отслеживаемый и уязвимый.

Когда вы покупаете следующую технологию, тщательно подумайте о том, что может стоять за ней., ведь сегодня есть не только камеры наблюдения, но умные глазки, камеры встроены в лампочки под крыльцом, камеры на машинах, камеры на роботах-пылесосах. Мы очень доверяем всем этим производителям?


TheJoe

Я держу это в качестве хобби блог от 2009. Я графики энтузиастов, технология, Программное обеспечение с открытым исходным кодом. Среди моих статей не будет трудно найти о музыке, и некоторые личные размышления, но я предпочитаю, чтобы направить линию блога в основном технологии. Для получения дополнительной информации связаться со мной.

0 Комментарии

оставьте ответ

Заполнитель аватара

Ваш электронный адрес не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатывается комментарий данных.