Конкурс CAMBreaker: как атаковали камеры видеонаблюдения

08.06.2018

В этом году форум Positive Hack Days посетило более 5000 человек, большая часть которых — специалисты по информационной безопасности. Отличительная черта посетителей форума — нестандартный склад ума и сверхинтуиция по многим техническим вопросам. Все эти качества можно было проявить в хакерских конкурсах, которые приготовили организаторы, одним из таких был конкурс по взлому IP-камер CAMВreaker. Удалось ли кому-то справиться со всеми поставленными испытаниями — в нашей статье.

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

Подготовка к конкурсу началась за два месяца до начала мероприятия, и честно скажем — было непросто. Она состояла из нескольких этапов:

  1. Выбор камер для конкурса.
  2. Ревизия камер на версионность прошивок, программное обеспечение, предлагаемое для работы с ними, а также их работоспособность.
  3. Получение прошивок (микропрограммное обеспечение) каждой камеры. Оно осуществлялось несколькими методами:
    • Перехват прошивки во время обновления камеры через приложение Android.
    • Скачивание с официального сайта производителя.
    • Через подключение к устройству с помощью Telnet.
    • Через подключение к устройству с помощью интерфейса UART. Для справки: протокол UART (universal asynchronous receiver transmitter), или УАПП (универсальный асинхронный приемопередатчик) — старейший и самый распространенный на сегодняшний день физический протокол передачи данных. Наиболее известный протокол семейства UART — RS-232 (в народе – COM-порт).
    • Подключение программаторов к Flash-чипам, установленным внутри камеры, с помощью зажима-прищепки без выпаивания электронных компонентов устройства.
    • И, пожалуй, самый трудоемкий процесс извлечения дампов — выпаивание и вычитывание чипов с помощью программатора.
  4. Настройка статических IP-адресов и данных аутентификации на самих устройствах.
  5. Проектирование, построение локальной сети для стенда конкурса.
  6. Настройка и конфигурация стенда в demo-среде.

Вот несколько фотографий, сделанных в процессе подготовки:

Процесс извлечения данных из чипа с помощью программатора CH341A

Процесс извлечения данных из чипа с помощью программатора CH341A

Плата одной из камер

Плата одной из камер

Программатор и его друзья :)

Программатор и его друзья :)

Некоторые чипы все же пришлось выпаивать из-за особенностей схемы включения

Некоторые чипы все же пришлось выпаивать из-за особенностей схемы включения

Стенд cостоял из жесткого каркаса, на котором были установлены 11 камер и несколько свитчей. Для участников была развернута беспроводная сеть, а также предусмотрен один свободный свитч с патчкордами для подключения к сети.

Стенд

Стенд

Большой брат следит за… братьями поменьше

Большой брат следит за… братьями поменьше

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

Hackers @ work

Hackers @ work

Попав в сеть и получив прошивки, участники сразу же начинают исследование

Попав в сеть и получив прошивки, участники сразу же начинают исследование

В первый день соревнования мы предложили конкурсантам решить непростое задание: найти уязвимость в камере, написать advisory по ее эксплуатации или работающий PoC-эксплойт. К сожалению, внушительная часть участников отсеялась, как только узнала о таких высоких требованиях. Но JTAGulator просто так не выиграешь!

Более стойкие часами изучали прошивки, восседая на удобных пуфиках. Файлы прошивок были заранее загружены на доступный из локальной сети конкурса FTP-сервер. Для исследования прошивок в поисках уязвимостей в ход шли самые разные инструменты: IDA Pro, Binwalk, Radare2, Strings, Wireshark, Tcpdump, Sqlmap, Burp Suite. «Не стоит прогибать сеть под изменчивый мир, пусть лучше она прогнется под нас», — возможно, так решили участники конкурса, генерируя сотни гигабайт трафика в процессе исследований.

В 13:37 — самое подходящее «хакерское» время — принесли пару кег холодного пива.

Охладиться во время соревнования можно было пивом

Охладиться во время соревнования можно было пивом

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

Участники конкурса

Участники конкурса

Зато во второй день пришли сразу два репорта о найденных уязвимостях. Первую из них в камере vstarcam-c16s нашел ИБ-специалист из Новосибирска Павел Черепанов. Вторая уязвимость была выявлена другим специалистом, Иваном Анисеней. В веб-форме аутентификации камеры MDC-N4090W-8 он нашел слепую SQLi, которая позволяет внедрить SQL-команды в параметр id и с помощью техники слепой эксплуатации извлечь из базы данных все логины и пароли (в том числе суперпользователя root).

Производители камер уведомлены обо всех найденных уязвимостях, а все разработанные участниками эксплойты так и остаются 0-day.

Павел и Иван получили свои заслуженные призы.

Награждение: Павел Черепанов

Награждение: Павел Черепанов

Награждение: за Ивана Анисеню приз получил Георгий Зайцев

Награждение: за Ивана Анисеню приз получил Георгий Зайцев