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

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/turretsec/disclosure-thinkware-u3000
Embedded Systems SecurityIoT SecurityVulnerability AnalysisReverse EngineeringWireless SecurityCryptographyHardware & IoT SecurityPapers & Research

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
GitHub
turretsec/disclosure-thinkware-u3000

disclosure-thinkware-u3000

Thinkware U3000 대시캠의 로컬 WiFi 제어 프로토콜에서 발견된 세 가지 인증되지 않은 취약점: 임의 파일 쓰기, 임의 파일 읽기, 평문 WiFi 자격 증명 노출. CVE-2026-101053, CVE-2026-101054, CVE-2026-101055.

저장소 보기
5일 전아직 검토되지 않음

Thinkware U3000 대시캠: 보안 취약점

공식 Android 앱을 리버스 엔지니어링하고 실제 하드웨어에서 확인하여 발견한 Thinkware U3000 대시캠의 로컬 WiFi 제어 프로토콜에 존재하는 세 가지 취약점입니다. 세 가지 모두 로컬 네트워크 접근만 필요합니다: 장치에 대한 물리적 접근, 사전 인증, 장치 소유자의 협조가 전혀 필요하지 않습니다.

2026-06-21에 Thinkware에 공개되었습니다. 30일 공개 기간이 종료되었으며, 기술적이지 않은 수신 확인만 받았습니다.

왜 중요한가

대시캠은 이런 종류의 노출에 있어 특이한 카테고리입니다. 대시캠은 차량의 움직임을 지속적으로 기록하며, 렌터카, 차량 관리, 중고차 판매를 통해 자주 소유자가 바뀝니다. 현재 차량에 접근할 수 있는 사람이 반드시 차량이 구성된 네트워크를 제어하는 것은 아닙니다. 임의 파일 쓰기 프리미티브와 제어 프로토콜의 인증 부재가 결합되면 이는 단순한 프라이버시 문제를 넘어섭니다. 이는 변조 문제이기도 합니다: 영상뿐만 아니라 장치의 모든 파일이 소유자의 인지 없이 변경되거나 교체될 수 있습니다.

이런 형태의 취약점이 Thinkware 대시캠에서 나타난 것은 이번이 처음이 아닙니다. 독립 연구자 geo-chen이 관련 F800 Pro 모델에서 여러 문제를 이전에 공개했습니다; geo-chen/Thinkware-Dashcam을 참조하세요. 해당 문제들은 일반적으로 악용에 물리적 또는 로컬 파일시스템 접근이 필요했습니다. 아래 발견 사항은 둘 다 필요하지 않습니다: 네트워크 접근만으로 충분하며, 파일 쓰기 발견은 그 이전 세트의 어떤 것보다도 강력한 능력입니다.

영향받는 모델에 대한 참고: 아래의 모든 발견 사항은 기본 Thinkware U3000에서 확인되었습니다. Thinkware는 별도의 "U3000 Pro" 변형도 판매하고 있습니다; 동일한 프로토콜 구현을 공유하는지는 테스트되지 않았습니다.


발견 1: 인증 없는 임의 파일 쓰기

