Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
UniPwn — Unitree 로봇용 BLE 익스플로잇 프레임워크: 하드코딩된 AES 키를 통한 명령 주입으로 원격 장악, 페이로드 주입, 웜형 전파가 가능합니다. | Kitploit
도구/GitHubGitHub/bin4ry/unipwn
Bluetooth SecurityExploit FrameworksVulnerability AnalysisExploitationReverse EngineeringHardware & IoT SecurityPayload Development
GitHubbin4ry/unipwn

UniPwn

Unitree 로봇용 BLE 익스플로잇 프레임워크: 하드코딩된 AES 키를 통한 명령 주입으로 원격 장악, 페이로드 주입, 웜형 전파가 가능합니다.

저장소 보기
398721511개월 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Unitree 로봇 BLE 서비스 명령 주입 분석

Meme

저자: Bin4ry, 본명 Andreas Makris [[email protected]]
공동 저자: h0stile, 본명 Kevin Finisterre
기여자: legion1581, 본명 Konstantin Severov (theroboverse 소속). 주입용 페이로드 수정을 도왔고 완전히 작동하는 PoC로 이를 입증했습니다. 🙂 고마워요, 정말 중요한 기여였고, 매우 감사합니다!

날짜: 2025년 9월 20일

CVE

CVE-2025-35027
CVE-2025-60017
CVE-2025-60250
CVE-2025-60251

논문

이 저장소의 연구는 Unitree G1에 대한 체계적인 보안 평가를 제시하는 논문에 포함되어 있습니다. 그러나 이 연구의 영향력은 G1에만 국한되지 않고, Go2 시리즈부터 시작하는 전체 Unitree 제품 라인에 영향을 미칩니다. 최신 Unitree 로봇의 코드는 Go2 코드베이스의 포크로 보이며, 구체적으로 Go1 계열 및 기타 Go2 이전 Unitree 로봇은 취약하지 않습니다. 그러나 현재 모든 최신 변형은 영향을 받습니다. Unitree는 아직 제품 라인 전반에 걸친 정확한 영향 범위를 설명하는 권고문을 발표하지 않았습니다.

