넷헌터 CARsenal

CARsenal은 자동차 보안 도구 세트를 제공하는 데 사용돼요.

필수 조건 - 커널 수정

커널에 CAN 지원이 활성화되어 있어야 해요. 더 많은 정보는 "커널 구성 - CARsenal" 문서에서 확인할 수 있어요.

CARsenal 문서

  • 메인 : CAN 인터페이스 구성과 VIN 식별자를 해석.
  • 도구 : can-utils 스위트, cannelloni 또는 Freediag를 제공.
  • CAN-USB : CAN 분석 USB 장치를 사용하여 신호를 덤프 및 전송.
  • Caribou : Caring Caribou 자동차 보안 탐색 도구.
  • 시뮬레이터 : ICSim와 UDSim 시뮬레이터.
  • MSF : Metasploit 자동차 모듈.

자료

도구 문서

가이드

크레딧






메인

CARsenal Main

메인 : CAN 인터페이스

CAN 인터페이스 시작 - 설정 필수 조건 :

인터페이스에서 "CAN 인터페이스", "CAN 타입"을 설정해주세요. 그리고 선택적으로 'MTU'와 'txqueulen'을 활성화하여 사용자 정의 값을 설정할 수 있어요.

# VCAN 타입의 경우 : 먼저 인터페이스를 생성
sudo ip link add dev <caniface> type vcan

# MTU 또는 txqueuelen 값이 지정된 경우
sudo ip link set <caniface> mtu <Value>
sudo ip link set <caniface> txqueuelen <Value>

# 인터페이스 활성화
sudo ip link set <caniface> up

인터페이스 재설정 - 사용된 명령 :

인터페이스를 재설정하기 위해 다음 스크립트를 실행해요.

메인 : 서비스

CARsenal Main Services

주황색 버튼을 길게 눌러 서비스 명령을 사용자 정의할 수 있어요.

인터페이스 섹션은 CAN 인터페이스를 구성하는 데 사용돼요. 설정에서 인터페이스 이름을 지정할 수 있고, 선택적으로 사용자 정의 MTU 및 txqueuelen 값을 설정할 수 있어요.

또한 다음과 같은 데몬/서비스를 활성화할 수 있어요:

  • slcand : 시리얼 CAN 장치용 데몬.
  • hlcand : ELM327 마이크로컨트롤러용으로 만든 slcand 포크.
  • socketcand : CAN 인터페이스를 브릿지하는 데몬.
  • slcan_attach : 시리얼 CAN 장치를 연결.
  • ldattach : 장치를 연결.
  • RFCOMM
    • bind : 블루투스를 장치에 바인딩.
    • connect : RFCOMM 장치를 원격 블루투스 장치에 연결

VIN 정보

VIN 정보는 VIN 식별자를 디코딩하고 체크섬을 확인하는 데 사용돼요.

vininfo show <vinNumber>
vininfo check <vinNumber>






도구

CARsenal Tools

설정을 구성하면 명령이 업데이트돼요. 주황색 버튼을 길게 눌러 명령도 편집할 수 있어요.

도구 : 제공되는 도구

  • can-utils : SocketCAN 사용자 공간 유틸리티 및 도구.

    • cangen : 테스트 목적의 CAN 프레임 생성기.
    • cansniffer : 휘발성 CAN 콘텐츠 시각화 도구.
    • candump : CAN 버스 트래픽을 덤프.
    • cansend : CAN_RAW 소켓을 통해 CAN 프레임을 전송.
    • canplayer : 압축된 CAN 프레임 로그 파일을 CAN 장치로 재생.
    • asc2log : ASC 로그 파일을 압축된 CAN 프레임 로그 파일로 변환.
    • log2asc : 압축된 CAN 프레임 로그 파일을 ASC 로그 파일로 변환.
  • freediag : 자동차 진단 시스템에 액세스.

    • diagtest : Freediag의 독립 실행형 프로그램으로, 코드 경로를 실행하는 데 사용.
  • cannelloni : UDP, TCP 또는 SCTP를 사용하여 두 장치 간에 CAN 프레임을 전송.

  • sequence_finder : 로그 파일을 분할하고, 원하는 동작의 정확한 시퀀스를 찾을 때까지 CanPlayer로 재생한 다음 CanSend를 사용하여 재생하는 사용자 정의 스크립트.






CAN-USB

CARsenal CAN-USB

설정을 구성하면 명령이 업데이트돼요.

CAN-USB는 아래 표시된 저비용 하드웨어를 사용해요.

