
كود مصدر يوضح خادم C2 تجريبي لنص تنفيذي لـ CVE-2024-23700
[cite_start]مشروع يوضح تصميم وبناء خادم التحكم وجمع المعلومات (Command & Control - C2 Server) لخدمة سيناريو تجريبي لاستغلال ثغرة تصعيد الامتيازات CVE-2024-23700[cite: 2]. [cite_start]يلعب هذا الخادم دور استقبال ومعالجة وتصنيف وعرض البيانات الحساسة المسروقة من جهاز Android المستهدف[cite: 3].
الوثائق والكود المصدري في هذا المستودع مخصصة فقط لأغراض التعلم وتحليل الأمان والاختبار في بيئة مصرح بها. لا تستخدمها على أجهزة أو حسابات أو بيانات خارج نطاق الاختبار القانوني.
المشروع يتبع مادة: الأمان على الأجهزة المحمولة
الفريق المنفذ: المشروع من تنفيذ فريق مكون من 4 أعضاء.
خلال عملية البحث واستكمال مشروع تصميم خادم C2 هذا، تولى الفريق المهام التالية:
data.json بهدف تحسين الأداء لإثبات مفهوم (PoC) سريع وخفيف.يطبق نظام خادم C2 نموذج Client-Server، حيث يلعب تطبيق Android الخبيث (PoC) دور العميل (Client) الذي يرسل البيانات باستمرار. تنقسم بنية C2 إلى مكوّنين مستقلين للمعالجة لضمان سرعة عالية ومرونة.
تدفق التشغيل الرئيسي لخادم C2:
/ مصممة بآلية معالجة مزدوجة. إذا تم الوصول إليها عبر طريقة GET (فحص المتصفح)، يقوم الخادم بإرجاع خطأ 404 مزيف للتهرب. إذا استقبل طريقة POST تحتوي على تنسيق JSON من البرمجية الخبيثة، يقوم الخادم بالاستقبال واستخراج معرّف الجهاز.s_cache, gps_cache).data.json./api/data لقراءة قاعدة البيانات.device_id)، وتقوم بفحص عميق داخل البنية لاستخراج مواصفات الأجهزة (RAM، البطارية، نظام التشغيل) وعرضها بصريًا على الرادار.رمز الثغرة: CVE-2024-23700
مستوى الخطورة في Android: حرج (Critical)
المكوّن المرتبط: Android Companion Device Manager
التصحيح المرجعي: Android Wear Security Bulletin 2024-05-01
تم تصميم خادم C2 هذا كجزء من شبكة تجريبية، يستقبل تدفق بيانات استخباراتية من أجهزة Android التي تم استغلالها بنجاح عبر الثغرة المذكورة.
CVE-2024-23700-C2-Server/
├── backend/
│ ├── app.py - تهيئة نقاط نهاية API، معالجة التمويه وتصنيف JSON
│ └── requirements.txt
├── frontend/
│ ├── src/
│ │ ├── pages/
│ │ │ ├── Dashboard.jsx - شاشة رادار نظرة عامة على الأجهزة
│ │ │ └── DeviceDetails.jsx - نافذة تحليل متعمق للحمولة
│ │ ├── App.jsx
│ │ └── App.css
│ ├── package.json
│ └── nginx.conf - تخصيص الوكيل العكسي للواجهة الأمامية
├── data.json - قاعدة بيانات ملفات مسطحة لتخزين السجلات (مثبتة كحجم)
├── docker-compose.yml - إدارة الحاويات والشبكة الداخلية
├── .gitignore
└── README.md
بدلاً من استخدام منطق معقد، يقوم الخادم تلقائيًا بالتعرف على كتل البيانات (cache) المرتجعة وتعيين التسميات بناءً عليها، كما تدمج الواجهة الأمامية قاموسًا ذكيًا (MODULE_MAP و COLUMN_TRANSLATIONS) لتوحيد النتائج و"ترجمتها":
s_cache).c_cache).cal_cache).n_cache).gps_cache).بالإضافة إلى ذلك، يقوم النظام تلقائيًا بتحويل الطابع الزمني الأصلي إلى التوقيت المحلي القابل للقراءة وتفسير الرموز إلى حالات فعلية (مثال: نوع المكالمة 1 = "↙️ مكالمة واردة").
يتم تشغيل البنية التحتية الكاملة لـ C2 باستخدام docker compose لضمان الاتساق وإزالة انحرافات البيئة. تعمل البنية على خدمتين رئيسيتين:
data.json الفعلي بمنطقة الذاكرة /app/data.json داخل الحاوية. يساعد ذلك في حفظ البيانات الاستخباراتية بشكل دائم حتى لو تم حذف الحاوية أو إعادة تشغيلها. تطبق الخدمة سياسة restart: always./api/ إلى Backend لتعزيز الأمان. يجب أن تبدأ هذه الحاوية بعد Backend (depends_on) لتجنب أخطاء فقدان الاتصال الأولي.data.json على الخادم الفعلي قبل تشغيل Docker.| المكوّن | الوصف | المسار |
|---|
Backend Flask (app.py) | مركز التحكم (C2)، يستمع ويصنف ويخزن البيانات في data.json. | backend/app.py |
| Dashboard Radar | لوحة التحكم المركزية، تجميع الأهداف وعرض مواصفات HW/OS وعدد الحمولات. | frontend/src/pages/Dashboard.jsx |
| Device Details Modal | واجهة تحليل بيانات الضحية (Modal XL)، توفر نظام Accordion وجداول بيانات ديناميكية. | frontend/src/pages/DeviceDetails.jsx |
| ملف إعداد Docker | تنسيق نشر Backend (المنفذ 5000) و Nginx Frontend (المنفذ 80) عبر الوكيل العكسي. | docker-compose.yml |