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

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2021-27289 — CVE-2021-27289: Ksix Zigbee 기기에서 재생 보호 우회 | Kitploit
도구/GitHubGitHub/themalwareguardian/cve-2021-27289
ReconnaissanceIoT SecurityExploitationWireless SecurityHardware & IoT SecurityLearning & Education
GitHubthemalwareguardian/cve-2021-27289

CVE-2021-27289

CVE-2021-27289: Ksix Zigbee 기기에서 재생 보호 우회

저장소 보기
11151년 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

🐝 CVE-2021-27289: Ksix Zigbee 장치의 재생 보호 우회




📑 목차

  • 본격적으로 시작하기 전에

  • 이 CVE의 배경 이야기

  • 취약점

    • 영향받는 장치
    • 기술적 세부 사항
    • 공격 시나리오
    • 영향
    • 개념 증명
    • 데모 비디오
  • 원본 블로그 게시물

    • 연구자
    • Zigbee 기초
    • 배경 및 동기
    • 초기 실험
    • 발견
    • 악용
    • 실험실 구성
    • 관련 연구



🎭 본격적으로 시작하기 전에

안녕하세요 여러분,

제 생각에 전문적인 방법은 이 저장소의 이름을 원래대로 짓는 일이었을 거예요. 명확하고, 서술적이며, 요점을 바로 찌르는 이름이요. 하지만 정리하다 보니 몇 가지 다른 제목들이 떠오르더군요. 예를 들어:

  • "학생 때 신고했고 3년 후에 CVE가 할당된 취약점 (그 사실을 또 2년 후에 알게 됨 😅)"
  • "대학교 마지막 학기에 제출하고 완전히 무시당한 줄 알았던 CVE"
  • "패치도, 관심도 받지 못했지만... 제품 판매는 중단됨"
  • "졸업 프로젝트에서 CVE까지, 그 사이에 긴 낮잠 한 번"

어쨌든, 지금부터 그 이야기입니다.




📜 이 CVE의 배경 이야기

새로운 취약점을 공개할 준비를 하던 중, 몇 년 전에 작업했던 일이 떠올랐습니다. Thread나 Zigbee 같은 IoT 프로토콜을 연구하면서 졸업 프로젝트로 발견했던 버그 말이죠. 당시 MITRE에 보고서를 보냈지만 답변을 받지 못해서 그냥 무시된 줄 알았습니다.

호기심이 생겨 제출할 때 사용했던 예전 Gmail 계정에 다시 로그인해 보았습니다. 그런데 놀랍게도 3년 후인 2023년에 실제로 CVE가 할당되어 있었습니다.

CVE-2021-27289, 제가 학생 때 신고했던 취약점과 연결된 CVE입니다.

왜 그렇게 오래 걸렸을까요? 처음에 벤더에 연락했을 때, 그들은 수정할 인력이 충분하지 않다고 하면서 그 변명만 반복했습니다. 저는 MITRE에 아무도 조치를 취하지 않는 것 같다고 알렸고, 아마 그들은 기다렸던 것 같습니다. 어차피 이 문제는 패치될 일이 없었을 테니까요.

이 버그는 Ksix가 만든 여러 Zigbee 기반 IoT 장치에 영향을 미쳤습니다. 핵심 문제는 Zigbee 사양에 정의되고 프레임 카운터를 통해 적용되는 재생 보호 메커니즘이 제대로 구현되지 않았다는 점이었습니다.

장치들이 프레임 카운터를 올바르게 확인하지 않았기 때문에, 공격자는 시퀀스 번호를 장치가 마지막으로 본 값보다 높은 값으로 증가시키는 것만으로 네트워크와 통신하고 패킷을 위조할 수 있었습니다. 이를 통해 캡처한 메시지를 재생하여 유효한 메시지로 받아들이도록 만들 수 있었으며, 사실상 인증 우회가 가능했습니다.

이 저장소에는 제 졸업 프로젝트에서 작업한 모든 내용이 포함되어 있습니다:

  • 재생 공격에 대한 명확한 분석
  • 영향 및 영향을 받은 장치
  • 원본 문서와 데모 비디오 링크
  • 제가 만든 개념 증명(Proof of Concept)으로, 이후 2020년 OffSec이 Exploit-DB에 게시했습니다.



🛠️ 취약점

Ksix Zigbee IoT 장치는 Zigbee의 재생 보호 메커니즘을 잘못 구현하여 발생하는 재생 공격 취약점의 영향을 받습니다.

  • CVE ID: CVE-2021-27289
  • CWE: CWE-294: 캡처-재생에 의한 인증 우회
  • Exploit-DB: Ksix Zigbee 장치 - 재생 보호 우회 (PoC)

📦 영향받는 장치

다음 버전은 테스트 결과 취약한 것으로 확인되었습니다. 이후 버전은 테스트하지 않았으므로 이 역시 영향을 받을 수 있습니다.

  • Ksix IoT Zigbee Gateway – v1.0.3
  • Ksix Zigbee Door Sensor – v1.0.7
  • Ksix Zigbee Motion Sensor – v1.0.12

이 제품들은 벤더 웹사이트나 Amazon 같은 플랫폼에서 더 이상 구할 수 없으며, 단종된 것으로 보입니다.

🧬 기술적 세부 사항

영향받는 장치의 Zigbee 스택은 Zigbee 사양에 정의된 프레임 카운터 필드에 의존하는 재생 보호 메커니즘을 제대로 적용하지 않습니다. 이 필드는 수신된 메시지가 새로운 것이며 재생된 것이 아님을 보장하기 위한 것입니다.