CVE: CVE-2026-101053 (VulDB #410915)

전체 분석: findings/01-arbitrary-file-write.md

제품: Thinkware U3000 대시캠

영향받는 구성 요소: TCP 제어 프로토콜 (포트 7878 명령 / 포트 8787 데이터), 인증 없음

공격 벡터: 동일한 로컬 네트워크의 모든 장치가 장치 파일시스템의 모든 절대 경로에 공격자가 제어하는 콘텐츠를 쓸 수 있습니다.

설명

장치의 제어 프로토콜은 PUT_FILE 명령을 노출하며, 이는 공격자가 제공한 바이트를 공격자가 제공한 절대 경로에 쓰며, 경로 검증이나 샌드박싱이 전혀 없습니다. 장치의 /tmp 디렉터리—장치 자체의 WiFi 구성(wpa_supplicant.conf)과 최소 하나의 셸 스크립트(hidraw0.sh)가 있는 동일한 디렉터리—에 직접 파일을 쓰고, 바이트 단위로 다시 읽어 정확한 배치를 확인함으로써 검증되었습니다.

Put file proof

재현 단계

  1. 세션 핸드셰이크를 완료합니다: START_SESSION -> SET_CLNT_INFO -> APP_CONNECT.
  2. 공식 앱이 정당하게 쓸 위치가 아닌 경로로 param을 설정하여 PUT_FILE을 전송합니다.
  3. 데이터 소켓에 파일 바이트를 씁니다.
  4. 카메라는 즉시 {"rval": 0, "msg_id": 1286}으로 응답한 후, 나중에 완료를 확인하는 비동기 NOTIFICATION(msg_id 7)을 푸시합니다.
  5. 상위 디렉터리에 LS를 실행하면 시스템 파일들과 함께 정확히 요청한 이름으로 파일이 존재함을 확인할 수 있습니다.
  6. 동일한 경로에 GET_FILE을 실행하여 전송한 내용과 바이트 단위로 비교하기 위해 콘텐츠를 다시 읽습니다.

발견 2: 인증 없는 임의 파일 읽기

CVE: CVE-2026-101054 (VulDB #410916)

전체 분석: findings/02-arbitrary-file-read.md

제품: Thinkware U3000 대시캠

영향받는 구성 요소: TCP 제어 프로토콜 (포트 7878 명령 / 포트 8787 데이터), 인증 없음

공격 벡터: 동일한 로컬 네트워크의 모든 장치가 기록된 영상뿐만 아니라 장치 파일시스템의 모든 절대 경로를 나열하고 읽을 수 있습니다.

설명

동일한 프로토콜의 LS 및 GET_FILE 명령은 제한 없이 모든 절대 경로를 열거하고 읽습니다. 장치의 실제 WiFi SSID와 평문 비밀번호를 포함하는 장치의 라이브 wpa_supplicant.conf를 직접 읽음으로써 검증되었습니다. 이는 발견 1의 읽기 측 대응물입니다: 동일한 근본 원인, 반대 방향이며, 발견 3에서 노출된 동일한 자격 증명에 대한 기계적으로 구별되는 경로입니다.

재현 단계

  1. 세션 핸드셰이크를 완료합니다: START_SESSION -> SET_CLNT_INFO -> APP_CONNECT.
  2. /tmp에 LS를 실행하면 다른 시스템 파일들(hidraw0.sh, aws.dat, resolv.conf 등)과 함께 wpa_supplicant.conf가 존재함을 확인할 수 있습니다.
  3. param: "/tmp/wpa_supplicant.conf"로 GET_FILE을 실행하면 파일 크기를 반환한 후, 전체 콘텐츠가 비디오 파일과 정확히 동일한 방식으로 데이터 소켓을 통해 스트리밍됩니다.
  4. 반환된 콘텐츠에는 카메라의 실제 구성된 네트워크와 일치하는 ssid=/psk= 줄이 포함되어 있습니다.

발견 3: 상태 쿼리를 통한 평문 WiFi 자격 증명 노출

CVE: CVE-2026-101055 (VulDB #410917)

전체 분석: findings/03-wifi-credential-disclosure.md

제품: Thinkware U3000 대시캠

영향받는 구성 요소: TCP 제어 프로토콜 (포트 7878), 인증 없음

공격 벡터: 동일한 로컬 네트워크의 모든 장치가 인증 없이, 사전 접근 없이 카메라의 WiFi 비밀번호를 직접 검색할 수 있습니다.

설명

전용 상태 쿼리인 GET_STATUS "wifi_info"는 장치의 WiFi SSID와 평문 비밀번호를 직접 반환합니다. 이는 발견 2와 다른 메커니즘으로, 파일시스템 접근이 전혀 필요 없으며 정상적인 프로토콜 상태 읽기만 필요합니다.

재현 단계

  1. 세션 핸드셰이크를 완료합니다: START_SESSION -> SET_CLNT_INFO -> APP_CONNECT.
  2. param: "wifi_info"로 GET_STATUS를 전송합니다.
  3. 응답: {"rval": 0, "msg_id": 2050, "type": "wifi_info", "param": [{"ssid": "<real SSID>"}, {"password": "<real plaintext password>"}, {"mac": "<real MAC>"}]}.

공개 타임라인

날짜이벤트
2026-06-19펌웨어 v1.02.00에 대해 발견 사항 확인
2026-06-21펌웨어를 v1.02.04(현재 생산 릴리스)로 업그레이드; 세 가지 발견 사항 모두 재확인, 동작 변화 없음
2026-06-21[email protected]으로 이메일을 통해 벤더에 통보
2026-06-22 (대략)Thinkware 고객 지원이 수신을 확인하고 보고서가 개발팀에 전달되었음을 확인. 기술적 응답, 일정, 수정 확인은 제공되지 않음.
2026-07-2130일 공개 기간 종료. 추가 벤더 연락 없음.
2026-08-13공개 공개
2026-9-27CVE ID 할당, VulDB 항목 게시

여기에 의도적으로 포함되지 않은 것

책임 있는 공개 관행에 따라, 이 저장소는 각 프리미티브의 존재와 영향을 문서화하며 즉시 사용 가능한 악용 도구를 제공하지 않습니다:

  • 작동하는 PUT_FILE 개념 증명 스크립트는 공개되지 않습니다. 위의 재현 단계는 발견 사항을 확인하기에 충분합니다; 매개변수화된 즉시 실행 가능한 임의 쓰기 도구는 정당한 검증에 추가 가치를 제공하지 않으면서 오용에 실질적 가치를 제공할 것입니다.
  • PUT_FILE을 통해 배치된 파일이 실행될 수 있는지, 또는 추가 악용 체인에 대한 조사는 이루어지지 않았습니다.

도구

이러한 발견 사항은 이 연구의 일부로 구축된 U3000 제어 프로토콜용 오픈소스 Python 클라이언트인 u3000py를 사용하여 확인되었습니다.

  • u3000py의 ThinkLinkClient.download() 메서드는 발견 2의 직접적이고 실행 가능한 재현입니다: cam.download("/tmp/wpa_supplicant.conf")는 제한 없이 장치의 라이브 WiFi 구성을 읽습니다.
  • ThinkLinkClient.get_wifi_info()는 발견 3의 직접적이고 실행 가능한 재현입니다(실제 비밀번호는 인쇄된 출력에서 기본적으로 마스킹됩니다; 실제 값은 여전히 반환된 객체에서 접근 가능하며, 이는 발견 자체가 작동하는 방식과 일치합니다).
  • u3000py는 해당 발견의 분석에서 언급된 이유로 범용 PUT_FILE 기능(발견 1)을 의도적으로 노출하지 않습니다.

크레딧

Ryan Moore (turretsec)가 발견하고 공개했습니다.

도구 다운로드