CARsenal CAN-USB Hardware






Caribou

CARsenal Caring Caribou

모듈과 하위 모듈을 선택하면 설정 필드에 매개변수가 표시돼요.

모듈 및 하위 모듈

  • Dump
  • Fuzzer
    • brute
    • identify
    • mutate
    • random
    • replay
  • Listener
  • module_template
  • Send
    • file
    • message
  • UDS
    • discovery
    • services
    • subservices
    • ecu_reset
    • testerpresent
    • security_seed
    • dump_dids
    • read_mem
    • auto
  • UDS_Fuzz
    • delay_fuzzer
    • seed_randomness_fuzzer
  • XCP
    • discovery
    • info
    • commands
    • dump






시뮬레이터

CARsenal Simulator

시뮬레이터가 실행되면, 더 나은 제어를 위해 ICSim/UDSim을 플로팅할 수 있어요. 또한 Controls WebView를 활성화/비활성화할 수도 있어요.

어떻게 작동하나요?

시뮬레이터를 시작할 때 kex나 다른 프로그램이 실행 중인 경우 문제를 피하기 위해 디스플레이 3~5를 사용해요.

  • 디스플레이 3 : ICSim
  • 디스플레이 4 : Controls
  • 디스플레이 5 : UDSim

그 다음 각 디스플레이에서 가상 프레임버퍼(Xvfb)를 시작하고, 창 관리자로 fluxbox를 실행하며, VNC 서버로 x11vnc를 시작해요.

완료되면 각 VNC 디스플레이에서 시뮬레이터를 실행하고 브라우저에서 액세스할 수 있도록 noVNC를 시작해요.

마지막으로, 넷헌터 앱이 noVNC의 웹뷰를 로드하여 디스플레이를 제공해요.

ICSim

ICSim 문서는 여기에서 찾을 수 있어요.

ICSim은 다음 스크립트를 통해 시작/중지돼요.

UDSim

UDSim 문서는 여기에서 찾을 수 있어요.

UDSim은 다음 스크립트를 통해 시작/중지돼요.






MSF

CARsenal MSF Automotive

어떻게 사용하나요?

먼저 'start msfconsole'을 눌러야 해요. 같은 인스턴스에서 모듈을 실행하기 위해 screen을 사용하여 msf 세션을 분리하고 다시 연결해요.

msf가 시작되면 모듈을 선택하고 "Info"를 사용하여 모듈 정보를 읽고, "Set"을 사용하여 모듈을 구성하고, 마지막으로 "Run"을 사용하여 실행해요.

참고 : 현재 터미널 창을 자동으로 닫을 수 없어서, 이전 터미널 창이 여전히 열려 있지만 종료된 상태로 유지된다는 점을 염두에 두세요.

하드웨어 도구 : ELM327 릴레이

  • elm327_relay : 이 모듈은 장치의 시리얼에 연결된 ELM327 또는 STN1100이 필요해요. 통신을 위한 기본 RESTful 웹 서버를 설정해요.

Auxiliary 모듈

  • local_hwbridge : Metasploit과 물리적으로 연결된 하드웨어 간의 통신을 브릿지하기 위한 웹 서버를 설정해요.
  • connect : 대화형 hwbridge 세션을 시작할 물리적 HWBridge에 연결해요(local_hwbridge가 실행 중이어야 함).

Post 모듈

  • can_flood : 제공된 프레임으로 CAN 인터페이스를 플러딩해요.
  • canprobe : 두 CAN ID 사이를 스캔하고 각 바이트 위치에 데이터를 작성해요.
  • diagnostic_state : 테스터 현재 패킷을 전송하여 라운드에서 차량을 진단 상태로 유지해요.
  • ecu_hard_reset : ECU 재설정 서비스 식별자(0x11)에서 하드 재설정을 수행해요.
  • getvinfo : 이 모듈은 DTC, 일반적인 엔진 정보 및 차량 정보를 쿼리해요.
  • identifymodules : UDS DSC 쿼리에 응답할 수 있는 모든 모듈에 대해 CAN 버스를 스캔해요.
  • malibu_overheat : 2006 Malibu용 간단한 샘플 온도 플러딩.
  • mazda_ic_mover : Mazda 2 계기판의 가속도계와 속도계의 바늘을 움직여요.
  • pdt : 화공 장치 배치 도구(PDT) 역할을 수행해요.
최종 업데이트: 2025년 12월 15일 00시 00분 48초
저자: v0lk3n
번역: kmw0410