Взлом автомобиля: симулятор ICS, часть 3. Обратный инжиниринг сигналов CAN

  • Автор темы Автор темы LeSh1y777
  • Дата начала Дата начала

LeSh1y777

Пользователь
Регистрация
25/9/25
Сообщения
5,682
Репутация
49
Лайки
152
Депозит
-8.95$
Добро пожаловать обратно, мои начинающие автохакеры!

В предыдущем уроке этой серии мы узнали, как использовать утилиты CAN (CAN-utils) для захвата и отправки CAN-пакетов. Теперь, используя эти инструменты, мы можем начать изолировать и анализировать CAN-пакеты, чтобы получить контроль над автомобилем!

Шаг №1: Используйте контроллер для ускорения автомобиля

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

6a4a49_dea690e750b84e44a6c764b61b687f96~mv2.png
Щелкните в любом месте панели управления, как показано ниже.
6a4a49_b3d58d4293764586b869a53ca22a718f~mv2.png


Теперь, когда панель управления находится в фокусе, мы можем начать использовать игровой контроллер или нажатия клавиш для управления нашим имитируемым транспортным средством.

Давайте попробуем разогнать нашу машину. Удерживайте клавишу со стрелкой вверх, пока машина не разгонится до 160 км/ч, как показано ниже.

6a4a49_dea690e750b84e44a6c764b61b687f96~mv2.png


Отпустите стрелку ВВЕРХ, и скорость автомобиля снова упадет до уровня холостого хода.

Для обратного проектирования этого процесса нам нужно найти пакет CAN, который разгоняет автомобиль до 160 км/ч. Найдя этот пакет, мы можем скопировать его (обратно разработать) и отправить по сети, чтобы автомобиль разогнался до 160 км/ч без участия водителя! Как будто в его машину вселился призрак!

Шаг №2: Используйте cansniffer для поиска конкретного пакета и значений

Следующий шаг — открытие cansniffer в нашей CAN-сети.

kali > cansniffer -c vcan0

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

Как видно ниже, мы идентифицировали пакет с идентификатором арбитража 244 как вероятного кандидата на ускорение автомобиля. Давайте сосредоточимся на этом идентификаторе.

6a4a49_731225e7945c4f59b8a414c4a5e28700~mv2.png
Как мы узнали ранее, мы можем отфильтровать весь остальной трафик, кроме этого идентификатора. Используя маску и введя нужный идентификатор, cansniffer отобразит только тот трафик, на котором мы хотим сосредоточиться. Чтобы отфильтровать только по этому идентификатору, введите:

-000000

+244


Помните, эти записи не будут отображаться на экране.

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

6a4a49_eae8c4926ea84649bf6da60f515593ec~mv2.png


Теперь снова разгоните автомобиль до 160 км/ч и наблюдайте за изменением показаний. Когда вы достигнете максимальной скорости, вы, вероятно, увидите значения, похожие на указанные выше. Запишите эти значения на бумаге.

Шаг №3: Реверс-инжиниринг пакета Accelerate

Теперь мы можем отправить пакет с этим идентификатором арбитража и указанными значениями по сети с помощью утилиты cansend. Помните, что утилите cansend требуется указать интерфейс, затем идентификатор арбитража, символ # и значения, например:

kali > cansend vcan0 244#0000003812

6a4a49_e8ec1d5267ea47bc98d13e6f0d879f54~mv2.png


Этот пакет даст сигнал автомобилю разогнаться до 100 миль в час!

Хотя это правильный пакет, вы можете не заметить никаких изменений на спидометре. Это связано с тем, что сеть CAN одновременно отправляет сигналы и для движения на холостом ходу со скоростью 0 миль/ч. Автомобиль получает смешанные сигналы. Штатная система управления автомобиля указывает ему двигаться со скоростью 0 миль/ч, а вы отправляете один пакет для разгона до 100 миль/ч.

6a4a49_d3fa72bc0d464b94996a8b76aa83997a~mv2.png
Что, если бы мы могли отправлять непрерывный поток пакетов, сообщающих автомобилю о необходимости разогнаться до 160 км/ч, а не только до 100 миль/ч? Возможно, нам удастся преодолеть поток обычных пакетов системы управления и заставить автомобиль разогнаться.

Давайте попробуем написать простой скрипт для отправки непрерывных пакетов, сообщающих автомобилю о необходимости ускориться, например:

kali > while true; do cansend vcan0 244#0000003812; done

6a4a49_b69df083c4f443558d00d7e884558735~mv2.png


Теперь нажмите ENTER и посмотрите, что произойдет!

6a4a49_dea690e750b84e44a6c764b61b687f96~mv2.png


Машина должна немедленно разогнаться до 160 км/ч! Вы взяли управление в свои руки!

Краткое содержание

Утилиты CAN и ICSim — отличные учебные инструменты для понимания работы протокола CAN и реверс-инжиниринга управляющих сигналов и пакетов в сети. Хотя существует множество способов доступа к автомобилю, таких как GPS, сотовые и беспроводные сети, после проникновения в автомобильную сеть необходимо определить, какие сигналы управляют теми или иными функциями. Надеюсь, это руководство даст вам некоторое представление о том, как работает этот процесс.
 
Назад
Сверху Снизу