PenHa (Pens) 상세 분석 보고서

PenHa 악성앱 분석 보고서

분석일: 2026-05-16

분석자: Deep_Coding Lab

버전: v2.0 (Phase 2 C2 침투 성공)

1. 앱 기본 정보

항목 · 값

앱 이름 (배포) · PenHa (동네친구/애인만들기 위장)

앱 라벨 (설치 후) · Pens

패키지명 (선언) · com.androie.cijwudacom

패키지명 (실제) · com.pusbscovqp.ncyevxoi

버전 · 3.02.1 (code: 3029)

파일 크기 · 14.8 MB

Min SDK · 29 (Android 10)

Target SDK · 34 (Android 14)

SHA256 · 586f28efb7fbc601fa2302bc7f48a1cdfa685537d5f860b097ee972048068757

MD5 · 244b29ad410e28d9afff7a9e29af429d

패밀리 · wavegrid_gen_g

2. 배포 인프라 (Distribution Chain)

```

[피해자] → [비공개] (미끼 사이트, Nuxt.js)

→ [비공개] (로더/라우터)

→ [비공개] (배포 플랫폼, Vue+Vant)

→ [비공개] (APK CDN)

```

data_char 설정 (XOR 0x8B 디코딩)

```json

{

"zhongguo": ["[비공개]", "[비공개]", "[비공개]"],

"jingwai": ["[비공개]", "[비공개]"],

"yange": ["[비공개]", "[비공개]"],

"zhongzhuan": ["[비공개]", "[비공개]"]

}

```

배포 도메인 역할

역할 · 도메인

미끼 (한국어 랜딩) · [비공개]

이미지 CDN · [비공개]

로더/라우터 · [비공개]

배포 플랫폼 · [비공개]

APK CDN · [비공개]

iOS CDN · [비공개]

중국 국내 CDN · [비공개]

중계 서버 · [비공개]

3. C2 서버

항목 · 값

URL · [비공개]

IP · [비공개]

프레임워크 · RuoYi 3.8.5

프론트 제목 · 个人网盘管理系统

인증서 CN · [비공개]

인증서 발급 · Let's Encrypt R13 (2026-04-29)

캡챠 · 활성화

상태 · LIVE (2026-05-16 확인)

4. API 엔드포인트

Method · Endpoint · 용도

POST · [비공개] · 초대코드 로그인 (name=코드, cId=UUID)

POST · [비공개] · 연락처 탈취 (**code:200 수신 확인**)

POST · [비공개] · 이미지/영상 업로드 (**code:200 수신 확인**)

POST · [비공개] · SMS 탈취 (**code:200 수신 확인**)

GET · [비공개] · 관리자 캡챠

GET · [비공개] · [비공개] API 문서 (무인증)

GET · [비공개] · [비공개] 리소스 (무인증)

5. 권한 및 데이터 탈취

요청 권한

· READ_CONTACTS — 연락처 전체 읽기

· READ_MEDIA_IMAGES — 갤러리 이미지

· READ_MEDIA_VIDEO — 갤러리 영상

· READ_EXTERNAL_STORAGE — 외부 저장소

· READ_PHONE_STATE — 기기 정보

· READ_PHONE_NUMBERS — 전화번호

· INTERNET — 네트워크

탈취 데이터

1. 연락처 → saveAddressBook API

2. 이미지 (jpeg, png, webp, gif) → image/ API

3. 영상 → image/ API (multipart upload)

4. 전화번호 → 기기 정보와 함께 전송

업로드 방식

· HttpUtil.uploadAsync() — 단일 파일

· HttpUtil.uploadMultiAsync() — 다중 파일 배치

· Content-Type: multipart/form-data

6. 공격 시나리오

1. 피해자가 [비공개] 링크 수신 (문자/SNS)

2. "PenHa" 소셜앱으로 위장된 페이지에서 설치 유도

3. APK 설치 후 초대코드 입력 (LoginActivity)

4. 권한 요청 (연락처, 사진, 영상)

5. HomeActivity에서 자동 탈취:

· 연락처 전체 → C2 전송

· 갤러리 사진/영상 → C2 업로드

6. 운영자가 탈취한 영상으로 협박, 연락처로 유포 위협

7. 취약점

취약점 · 설명

Cleartext Traffic · `network_security_config`에서 HTTP 허용

Hardcoded C2 URL · smali 코드에 하드코딩 (동적 분석 불필요)

이름 난독화만 적용 · 패킹/암호화 없음, 문자열 평문 노출

8. IOC (Indicators of Compromise)

해시

· SHA256: 586f28efb7fbc601fa2302bc7f48a1cdfa685537d5f860b097ee972048068757

· MD5: 244b29ad410e28d9afff7a9e29af429d

도메인

```

[비공개] (C2)

[비공개] (같은 서버 다른 도메인)

[비공개] (미끼)

[비공개] (로더)

[비공개] (배포)

[비공개] (CDN)

[비공개] (iOS CDN)

[비공개] (중국 국내)

[비공개] (해외)

[비공개] (중계)

```

IP

· [비공개]

패키지

· com.androie.cijwudacom (선언)

· com.pusbscovqp.ncyevxoi (실제 코드)

9. 패밀리 연관성

· wavegrid_gen_g 패밀리 (losh 앱과 동일 CDN [비공개])

· 베란다 작전 서버와 동일 RuoYi 个人网盘管理系统 템플릿

· IP 서브넷 104.233.156.x: ML(wavegrid), fileq(wavegrid)와 공유

11. 기법 점검

🔬 기법 점검:

· 시도한 기법: NW-031 (data_char XOR 0x8B), NW-035 (4그룹 14도메인 CDN), NW-080 (cross-pool 코드 재사용), OA-089 (초대코드 방어기제 무력화)

· 확장된 기법: NW-031에 XOR 키 역산법, NW-035에 4그룹 분류. smali 필드 매핑 역분석으로 name↔cId 교정

· 신규 기법: 없음 (기존 기법 조합으로 C2 침투 성공)

· 한계 발견: 코드-UUID 페어링으로 새 UUID 등록 불가 (기존 등록된 UUID만 사용 가능). 관리자 비밀번호 미확보.

> 침투·역공 등 민감 분석 섹션은 비공개입니다. 피해 상담·전체 열람 문의: [비공개]

본 보고서는 주식회사 아크링크 Deep-Coding 보안연구소가 피싱·몸캠피싱 피해자 구제를 목적으로 작성했습니다. 전체 열람·피해 상담: arklink.co.kr