Взлом автомобиля: симулятор ICS, часть 2

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

LeSh1y777

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

В первой части серии, посвящённой симулятору ICS, мы установили утилиты CAN, а также приборную панель и органы управления симулятора ICS. В этом руководстве мы будем использовать утилиты CAN или SOCKET CAN для просмотра и анализа трафика CAN.

a27d24_2a6f5045a7cf4d70b05192e0e13b2c6b~mv2.jpg


Как вы помните из моего руководства «Автомобильный взлом, часть 2 », can-utils содержит следующие утилиты:

1. Базовые инструменты для отображения, записи, генерации и воспроизведения CAN-трафика

  • candump : отображение, фильтрация и запись данных CAN в файлы
  • canplayer : воспроизведение лог-файлов CAN
  • cansend : отправить один кадр
  • cangen : генерация (случайного) CAN-трафика
  • cansniffer : отображает различия в содержании данных CAN (только 11-битные идентификаторы CAN)
2. Доступ CAN через IP-сокеты

  • canlogserver : регистрирует CAN-кадры с удаленного/локального хоста
  • bcmserver : интерактивная настройка BCM (удалённая/локальная)
  • socketcand : использовать сокеты RAW/BCM/ISO-TP через сокеты TCP/IP
3. Конфигурация шлюза CAN в ядре

  • cangw : инструмент пользовательского пространства шлюза CAN для настройки NetLink
4. Измерение и тестирование CAN-шины

  • canbusload : рассчитать и отобразить нагрузку на шину CAN
  • can-calc-bit-timing : версия вычисления битрейта в ядре для пользовательского пространства
  • canfdtest : полнодуплексная тестовая программа (DUT и хост-часть)
В этом уроке мы сосредоточимся на:

1. кансниффер

2. candump

3. canplayer

4. cansend

Шаг №1: Запустите cansniffer

Начнём с анализа CAN-трафика с помощью cansniffer. Для этой утилиты необходимо указать интерфейс ( в нашем случае vcan0 ). Если вы хотите увидеть цветной вывод, используйте опцию -c .

kali > cansniffer -c vcan0

6a4a49_fad948023b884d45aadb137abf61c88c~mv2.png
Как только вы введете эту команду, вы должны увидеть сетевой трафик CAN, отображаемый на вашем терминале, как показано на снимке экрана ниже.
6a4a49_799d4ac737a745949a974a8630068898~mv2.png


При использовании опции -c изменяемые значения окрашиваются в красный цвет, что помогает нам идентифицировать эти ключевые значения.

Шаг №2. Использование cansniffer для фильтрации определенного трафика

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

Давайте посмотрим на экран справки в cansniffer, чтобы научиться это делать.

kali > cansniffer -h

6a4a49_4771486a9e324ea99dcbd56d6e9850a4~mv2.png


Тогда, если бы мы хотели видеть только трафик с ID=161, мы могли бы ввести:

kali > cansniffer -c vcan0

Как только сниффер запустится, мы можем войти;

-000000

+161


Важно отметить, что при вводе вышеуказанных команд они не будут отображаться на экране . После ввода идентификатора сниффер начнёт фильтровать весь трафик, кроме трафика с идентификатором 161.

6a4a49_011fa943a46e478ebc46314e97fb8c3f~mv2.png


Как вы можете видеть на снимке экрана выше, cansniffer теперь отображает только данные для ID=161.

Шаг №3 Использование candump для захвата CAN-трафика


В то время как cansniffer способен анализировать трафик в сети CAN аналогично Wireshark, утилита candump в пакете can-utils способна захватывать трафик CAN и сохранять его в файле для анализа или воспроизведения в будущем.

Для этого нам нужно всего лишь использовать опцию -l для ведения журнала и опцию -c для раскрашивания вывода.

kali > candump -c -l vcan0

a27d24_2065955a2b2341adbe4ccaa4c831ce09~mv2.png


Если мы хотим вести лог и просматривать вывод, можно использовать опцию -s 0 (тихий режим 0). Кроме того, если мы хотим преобразовать вывод из шестнадцатеричного формата в ASCII (удобочитаемый), можно добавить опцию -a (ASCII) . Это запустит candump в режиме раскрашивания с выводом в ASCII, сохраняя данные в лог-файл и одновременно отправляя их на терминал (stdout).

Кали > candump -c -l -s 0 -a vcan0

a27d24_db63175a94984f1b80bed4a71e2f08fe~mv2.png


Шаг №4 Использование canplayer

У нас также есть ещё один ключевой инструмент для работы с сетями CAN — canplayer. Он позволяет нам «воспроизводить» выходные данные candump. Таким образом, мы можем перехватывать данные из сети CAN и затем воспроизводить их по сети. Для этого достаточно использовать опцию -I , а затем указать имя файла журнала candump.

kali >canplayer -I candump-xxxxxxxxxxx.log

a27d24_21a27a1958ef47f2af16f1f84d087e66~mv2.png
Шаг №5: Использование cansend для отправки пользовательских фреймов

Наконец, у нас есть инструмент cansend. Он позволяет повторно воспроизвести конкретный кадр или отправить специально созданный CAN-кадр. Если мы хотим повторно отправить отдельный кадр, выделенный выше с ID=161,

a27d24_da3e68c327aa4221b91aabab8f04af50~mv2.png


мы делаем это, входя;

kali > cansend vcan0 161#000005500108000d

Где:

vcan0
— это интерфейс

161# — это идентификатор кадра

000005500108000D — это данные, которые мы хотим отправить

a27d24_27b06de83384448bb9971892ca6c2d33~mv2.png


Теперь, когда мы нажмём Enter, специальный CAN-кадр будет отправлен по сети. Надеюсь, очевидно, что при обратном проектировании сети именно эта команда будет использоваться для инициирования желаемых действий в CAN-сети, таких как нажатие на педаль газа, открытие двери, нажатие тормоза и т. д.

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

Теперь, когда мы установили ICS Simulator и поняли основы ключевых инструментов CAN-utils, мы можем начать использовать эти инструменты для реверс-инжиниринга CAN-шины на нашем ICS Simulator и взять под контроль транспортное средство!
 
Назад
Сверху Снизу