그러나 이 구현에서는 프레임 카운터가 무시되거나 제대로 검증되지 않습니다. 그 결과 공격자는 정상적인 Zigbee 패킷을 캡처하고, 시퀀스 번호를 더 높은 값(예: 250)으로 증가시킨 다음 네트워크에 재생할 수 있습니다.

장치들이 시퀀스 번호만 확인하기 때문에 메시지를 새로운 것으로 받아들이게 되며, 인증이나 암호화를 깨지 않아도 위조된 통신과 승인되지 않은 동작이 가능해집니다.

🎯 공격 시나리오

  1. 공격자는 스니퍼 장치로 Zigbee 패킷을 캡처합니다. 예를 들어, KillerBee를 실행하는 APImote 또는 Zigbee2MQTT와 SmartRF Packet Sniffer 2용으로 플래시된 TI CC2531 같은 장치를 사용합니다.
  • 공격자는 캡처된 패킷의 시퀀스 번호를 이전에 보았던 값보다 높은 값(예: 250)으로 수정합니다.
  1. 수정된 패킷은 Zigbee 네트워크에 재생됩니다.
  2. 수신 장치는 이를 유효한 새 메시지로 수락합니다.

장치 유형과 환경에 어떻게 통합되었는지에 따라, 사용자가 네트워크를 설정할 때 사용했던 앱에 가짜 알림이나 위조된 센서 상태(예: 움직임 감지, 문 열림)가 표시될 수 있습니다. 실제로는 아무 일도 일어나지 않았는데도 말이죠. 더 복잡한 구성에서는 위조된 데이터를 기반으로 자동화 워크플로를 불안정하게 만들거나 의도하지 않은 동작을 트리거할 수도 있습니다.

💣 영향

이 장치들은 일반적으로 Tuya Smart 같은 앱이나 유사한 플랫폼을 사용하여 구성됩니다. 이러한 앱은 센서가 트리거될 때(예: 문이 열리거나 움직임이 감지될 때) 사용자에게 실시간으로 알림을 보냅니다. 물리적 사건이 실제로 발생하지 않더라도, 바로 이 때문에 아래 공격이 특히 효과적입니다.

  • 거짓 알림 및 센서 위조: 범위 내의 공격자가 캡처한 패킷을 재생하여 앱에서 문이나 창문이 열렸거나 집 안에서 움직임이 감지된 것처럼 보이게 할 수 있습니다. 실제로는 발생하지 않지만, 앱이 집 안의 실제 활동을 시뮬레이션하는 푸시 알림을 보내기 때문에 사용자를 쉽게 속일 수 있습니다.
  • 중단 및 서비스 거부(DoS): 제 졸업 프로젝트에서 입증했듯이, Zigbee 패킷을 조작하면 장치 간 통신을 끊을 수 있으며, 장치가 더 이상 네트워크에 속하지 않더라도 모바일 앱에서는 온라인 상태로 표시되게 할 수 있습니다. 이러한 조용한 서비스 거부는 알림이 사용자에게 도달하지 못하게 하여 물리적 침입을 숨기거나 대응을 지연시킬 수 있습니다.

이 특정 재생 취약점의 직접적인 영향은 제한적이지만, 제 졸업 프로젝트에서 탐구한 것처럼 프로토콜에 대한 더 깊은 이해는 최소한의 리소스로 수행할 수 있는 더 고급 공격 시나리오를 드러냅니다.

💻 개념 증명

  • Exploit-DB
  • Packet Storm```

Exploit Title: Ksix Zigbee Devices - Playback Protection Bypass (PoC)

Date: 2020-11-15

Exploit Author: Alejandro Vazquez Vazquez

Vendor Homepage: https://www.Ksix.com/

Firmware Version: (Gateway Zigbee Module - v1.0.3, Gateway Main Module - v1.1.2, Door Sensor - v1.0.7, PIR Motion Sensor - v1.0.12)

Tested on: Kali Linux 2020.3

The coordinator of the Zigbee network (Zigbee gateway) does not correctly check the sequence number of the packets that are sent to it, which allows forging messages from an end device to the coordinator (example: turn on a light bulb, open a door, ...) by injecting a very large value in the "sequence number" field.

To exploit this vulnerability

1. Capture Zigbee traffic with a sniffer (Api-Mote) and save it in .pcap format

2. Open the file with Wireshark and locate the packet you want to forward (turn on a light bulb, open a door, ...)

3. Copy that packet as "hex dump" and save it to a .txt file

4. Modify the "sequence number" field to a high value such as 250

5. Convert the txt file to .pcap again

6. Forward the packet to the network, using a tool such as Killerbee

#!/bin/bash

function usage(){ echo -e "\nUsage: $0 [ZigbeeChannel] [SecuenceNumber] [HexDumpFile] [ShortSource] [ExtendedSource] [ShortDestination] [ShortPanId] [FCS]" echo -e "Example: $0 11 250 Open_Door_Alert_Hex_Dump 0x0001 11:ff:11:ff:11:ff:11:ff 0x0000 0x3333 0x0000 \n" echo -e "IMPORTANT: This is a script that I developed to understand how an IEEE 802.15.4 / Zigbee packet is formed, modify some fields of the packet in a simple way and see the effect when forwarding it to the network. If you want to exploit the vulnerability, follow the steps that I specify in the comments I make in the script. I exploited the vulnerability by spoofing a packet (sequence number 250) that contained the message "Door open".\n" }

도구 다운로드