
المشروع النهائي لـ BGT-Pentest-LAB: تحليل عميق لتجاوز التحقق من التوقيع (OTA) في محدث نظام Xiaomi HyperOS (CVE-2024-4309)
⚠️ لأغراض تعليمية فقط — يُمنع الاستخدام على الأنظمة الحقيقية.
BGT-Pentest-LAB تم إعداده ضمن مشروع الأمن السيبراني النهائي.
يحتوي هذا المستودع على تحليل عميق للثغرة CVE-2024-4309 الموجودة في مكون System Updater في Xiaomi HyperOS، والتي تسمح بتنفيذ التعليمات البرمجية عن بُعد (RCE)، بالإضافة إلى محاكاة الهجوم، محرك الكشف، ولوحة تحكم ويب تفاعلية.
🔴 ملخص الثغرة
|
🎯 ناقل الهجوم
|
flowchart TD
subgraph MITM ["المرحلة 1: اعتراض الشبكة (MITM)"]
A["🌐 1. MITM (ARP Spoofing)"] --> B["🎯 2. DNS Hijack (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 Flash)"]
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| الخطوة | الإجراء | التفاصيل التقنية |
|---|---|---|
| 1 | وضع MITM | يتم اعتراض حركة الشبكة عبر ARP Spoofing أو نقطة اتصال Wi-Fi وهمية |
| 2 | اختطاف DNS | يتم توجيه استجابات DNS لـ update.miui.com إلى خادم المهاجم |
| 3 | حقن التجزئة | يتم حقن تجزئة ضارة جزئية في قاعدة بيانات ota_hashes.db |
| 4 | حزمة OTA ضارة | يتم إنشاء update.zip مزيف برأس X-Xiaomi-Fast-Channel: true |
| 5 | تجاوز RSA | يرى MiuiRecoveryVerifier رأس Fast Channel ويتجاوز فحص RSA |
| 6 | تجاوز التجزئة | quickHashCheck → strstr() تطابق جزئي → BYPASS |
| 7 | RCE | يتم حرق system.img الضار في وضع الاسترداد → جذر دائم |
|
🖥️ لوحة تحكم C2 app.py
لوحة تحكم تفاعلية بريميم لتصور محاكاة الهجوم خطوة بخطوة. سلسلة الهجوم، درجة الخطر، سجلات فورية. |
⚔️ محاكي الهجوم attack.py
محاكاة هجوم MITM بخادم OTA وهمي. 4 نقاط REST، إنتاج ZIP ضار، حقن تجزئة وتجاوز Fast Channel. |
🔍 محرك الكشف detector.py
ماسح أمان OTA ثلاثي المراحل. كشف strstr()، تحليل Fast Channel، درجة الخطر وتقرير IoC. |
|
🔧 عرض الإصلاح fix_demo.py
مقارنة تفاعلية بين strstr() و strcmp()وعرض التصحيح. |
📄 مولد التقارير report_generator.py
مولد تقارير HTML احترافية جاهزة للطباعة لتحليل الثغرات. |
🧪 مجموعة الاختبارات test_suite.py
27 اختبار وحدة آلي. اختبارات تكامل الهجوم والكشف. |
| ❌ الكود المعيب (strstr) | ✅ الكود المصحح (strcmp) |
|---|---|
|
|
| 🔴 8 أحرف كافية — القوة العمياء: 2³² | 🟢 64 حرفًا مطلوبة — القوة العمياء: 2²⁵⁶ |
📦 CVE-2024-4309-Analysis
├── 📄 README.md # هذا الملف
├── 📄 ROADMAP.md # خريطة طريق المشروع (5 مراحل)
├── 🐳 Dockerfile # إعداد الحاوية
├── 🐳 docker-compose.yml # ملف تنسيق الخدمات
├── 🔑 .env.example # قالب متغيرات البيئة
├── 📄 .gitignore # قواعد استثناء Git
├── 📄 requirements.txt # قائمة الاعتماديات (صفر تبعيات)
│
├── 📁 docs/
│ ├── 📁 presentations/ # 🎨 ملفات العرض التقديمي (HTML slides, infographic)
│ ├── 📁 research/ # 🔬 ملاحظات البحث والتحليل العميق
│ └── 📁 references/ # 📚 المراجع والمصادر
│
└── 📁 src/
├── 🖥️ app.py # لوحة تحكم C2 ويب (واجهة بريميم)
├── ⚔️ attack.py # محاكي هجوم OTA MITM
├── 🔍 detector.py # محرك كشف هجوم متعدد المراحل
├── 🔧 fix_demo.py # عرض strstr() vs strcmp()
├── 📄 report_generator.py # مولد تقارير HTML جاهزة للطباعة
└── 🧪 test_suite.py # 27 اختبار وحدة آلي
git clone https://github.com/Winslowe/CVE-2024-4309-Analysis.git
cd CVE-2024-4309-Analysis
cp .env.example .env
docker-compose up -d
لوحة التحكم ← http://127.0.0.1:5000
# الطرفية 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
| التسليم | الملف | الحالة |
|---|---|---|
| بحث الثغرة وسجلاتها | docs/research/ | ✅ |
| نصوص PoC | src/ (6 ملفات) | ✅ |
| تحليل مرئي (Infographic) | docs/presentations/ | ✅ |
| لوحة تحكم C2 ويب | src/app.py | ✅ |
| مجموعة اختبارات آلية | src/test_suite.py (27 اختبار) | ✅ |
| تقرير جاهز للطباعة | report_generator.py | ✅ |
| دعم Docker | Dockerfile + docker-compose.yml | ✅ |
| المستند | الوصف |
|---|---|
docs/research/ | 🔬 ملاحظات تحليل وبحث عميق |
docs/presentations/ | 🎨 ملفات عرض تقديمي HTML و Infographic |
docs/references/sources.md | 📚 قائمة المراجع الكاملة |
ROADMAP.md | 🗺️ خريطة طريق المشروع المكونة من 5 مراحل |
| المصدر | الرابط |
|---|---|
| نشرة أمان Xiaomi | trust.mi.com/misrc/bulletins/advisory |
| بحث QDebugger | ota-security.q-debugger.com |
| CWE-347 | cwe.mitre.org/data/definitions/347 |
| Android RecoverySystem API | developer.android.com |
| بحث OTA Xiaomi | github.com/nicene-0 |
👨🏫 المشرف / Instructor
|
👤 الطالب / Student
📚 المادة / Course
|