Ещё больше про взлом автомобилей

1 year ago 148
BOOK THIS SPACE FOR AD
ARTICLE AD

Ранее в этом году мы смогли удаленно разблокировать, завести, определить местонахождение, мигать и сигналить любым удаленно подключенным автомобилем Honda, Nissan, Infiniti и Acura, совершенно неавторизованно, зная только VIN-номер автомобиля.

Вот как мы это нашли и как это работает:

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

Мы думали, что, вероятно, существует компания, которая предоставила телематические решения нескольким автопроизводителям.

Изучая эту версию, мы постоянно встречали ссылки на SiriusXM в исходном коде и документации, касающейся телематики транспортных средств.

Это было очень интересно для нас, потому что мы не знали, что SiriusXM предлагает какие-либо функции удаленного управления транспортными средствами, но, как оказалось, они есть!

Мы нашли веб-сайт SiriusXM Connected Vehicle и заметили следующую цитату:

“[SiriusXM] is a leading provider of connected vehicles services to Acura, BMW, Honda, Hyundai, Infiniti, Jaguar, Land Rover, Lexus, Nissan, Subaru, and Toyota.”

Столько брендов под одной крышей!

На этом этапе мы начали сканирование и прочесывание Интернета, в попытках найти как можно больше доменов, принадлежащих SiriusXM, а также дополнительно разобрали все мобильные приложения клиентов SiriusXM, чтобы увидеть, как на самом деле работает удаленное управление.

В ходе этого процесса мы обнаружили домен «telematics.net» и начали расследование. Из того, что мы обнаружили, стало понятно, что он обрабатывает услуги по регистрации транспортных средств в функциях удаленного управления SiriusXM.

Обратившись к этому домену, мы обнаружили большое количество ссылок на него в приложении NissanConnect и решили копнуть как можно глубже.

Мы связались с кем-то, у кого был Nissan, вошли в его учетную запись, а затем начали проверять HTTP-трафик.

В частности, был один интересный HTTP-запрос: конечная точка “exchangeToken" возвращала токен доступа, зависящий от предоставленного "CustomerID".

Во время фаззинга мы удалили параметр “vin", и запрос все еще работал. Казалось, что его волновал только "CustomerID".

Формат параметра «CustomerID» был интересен, поскольку к идентификатору был добавлен префикс «nissancust» вместе с заголовком «Cv-Tsp», в котором указывалось «NISSAN_17MY». Когда мы меняли любое из этих входных значений, запрос не выполнялся.

Пытаясь быть дерзкими, мы выбрали очевидный IDOR и изменили параметр «customerId» на идентификатор клиента другого пользователя. Это не сработало и дало нам ошибку авторизации.

Не совсем удовлетворенные, мы оставили эту конечную точку в покое и начали изучать другие конечные точки.

Несколько часов спустя в одном из HTTP-ответов мы увидели следующий формат VIN-номера:

vin:5FNRL6H82NB044273

Этот формат vin был очень похож на префикс «nissancust» из предыдущего HTTP-запроса. Что, если мы попытаемся отправить идентификатор с префиксом VIN в качестве идентификатора клиента?

Он вернул «200 OK» и bearer token! Это было интересно, мы генерировали некоторый токен, и он индексировал произвольный VIN в качестве идентификатора.

Чтобы убедиться, что это не связано с JWT нашего сеанса, мы полностью удалили параметр Authorization, и он все еще работал!

Мы взяли этот токен и использовали его в HTTP-запросе для получения профиля пользователя и это сработало!

Ответ содержал имя жертвы, номер телефона, адрес и данные об автомобиле.

На этом этапе мы создали простой скрипт на Python для получения сведений о клиенте по любому номеру VIN.

Мы продолжили исследование и обнаружили HTTP-запрос для запуска команд транспортного средства. Это тоже сработало!

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

На этом этапе мы определили, что можно также получить доступ к информации о клиентах и ​​управлять транспортными средствами на автомобилях Honda, Infiniti и Acura в дополнение к Nissan.

Мы сообщили о проблеме SiriusXM, которые немедленно исправили ее и подтвердили свой патч.

Оригинал на английском тут.

Read Entire Article