[Информационная безопасность, Разработка под iOS, Разработка под Android, Реверс-инжиниринг, Аналитика мобильных приложений] Домофоны, СКУД… И снова здравствуйте

Автор Сообщение
news_bot ®

Стаж: 6 лет 3 месяца
Сообщений: 27286

Создавать темы news_bot ® написал(а)
09-Сен-2020 16:30

Доброго времени суток, дорогие читатели. Однажды, я уже писал здесь об уязвимости в контроллерах СКУД от 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, указывает на то, что после закрытия приложения "Росдомофон" аккаунт будет автоматически удален, и адрес в формате "Город. Улица. Дом. Подъезд. Квартира." Скрипт автоматически получит необходимые данные и зарегистрирует нового пользователя в системе с указанием введенного адреса, после чего сгенерирует конфиги для родного приложения и запустит его с аккаунтом для выбранного адреса.
РезультатКак можно увидеть, получен полный контроль над выбранным домофоном, и система принимает меня за жильца указанной в параметрах квартиры. Я могу открывать дверь, просматривать камеры, перехватывать домофонные вызовы в выбранную квартиру, словом объявленная безопасность у меня вызывает очень серьезные сомнения.
Готово. Суммируя вышесказанное: любая система может быть скомпрометирована - безусловно. Но когда разработчик ленится дорабатывать механизмы защиты так, что в открытом виде может утечь такая чувствительная информация, как логин и пароль администратора, то (на мой взгляд, и думаю все же не только мой) - это уже перебор. Позже, выложу ссылку на видеодемонстрацию обхода защиты данным методом.Ссылка на репортаж: https://tvk6.ru/publications/news/46335/UPD. Ссылка на видеодемонстрацию.
===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_informatsionnaja_bezopasnost (Информационная безопасность), #_razrabotka_pod_ios (Разработка под iOS), #_razrabotka_pod_android (Разработка под Android), #_reversinzhiniring (Реверс-инжиниринг), #_analitika_mobilnyh_prilozhenij (Аналитика мобильных приложений), #_skud (СКУД), #_domofon (домофон), #_bezopasnost (безопасность), #_informatsionnaja_bezopasnost (
Информационная безопасность
)
, #_razrabotka_pod_ios (
Разработка под iOS
)
, #_razrabotka_pod_android (
Разработка под Android
)
, #_reversinzhiniring (
Реверс-инжиниринг
)
, #_analitika_mobilnyh_prilozhenij (
Аналитика мобильных приложений
)
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 12-Май 07:51
Часовой пояс: UTC + 5