Автомобильный хакер, часть 2: CAN-утилиты или SocketCAN

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

LeSh1y777

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

Теперь, когда мы изложили основы самого распространённого протокола, используемого в автомобилях, Controller Area Network (CAN) , мы можем приступить к установке CAN-utils . CAN-utils — это набор утилит для Linux, позволяющий Linux взаимодействовать с CAN-сетью автомобиля. Таким образом, мы можем прослушивать, подделывать и создавать собственные CAN-пакеты для взлома автомобиля!

6a4a49_05db6412b745410c9c3fb595a729254b~mv2.jpg


Что такое CAN-utils?

CAN — это сетевой протокол на основе сообщений, разработанный для транспортных средств. Первоначально разработан компанией Robert Bosch GmbH, той же компанией, которая разработала протокол CAN. Кроме того, SocketCAN — это набор драйверов CAN с открытым исходным кодом и сетевой стек, предоставленный Volkswagen Research для ядра Linux.

Шаг №1: Установка CAN-утилитов

Если вы используете Kali или другие репозитории на базе Debian, вы можете загрузить и установить can-utils с помощью apt-get.

kali > apt-get install can-utils


6a4a49_9dada329c5bd4728a3a4fbbfbac21b88~mv2.png
6a4a49_74f3580b5276456cb414679ee15cb266~mv2.png


Если вы не используете репозиторий Kali или любой другой репозиторий без can-utils, вы всегда можете загрузить can-utils с github.com с помощью команды git clone .

kali > git clone https://github.com/linux-can/can-utils

Основы CAN-utils


Утилиты CAN — это инструменты для работы с CAN-коммуникациями в автомобиле, доступные в операционной системе Linux. Эти инструменты можно разделить на несколько функциональных групп:

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

2. Доступ CAN через IP-сокеты

3. Конфигурация шлюза CAN в ядре

4. Измерение CAN-шины

5. Инструменты ISO-TP

6. Конвертеры лог-файлов

7. Конфигурация дисциплины последовательной линии (SLC)

Вначале мы рассмотрим только основные инструменты и конвертеры файлов журналов.

Полный список инструментов 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 и хост-часть)
5. Инструменты ISO-TP ISO15765-2:2016 для Linux

  • isotpsend : отправка одного ISO-TP PDU
  • isotprecv : получение PDU ISO-TP
  • isotpsniffer : «прослушивание» ISO-TP PDU
  • isotpdump : «прослушивание» и интерпретация сообщений CAN (CAN_RAW)
  • isotpserver : IP-сервер для простого моста TCP/IP <-> ISO 15765-2 (ASCII HEX)
  • isotpperf : визуализация производительности протокола ISO15765-2
  • isotptun : создание двунаправленного IP-туннеля на CAN через ISO-TP
6. Конвертеры лог-файлов

  • asc2log : преобразование файла журнала ASC в компактный файл журнала CAN-фрейма
  • log2asc : преобразование компактного файла журнала CAN-фрейма в файл журнала ASC
  • log2long : преобразование компактного представления CAN-кадра в удобочитаемое пользователем представление
7. Конфигурация дисциплины последовательной линии (для драйвера slcan)

  • slcan_attach : инструмент пользовательского пространства для настройки последовательного интерфейса CAN
  • slcand : демон для настройки последовательного интерфейса CAN
  • slcanpty : создает pty для приложений, использующих протокол slcan ASCII


Настройка виртуальной сети CAN

В следующей статье этой серии мы рассмотрим подключение к CAN-сети вашего автомобиля с помощью различных устройств. Они стоят относительно недорого (10–20 долларов), и я настоятельно рекомендую вам приобрести их, если вы хотите освоить автомобильный хакинг. Если вы не можете или не хотите приобретать одно из этих устройств, вы всегда можете настроить виртуальную CAN-сеть.

Настроить виртуальную CAN-сеть;

сначала загрузите модуль vcan (виртуальный CAN);

kali > modprobe vcan

Затем настройте свой виртуальный интерфейс
;

kali > ip link add dev can0 type vcan

kali > настройка ip-соединения vcan0


6a4a49_3d11ef4ed6c848f6b079a4ba3edb29b8~mv2.png


После настройки нашего виртуального CAN-соединения (vcan0) мы можем проверить его работоспособность с помощью команды ifconfig , как и для любого другого интерфейса в Linux.

kali > ifconfig vcan0

6a4a49_ee46adfd04bc45799e03a9ee220dc507~mv2.png


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