В этом году форум Positive Hack Days посетило более 5000 человек, большая часть которых — специалисты по информационной безопасности. Отличительная черта посетителей форума — нестандартный склад ума и сверхинтуиция по многим техническим вопросам. Все эти качества можно было проявить в хакерских конкурсах, которые приготовили организаторы, одним из таких был конкурс по взлому IP-камер CAMВreaker. Удалось ли кому-то справиться со всеми поставленными испытаниями — в нашей статье.
Каждый участник мог примерить на себя роль взломщика камер видеонаблюдения и попробовать получить несанкционированный доступ к различным IoT-устройствам и разобрать исходный код прошивок в поисках различных уязвимостей. Наградой за все старания были интересные и полезные призы от организаторов.
Подготовка к конкурсу началась за два месяца до начала мероприятия, и честно скажем — было непросто. Она состояла из нескольких этапов:
- Выбор камер для конкурса.
- Ревизия камер на версионность прошивок, программное обеспечение, предлагаемое для работы с ними, а также их работоспособность.
- Получение прошивок (микропрограммное обеспечение) каждой камеры. Оно осуществлялось несколькими методами:
- Перехват прошивки во время обновления камеры через приложение Android.
- Скачивание с официального сайта производителя.
- Через подключение к устройству с помощью Telnet.
- Через подключение к устройству с помощью интерфейса UART. Для справки: протокол UART (universal asynchronous receiver transmitter), или УАПП (универсальный асинхронный приемопередатчик) — старейший и самый распространенный на сегодняшний день физический протокол передачи данных. Наиболее известный протокол семейства UART — RS-232 (в народе – COM-порт).
- Подключение программаторов к Flash-чипам, установленным внутри камеры, с помощью зажима-прищепки без выпаивания электронных компонентов устройства.
- И, пожалуй, самый трудоемкий процесс извлечения дампов — выпаивание и вычитывание чипов с помощью программатора.
- Настройка статических IP-адресов и данных аутентификации на самих устройствах.
- Проектирование, построение локальной сети для стенда конкурса.
- Настройка и конфигурация стенда в demo-среде.
Вот несколько фотографий, сделанных в процессе подготовки:
Процесс извлечения данных из чипа с помощью программатора CH341A
Плата одной из камер
Программатор и его друзья :)
Некоторые чипы все же пришлось выпаивать из-за особенностей схемы включения
Стенд cостоял из жесткого каркаса, на котором были установлены 11 камер и несколько свитчей. Для участников была развернута беспроводная сеть, а также предусмотрен один свободный свитч с патчкордами для подключения к сети.
Стенд
Большой брат следит за… братьями поменьше
FTP-сервер работал на держащем всю сеть роутере, с которого участники могли получить прошивки камер. Адреса, учетные данные, серийные номера и прочие данные камер были достоянием общественности — зайти можно было на любую из них.
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.
Павел и Иван получили свои заслуженные призы.
Награждение: Павел Черепанов
Награждение: за Ивана Анисеню приз получил Георгий Зайцев