논문 링크: https://arxiv.org/abs/2509.14139
제목: Cybersecurity AI: Humanoid Robots as Attack Vectors
저자: Víctor Mayoral-Vilches, Andreas Makris, Kevin Finisterre```bibtex @misc{mayoralvilches2025cybersecurityaihumanoidrobots, title={Cybersecurity AI: Humanoid Robots as Attack Vectors}, author={Víctor Mayoral-Vilches and Andreas Makris and Kevin Finisterre}, year={2025}, eprint={2509.14139}, archivePrefix={arXiv}, primaryClass={cs.CR}, url={https://arxiv.org/abs/2509.14139}, }

목차
=================

* [Unitree 로봇 BLE 서비스 명령 주입 분석](#unitree-robot-ble-service-command-injection-analysis)
   * [개요](#overview)
   * [BLE 서비스 탐색](#ble-service-discovery)
   * [프로토콜 리버스 엔지니어링](#reverse-engineering-the-protocol)
   * [명령 1: "보안" 핸드셰이크](#instruction-1-the-secure-handshake)
   * [명령 2: 일련 번호 가져오기](#instruction-2-get-serial-number)
   * [명령 3: WiFi 모드 초기화](#instruction-3-initialize-wifi-mode)
   * [명령 4: SSID 설정](#instruction-4-set-ssid)
   * [명령 5: 비밀번호 설정](#instruction-5-set-password)
   * [명령 6: 국가 코드 설정 (트리거!)](#instruction-6-set-country-code-the-trigger)
   * [WiFi 설정 스레드](#the-wifi-setting-thread)
   * [취약한 함수: 명령 주입](#the-vulnerable-function-command-injection)
   * [공격 흐름 요약](#attack-flow-summary)
   * [웜 확산 가능한 위협](#the-wormable-threat)
   * [개념 증명](#proof-of-concept)
   * [실제 배포 & 영향](#real-world-deployment--impact)
      * [현재 배포 현황](#current-deployments)
      * [영향 평가](#impact-assessment)
      * [법 집행 & 군사적 영향](#law-enforcement--military-impact)
      * [기업 환경](#corporate-environments)
      * [소비자 영향](#consumer-impact)
      * [웜 확산 경로](#wormable-propagation)
   * [기술 세부 사항](#technical-details)
      * [BLE 서비스 아키텍처](#ble-service-architecture)
      * [암호화 매개변수](#cryptographic-parameters)
      * [패킷 구조](#packet-structure)
   * [교훈](#lessons-learned)
   * [공개 타임라인](#disclosure-timeline)
      * [플래그십 G1, Go2 및 기타 봇에서 또 다른 보안 문제를 보고하려는 첫 번째이자 마지막 시도](#first-and-last-attempt-to-report-another-security-issue-in-your-flagship-g1-and-go2-and-other-bots)
   * [면책 조항](#disclaimer)
   * [보안 문제의 패턴](#a-pattern-of-security-issues)
   * [결론](#conclusion)
   * [법적 고지](#legal-notice)
   * [기여](#contributing)
   * [라이선스 및 파일 접근](#licensing-and-access-to-these-files)


---

## 개요

Unitree 로봇 플랫폼에 대한 보안 연구 중, 우리는 BLE(Bluetooth Low Energy) Wi-Fi 구성 인터페이스에서 심각한 취약점을 발견했습니다. 이 취약점은 오늘[2025년 9월 20일] 기준 최신 펌웨어까지의 Go2, G1, H1 및 B2 시리즈 로봇을 포함한 여러 Unitree 로봇 모델에 영향을 미칩니다.

**🎯 이것은 휴머노이드 로봇을 표적으로 하는 최초의 공개적으로 공개된 익스플로잇입니다!**

이 취약점은 하드코딩된 암호화 키, 사소한 인증 우회, 그리고 검증되지 않은 명령 주입 등 여러 보안 문제를 결합합니다. 특히 우려되는 점은 완전히 **웜 가능(wormable)** 하다는 것입니다. 감염된 로봇은 BLE 범위 내의 다른 로봇을 자동으로 손상시킬 수 있습니다. 이 취약점으로 공격자는 장치를 완전히 장악할 수 있습니다.

우리는 7월에 암호화 키를 공개했습니다 [트윗 링크](https://x.com/Bin4ryDigit/status/1950566849072005304) 하지만 Unitree는 신경 쓰지 않았습니다.

이 취약점을 어떻게 발견하고 악용했는지 기술적 세부 사항을 자세히 살펴보겠습니다.

## BLE 서비스 탐색

첫 번째 단계는 로봇이 노출하는 BLE 서비스를 식별하는 것이었습니다. 영향을 받는 모든 Unitree 모델은 Wi-Fi 구성을 위한 사용자 지정 BLE 서비스를 노출합니다:```
Service UUID: 0000ffe0-0000-1000-8000-00805f9b34fb
Write Characteristic: 0000ffe2-0000-1000-8000-00805f9b34fb  
Notify Characteristic: 0000ffe1-0000-1000-8000-00805f9b34fb

프로토콜 리버스 엔지니어링

리버스 엔지니어링을 통해 로봇이 암호화된 BLE 패킷을 처리하는 수신 관리자를 구현한다는 것을 발견했습니다. 발견된 내용은 다음과 같습니다:

Packet decryption

