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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2024-4309-Analysis — BGT-Pentest-LAB 최종 프로젝트: Xiaomi HyperOS System Updater OTA Signature Verification Bypass (CVE-2024-4309) 심층 분석 | Kitploit
도구/GitHubGitHub/winslowe/cve-2024-4309-analysis
Vulnerability AnalysisExploitationCryptographyPenetration TestingMobile SecurityLearning & EducationIncident ResponseBinary ExploitationLabs & Practice
GitHubwinslowe/cve-2024-4309-analysis

CVE-2024-4309-Analysis

BGT-Pentest-LAB 최종 프로젝트: Xiaomi HyperOS System Updater OTA Signature Verification Bypass (CVE-2024-4309) 심층 분석

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

🛡️ CVE-2024-4309

Xiaomi HyperOS System Updater — OTA Signature Verification Bypass & RCE


CVSS RCE Python


Status Course License Docker Tests Zero Deps


⚠️ 교육 목적으로만 사용 — 실제 시스템에서 사용은 금지됩니다.




📋 프로젝트 개요 / Project Overview

BGT-Pentest-LAB 사이버 보안 종합 프로젝트의 일환으로 준비되었습니다.

Xiaomi HyperOS System Updater 구성 요소에서 발견된 원격 코드 실행(RCE)을 가능하게 하는 CVE-2024-4309 취약점의 심층 분석, 공격 시뮬레이션, 탐지 엔진 및 대화형 웹 대시보드가 이 저장소에 포함되어 있습니다.

🔴 취약점 개요

항목값
CVE IDCVE-2024-4309
구성 요소System Updater (HyperOS)
심각도🔴 Critical (CVSS 9.1)
CWECWE-347: Improper Crypto Signature Verification
영향지속적 RCE, 루트 액세스
수정 버전HyperOS 1.0.4.0+

🎯 공격 벡터

메트릭값
Attack VectorAdjacent Network
ComplexityLow
PrivilegesNone
User InteractionNone
ScopeChanged
CVSS VectorAV:A/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N



💀 공격 흐름 / Attack Kill Chain

flowchart TD
    subgraph MITM ["단계 1: 네트워크 접근 장악 (MITM)"]
        A["🌐 1. MITM (ARP 스푸핑)"] --> B["🎯 2. DNS 하이재킹 (update.miui.com)"]
    end

    subgraph INJECTION ["단계 2: 데이터베이스 및 패킷 변조"]
        B --> C["💾 3. 해시 주입 (ota_hashes.db)"]
        C --> D["📦 4. 악성 OTA 패키지 준비"]
    end

    subgraph BYPASS ["단계 3: 보안 검사 우회 (Bypass)"]
        D --> E["🔓 5. RSA 서명 우회 (Fast Channel)"]
        E --> F["⚡ 6. 해시 검증 우회 (strstr 버그)"]
    end

    subgraph EXPLOIT ["단계 4: 권한 상승 및 침투"]
        F --> G["💀 7. RCE 및 영구 루트 (system.img 플래싱)"]
    end

    %% 스타일 정의
    style MITM fill:#0f172a,stroke:#38bdf8,stroke-width:1px,color:#38bdf8
    style INJECTION fill:#0f172a,stroke:#818cf8,stroke-width:1px,color:#818cf8
    style BYPASS fill:#0f172a,stroke:#f59e0b,stroke-width:1px,color:#f59e0b
    style EXPLOIT fill:#0f172a,stroke:#ef4444,stroke-width:2px,color:#ef4444

    style A fill:#1e293b,stroke:#0284c7,stroke-width:2px,color:#e2e8f0
    style B fill:#1e293b,stroke:#0284c7,stroke-width:2px,color:#e2e8f0
    style C fill:#1e293b,stroke:#4f46e5,stroke-width:2px,color:#e2e8f0
    style D fill:#1e293b,stroke:#4f46e5,stroke-width:2px,color:#e2e8f0
    style E fill:#451a03,stroke:#d97706,stroke-width:2px,color:#fef3c7
    style F fill:#451a03,stroke:#d97706,stroke-width:2px,color:#fef3c7
    style G fill:#4c0519,stroke:#e11d48,stroke-width:3px,color:#ffe4e6
