Домофоны, СКУД… И снова здравствуйте

от автора

Доброго времени суток, дорогие читатели. Однажды, я уже писал здесь об уязвимости в контроллерах СКУД от IronLogic. Подробнее — здесь. Там уязвимость заключалась (и заключается, так как инженер IronLogic считает, что «Уязвимость некритична, исправлять не будем.») в программном баге прошивки z5r. Здесь же я хочу поделиться другим исследованием, на этот раз уязвимость присутствует в сервисе облачного видеонаблюдения и домофонии от «Орион Телеком» и «Росдомофон». Чудо называется «Домофон 2.0» (впрочем у «Росдомофона» есть и собственный одноименный бренд), и внедряется (по крайней мере в Красноярске) с начала 2020 года. Осторожно, много фото.

Удобно - да. Безопасно ли?
Удобно — да. Безопасно ли?

В отличии от аналогичного решения от «Дом.ру», «Домофон 2.0» не требует замены домофонной панели и инфраструктуры, просто устанавливается камера и небольшой модуль (на основе Raspberry Pi, как ни странно), и вуаля — вы можете управлять открытием/закрытием двери, принимать звонки с домофона прямо на смартфон, смотреть камеры и так далее. Лично мне стало интересно как оно работает, и я зарегистрировался в приложении, ввел логин и пароль от аккаунта «Орион», и все заработало. Однако я захотел выловить RTSP-поток с камеры возле домофона для домашней телестенки, и я полез анализировать приложение. Первое, что пришло на ум — Wireshark. Отлично, ссылка вида «rtsp://rdva10.rosdomofon.com:554/live/%НОМЕР_КАМЕРЫ_В_СИСТЕМЕ%» есть, но удаленная сторона потребовала логин-пароль. Сложнее — Wireshark говорит что аутентификация типа Digest, и пароль с логином в открытом виде не мелькают. Сформируем список задач:

  • Перехватить данные передаваемые приложением и обратно

  • Понять, как приложение передает служебные команды

  • Понять, откуда берется связка логин-пароль

Вооружаемся декомпилятором, Android Studio, и виртуальной машиной, качаем .apk-версию приложения, разбираем. Узнаем, что приложение обращается только к двум адресам при запуске — rdva.rosdomofon.com, и log.rosdomofon.com:12202/gelf, общение происходит по протоколу HTTP, и дальнейшие инструкции приложение берет оттуда. И тут мне пришло в голову запустить приложение в Bluestaks и мониторить logcat. Вот тут-то и начинается самое интересное. Логин-пароль я нашел минуты за полторы, но тут мелькали и токены, и точные HTTP-запросы.

Вывод logcat’а
Все оказалось намного проще.
Все оказалось намного проще.

Однако, не было бы этого поста, если бы я не полез экспериментировать далее. С помощью инструмента Postman я отправлял запросы и обнаружил, что удаленная сторона даже не проверяет User-Agent приложения. И я обнаружил интересный момент, что при регистрации номера телефона и адреса в приложении, оно в открытом виде взаимодействует с ресурсом «https://panel.rosdomofon.com/«. Логин и пароль, который мне удалось извлечь, я публиковать не буду, а сразу перейду к сути того, что мне удалось получить доступ фактически к административной панели сервиса. И я не удержался — набросал скрипт, который по моим прикидкам может открыть любую дверь, подключенную к этому сервису. Демонстрация работы — ниже.

Запуск и установка параметров скрипта

В качестве параметров указано -a, что означает что все будет выполнено в автоматическом режиме, -rs, указывает на то, что после закрытия приложения «Росдомофон» аккаунт будет автоматически удален, и адрес в формате «Город. Улица. Дом. Подъезд. Квартира.» Скрипт автоматически получит необходимые данные и зарегистрирует нового пользователя в системе с указанием введенного адреса, после чего сгенерирует конфиги для родного приложения и запустит его с аккаунтом для выбранного адреса.

Результат

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

Готово.
Готово.

Суммируя вышесказанное: любая система может быть скомпрометирована — безусловно. Но когда разработчик ленится дорабатывать механизмы защиты так, что в открытом виде может утечь такая чувствительная информация, как логин и пароль администратора, то (на мой взгляд, и думаю все же не только мой) — это уже перебор. Позже, выложу ссылку на видеодемонстрацию обхода защиты данным методом.

Ссылка на репортаж

UPD. Ссылка на видеодемонстрацию.

ссылка на оригинал статьи https://habr.com/ru/post/518328/


Комментарии

Добавить комментарий

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