수신 관리자는 먼저 하드코딩된 AES 파라미터를 사용하여 수신 패킷을 복호화합니다:```python AES_KEY = "df98b715d5c6ed2b25817b6f2554124a" AES_IV = "2841ae97419c2973296a0d4bdfe19a4f" Mode: AES-CFB128

![Receive manager](https://assets.kitploit.com/production/public/readmes/49064/6f3e6d08a4d69e657e9d8d17f957dbaedf979c3629a109846390030c9fa783d2.png)

복호화 후, 패킷은 switch-case 구조의 명령 코드에 따라 처리됩니다. 각 명령을 살펴보겠습니다:

## 명령 1: "보안" 핸드셰이크

![Handshake instruction](https://assets.kitploit.com/production/public/readmes/49064/0edbe2419cb07586658a3811f515ab09e09dc9c5f204d557bfe6e1ee3f5243d5.png)

핸드셰이크 "인증"은 웃길 정도로 단순합니다:

![Handshake implementation](https://assets.kitploit.com/production/public/readmes/49064/7a0d0de452924790859fcf34ab81b103d531d8c9ffc970674ae6b5317448ce3e.png)

![Authentication flag](https://assets.kitploit.com/production/public/readmes/49064/88bb3cc9c24ac7b81d9c610b48755e677d4c026abd6b80f6ea2f585e576a94a2.png)

기본적으로 로봇은 복호화된 패킷에 핸드셰이크 비밀값으로 문자열 `"unitree"`가 포함되어 있는지 확인한 다음, `valid_incoming_user` 플래그를 1로 설정합니다. 이것이 "인증" 메커니즘의 전부입니다!

## 명령 2: 일련번호 가져오기

![Get serial number](https://assets.kitploit.com/production/public/readmes/49064/0eb1d8510ee261c31014befe56f453dbbbeefdef7c154021cf2a15697146a6bc.png)

이 명령은 사용자가 "인증"되었는지(즉, 플래그가 설정되었는지) 확인한 다음, 일련번호 파일을 읽어 반환합니다. 이를 통해 시스템에 접근 권한이 있음을 확인할 수 있습니다.

## 명령 3: WiFi 모드 초기화

이 명령은 WiFi 설정을 초기화합니다. 사용자는 AP 모드(하위 명령 = 1) 또는 STA 모드(하위 명령 = 2) 중에서 선택할 수 있습니다:

![WiFi mode initialization](https://assets.kitploit.com/production/public/readmes/49064/774940d74f07bf14ad7168261b143ee4bd619388a7bed90e1ec4b2081bb876a2.png)

## 명령 4: SSID 설정

이 명령은 WiFi SSID를 저장합니다. 여기가 첫 번째 주입 지점입니다:

![Set SSID](https://assets.kitploit.com/production/public/readmes/49064/ed93fccd5c5f255d940911ca1f4e37fb93ca15a41fbfbdc1bcda8135feb091a9.png)

## 명령 5: 비밀번호 설정

SSID 명령과 유사하게, 이 명령은 WiFi 비밀번호를 저장합니다. 또 다른 주입 지점입니다:

![Set password](https://assets.kitploit.com/production/public/readmes/49064/18363e90f73974cd259ca2feb44c4241f7f1c7cbd375c5a8c6d14d89578d2a50.png)

## 명령 6: 국가 코드 설정 (트리거!)

이 명령은 WiFi 국가 코드를 설정하고, 핵심적으로 `WifiSettingThreadFunction`을 트리거합니다:

![Set country code](https://assets.kitploit.com/production/public/readmes/49064/01b5ea5104d45aa2ed8f3aec8f76c58ee45d55d09bd93b0a025c4fec169db46e.png)

명령 6이 실행되면 WiFi 구성 스레드가 시작되어 취약한 함수들로 연결됩니다.

## WiFi 설정 스레드

WiFi 구성 스레드는 모드에 따라 `restart_wifi_ap` 또는 `restart_wifi_sta`를 호출합니다:

![WiFi setting thread](https://assets.kitploit.com/production/public/readmes/49064/d2955ec5a5489cd5550768a02be5b4c7110e3317ea72af67a8e479d810c3d7b5.png)

## 취약한 함수: 명령 주입

`restart_wifi_ap`(`hostapd_restart.sh`) 및 `restart_wifi_sta`(`wpa_supplicant_restart.sh`) 함수 모두 동일한 취약 패턴을 따릅니다.  
결정적 증거는 다음과 같습니다(`restart_wifi_ap` 함수를 예로 사용):

![Vulnerable function](https://assets.kitploit.com/production/public/readmes/49064/67dbffbba6799ed151b97d74c725e8abf33c527a44614446a8637b01a2acb3d2.png)

이 함수는 다음 명령을 구성합니다:```bash
sudo sh /unitree/module/network_manager/upper_bluetooth/hostapd_restart.sh "wifi_ssid wifi_pass"

이 명령은 입력값에 대한 검증이나 필터링 없이 **system()**에 직접 전달됩니다!

wifi_ssid 또는 wifi_pass 중 하나라도 제어할 수 있다면, 자신만의 명령을 주입할 수 있습니다. 다음과 같은 간단한 페이로드를 사용할 수 있습니다:```bash ";$(reboot -f);#

로봇을 재부팅하기에 충분할 것입니다. 하지만 우리는 훨씬 더 많은 것을 할 수 있습니다...

## 공격 흐름 요약

다음은 실행해야 하는 전체 공격 시퀀스입니다:

1. AES 암호화된 페이로드 "unitree"를 명령 1의 데이터로 전송
2. get_sn 명령을 전송하고 응답을 복호화하여 접근 권한을 확인
3. 하위 명령 1(AP) 또는 2(STA)로 init_wifi 전송
4. wifi_ssid를 `";$(reboot -f);#` 와 같은 주입 페이로드로 설정
5. wifi_pass를 임의의 값으로 설정
6. 취약한 스레드를 트리거하기 위해 wifi 국가 코드 설정
도구 다운로드