Tesla в очередной раз у всех на устах: недавно Маск показал новую, более дешевую модель, и на нее тут же посыпались предзаказы. Тем временем старые модели интересны не только экологически сознательным автолюбителям, но и хакерам-умельцам. Автор сервиса Twelephone, который умеет делать звонки из Twitter, глава направления IoT в Citrix Крис Метью на днях запостил детальную инструкцию о том, как получить root-доступ к своей Tesla (если интересно, вот GitHub взломщика). Правда, взламывать придется и фигурально, и буквально, так что, если решитесь повторить эксперимент Криса, вооружитесь не только ноутбуком и сетевыми кабелями, но и отверткой.
Пару месяцев назад, бог знает зачем, но я решил взломать свою Tesla Model S. Моей целью было получить root-доступ к ее сенсорному экрану, известному как CID. Я провел два месяца в исследованиях и подготовке к этому проекту. Когда я уверился, что наконец все готово, то прихватил свои инструменты, ноутбуки и принялся за работу.
1. Получить доступ к боковой панели
Первый шаг – убрать небольшую боковую панель прямо за дверью со стороны водителя. Так мы получаем доступ к маленькому белому коннектору, который виден на фото:
Он может выглядеть странно, но в основе своей это обычный Ethernet-кабель шестой категории с фирменным коннектором Tesla. К нему можно подключиться, просто взяв обычный сетевой кабель и подсоединив к нему соответствующий коннектор. Или найти подходящий на рынках б/у-электроники. Я использовал кабель, который сам сделал.
Так что именно с помощью белого разъема я подключился к сети — и могу выполнить сам взлом. К несчастью, доступ спрятан за VPN, куда требуется пароль, которого у меня не было.
2. Снять нижний кусок панели
После этого мне пришлось снять большой кусок передней панели под рулем управления. Она держалась на 9 защелках и мне пришлось повозиться, чтобы их отсоединить. Наконец, получилось.
3. Снять решетки обдува
Боже, это заняло целую вечность. Мне пришлось свинтить большую панель, которая покрывает доску приборов, чтобы добраться до болтов, на которых держатся вентиляционные решетки. Разбирая переднюю панель, нужно быть осторожным и стараться ничего не погнуть, одновременно пытаясь снять ее и получить доступ к двум винтам. После этого остается только снять крышку приборной панели и вытащить решетки обдува.
4. Снять приборную панель
Приборную панель тоже нужно снять. Для этого требуется приподнять верхнюю крышку, чтобы добраться до двух верхних болтов. Честно, я сделал это фото, после того, как вывинтил нижние болты, потому что мне было стремно приниматься за верхние.
Хотя в результате мне удалось и их вывинтить. На этом этапе вы, должно быть, удивляетесь, за каким чертом это все нужно и как это поможет разлочить белый коннектор. Скоро увидите.
5. Получить доступ к кабелю приборной панели
И вот наш золотой пропуск: еще один коннектор, такой же как белый. Это – кабель, ведущий к сенсорному экрану (CID). Приборная панель подсоединяется к CID через веб-интерфейс, чтобы получать апдейты по вещам типа навигации или музыки, а также отсылать команды вроде открытия крыши.
Мне нужно было отсоединить кабель от приборной панели и подключить туда кабель, который сделал я. Это позволило мне перевести машину в “заводской режим” (Factory Mode). Как только и это было сделано, я отключил свой ноутбук от машины и подключил кабель обратно к приборной панели.
Если вы подержите панель в заводском режиме, вы сможете перейти к экранам разработки (Developer Mode). Возможно, я еще напишу пост о том, как именно это сделать. Но я не могу удержаться, чтобы не добавить это фото: на нем изображен экран температурного контроля, он – безусловный мой любимчик.
6. Получить root-доступ к модели S
Машина сейчас в заводском режиме, так что белый разъем, который мы нашли сбоку двери водителя, разлочен и ждет, когда я к нему подключусь. Подключаю свой ноутбук и запускаю скрипт, который я написал заранее: obtain_root.
Далее происходит секретный процесс, который в конце-концов дает мне подключение к сенсорному экрану с root-правами. Я проделал некоторые волшебные манипуляции по настройке, чтобы в будущем не проходить каждый раз через всю эту фигню, чтобы получить доступ к машине. Затем я отключился от белого кабеля, отключил заводской режим, перезапустил машину и попривинчивал обратно все панели и крышки, которые снимал ранее. Все. Взлом окончен!
После взлома
У меня появился root-доступ и что? Я много чего запланировал, много исследовал. Ждите новых записей о моих находках.