📖 상세 설명 — 각 단계의 기술적 세부사항을 보려면 클릭하세요
단계동작기술적 세부사항
1MITM 포지션ARP 스푸핑 또는 가짜 Wi-Fi 핫스팟을 통해 네트워크 트래픽 가로채기
2DNS 하이재킹update.miui.com DNS 응답을 공격자 서버로 리디렉션
3해시 주입ota_hashes.db 데이터베이스에 부분적인 악성 해시 주입
4악성 OTA 패키지X-Xiaomi-Fast-Channel: true 헤더가 포함된 가짜 update.zip 생성
5RSA 우회MiuiRecoveryVerifier가 Fast Channel 헤더를 보고 RSA 검사 우회
6해시 우회quickHashCheck → strstr() 부분 일치 → 우회
7RCE복구 모드에서 악성 system.img 플래싱 → 영구 루트



⚙️ 개발된 도구 / Developed Tools




🖥️ C2 대시보드
app.py

프리미엄 웹 패널로 공격 시뮬레이션을
단계별로 시각화하는 대화형 대시보드.
킬 체인, 위험 점수, 실시간 로그.




⚔️ 공격 시뮬레이터
attack.py

가짜 OTA 서버를 사용한 MITM 공격 시뮬레이션.
4개의 REST 엔드포인트, 악성 ZIP 생성,
해시 주입 및 Fast Channel 우회.




🔍 탐지 엔진
detector.py

3단계 OTA 보안 스캐너.
strstr() 탐지, Fast Channel 분석,
위험 점수 및 IoC 보고서.


🔧 수정 데모
fix_demo.py

strstr() vs strcmp() 대화형
비교 및 패치 데모.


📄 보고서 생성기
report_generator.py

PDF 준비 완료 전문 HTML
취약점 분석 보고서 생성기.


🧪 테스트 스위트
test_suite.py

27개의 자동 단위 테스트.
공격 + 탐지 엔진 통합 테스트.




🐛 근본 원인 / Root Cause

❌ 취약한 코드 (strstr) ✅ 패치된 코드 (strcmp)
// NativeVerifier.cpp — BUG!
bool quickHashCheck(const char* hash) {
    for (int i = 0; i < count; i++) {
        if (strstr(whitelist[i], hash))
            return true;  // 부분 문자열 일치 ⚠️
    }
    return false;
}
// NativeVerifier.cpp — FIXED
bool quickHashCheck(const char* hash) {
    for (int i = 0; i < count; i++) {
        if (strcmp(whitelist[i], hash) == 0)
            return true;  // 완전 일치 ✅
    }
    return false;
}
🔴 8자면 충분 — 무차별 대입: 2³² 🟢 64자 필요 — 무차별 대입: 2²⁵⁶



🗂 저장소 구조 / Repository Structure

📦 CVE-2024-4309-Analysis
├── 📄 README.md                    # 이 파일
├── 📄 ROADMAP.md                   # 프로젝트 로드맵 (5단계)
├── 🐳 Dockerfile                   # 컨테이너 구성
├── 🐳 docker-compose.yml           # 서비스 오케스트레이션 파일
├── 🔑 .env.example                 # 환경 변수 템플릿
├── 📄 .gitignore                   # Git 제외 규칙
├── 📄 requirements.txt             # 의존성 목록 (의존성 제로)
│
├── 📁 docs/
│   ├── 📁 presentations/           # 🎨 발표 자료 (HTML 슬라이드, 인포그래픽)
│   ├── 📁 research/                # 🔬 연구 노트 및 심층 분석
│   └── 📁 references/              # 📚 참고 문헌 및 참조
│
└── 📁 src/
    ├── 🖥️  app.py                   # C2 웹 대시보드 (프리미엄 UI)
    ├── ⚔️  attack.py                # OTA MITM 공격 시뮬레이터
    ├── 🔍 detector.py               # 다단계 공격 탐지 엔진
    ├── 🔧 fix_demo.py               # strstr() vs strcmp() 데모
    ├── 📄 report_generator.py       # PDF 준비 완료 HTML 보고서 생성기
    └── 🧪 test_suite.py             # 27개의 자동 단위 테스트



🚀 설치 / Getting Started

사전 요구 사항

  • Python 3.12+ (외부 의존성 없음 — 표준 라이브러리만)
  • Docker (선택 사항)

📥 복제

git clone https://github.com/Winslowe/CVE-2024-4309-Analysis.git
cd CVE-2024-4309-Analysis
cp .env.example .env

🐳 Docker로 실행

docker-compose up -d

대시보드 → http://127.0.0.1:5000

🐍 Docker 없이 실행

# 터미널 1 — C2 대시보드
python src/app.py

# 터미널 2 — 공격 서버
python src/attack.py

# 터미널 3 — 탐지 엔진
python src/detector.py

🧪 테스트 실행

python src/test_suite.py
# 또는
python -m pytest src/test_suite.py -v



📊 인도물 / Deliverables

도구 다운로드