꿈을꾸는 파랑새

오늘은 코로나 19 새 희망 자금으로 위장하는 보이스피싱 앱인 newhopefund.apk(새 희망·apk)에 대해 글을 적어 보겠습니다. 해당 새희망 자금은 코로나 19로 타격을 입은 소상공인을 대상으로 하는 지원금으로서 50만 원부터 최대 300만 원까지 지원을 하고 있습니다. 이런 해당 지원금을 주는 척하면서 스마트폰의 보이스피싱앱을 설치해서 개인정보를 수집하고 돈을 갈취하는 newhopefund 에 대해 알아보겠습니다.일단 유포 경로는 다음과 같습니다. http://inbestbeauty(.)com-> http://inbestbeauty(.)com/newhopefund.apk
먼저 해시값은 다음과 같습니다.
파일명:새희망.apk
사이즈:5.90 MB
CRC32:09c10280
MD5:3a69326a014ff80ff53ff8f4ab49fe02
SHA-1:72651db6caba462443ce7f8aa95eb52a2090a4b8
SHA-256:9574cc465edc79f2a0e25ca12a8c9febcff368f498373c9ca841a947c4659a95

보이스피싱 새희망 악성코드 실행
보이스피싱 새희망 악성코드 실행

먼저 해당 보이스피싱 앱 악성코드 안드로이드 권한은 다음과 같습니다.

<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
<uses-permission android:name="android.permission.GET_TASKS"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.REORDER_TASKS"/>
<uses-permission android:name="android.permission.ANSWER_PHONE_CALLS"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.CALL_PHONE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES"/>
<uses-permission android:name="android.permission.READ_PHONE_NUMBERS"/>
<uses-permission android:name="android.permission.READ_CALL_LOG"/>
<uses-permission android:name="android.permission.WRITE_CALL_LOG"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.WRITE_CONTACTS"/>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>
<uses-permission android:name="android.permission.READ_SMS"/>
<uses-permission android:name="android.permission.SEND_SMS"/>
<uses-permission android:name="android.permission.START_ACTIVITIES_FROM_BACKGROUND"/>
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/>
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/>
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-feature android:name="android.hardware.camera" android:required="true"/>
<uses-feature android:name="android.hardware.camera.autofocus"/>
<uses-feature android:name="android.hardware.telephony"/>
악성코드 안드로이드 권한
악성코드 안드로이드 권한

일단 해당 악성코드가 실행되면 다음과 같은 화면이 이 나오는 것을 확인할 수가 있습니다. 새희망 자금 신청하기라고 돼 있고 여기서 신청하기를 눌러주면 간단한 양식이 나오는데 여기서 보면 상당히 민감한 개인정보를 요구하는 것을 확인할 수가 있습니다.
사실상 스마트폰의 권한이 다 넘어가는 것을 확인할 수가 있습니다.
그리고 안드로이드 스마트폰 문자 관련 코드는 다음과 같습니다.

악성코드 문자 관련 코드
악성코드 문자 관련 코드
public static void sendMessage(String p0,String p1){
       try{
          SmsManager.getDefault().sendTextMessage(p0, null, p1, null, null);
       }catch(java.lang.Exception e6){
          p0.printStackTrace();
       }
       return;
    }
}

그리고 IMEI 관련 코드들은 다음과 같습니다.

IMEI 관련 코드
IMEI 관련 코드
private boolean preparePanel(AppCompatDelegateImpl$PanelFeatureState p0,KeyEvent p1){
       AppCompatDelegateImpl$PanelFeatureState mPreparedPan;
       Window$Callback windowCallba;
       DecorContentParent mDecorConten;
       DecorContentParent p0;
       DecorContentParent p1;
       int p11;
       if (this.mIsDestroyed) {
          return false;
       }
       if (p0.isPrepared) {
          return true;
       }
       if ((mPreparedPan = this.mPreparedPanel) != null && mPreparedPan != p0) {
          this.closePanel(mPreparedPan, false);
       }
       if ((windowCallba = this.getWindowCallback()) != null) {
          p0.createdPanelView = windowCallba.onCreatePanelView(p0.featureId);
       }
       int i = (!p0.featureId || p0.featureId == 108)? 1: 0;
       if (i && (mDecorConten = this.mDecorContentParent) != null) {
          mDecorConten.setMenuPrepared();
       }
       if (p0.createdPanelView == null && (!i || !this.peekSupportActionBar() instanceof ToolbarActionBar)) {
          if (p0.menu == null || p0.refreshMenuContent) {
             if (p0.menu == null && (!this.initializePanelMenu(p0) || p0.menu == null)) {
                return false;
             }else if(i && this.mDecorContentParent != null){
                if (this.mActionMenuPresenterCallback == null) {
                   this.mActionMenuPresenterCallback = new cpaa61(this);
                }
                this.mDecorContentParent.setMenu(p0.menu, this.mActionMenuPresenterCallback);
             }
             p0.menu.stopDispatchingItemsChanged();
             if (!windowCallba.onCreatePanelMenu(p0.featureId, p0.menu)) {
                p0.setMenu(null);
                if (i && (p0 = this.mDecorContentParent) != null) {
                   p0.setMenu(null, this.mActionMenuPresenterCallback);
                }
                return false;
             }else {
                p0.refreshMenuContent = false;
             }
          }
          p0.menu.stopDispatchingItemsChanged();
          if (p0.frozenActionViewState != null) {
             p0.menu.restoreActionViewStates(p0.frozenActionViewState);
             p0.frozenActionViewState = null;
          }
          if (!windowCallba.onPreparePanel(false, p0.createdPanelView, p0.menu)) {
             if (i && (p1 = this.mDecorContentParent) != null) {
                p1.setMenu(null, this.mActionMenuPresenterCallback);
             }
             p0.menu.startDispatchingItemsChanged();
             return false;
          }else if(p1 != null){
             p11 = p1.getDeviceId();
          }else {
             p11 = -1;
          }
          p11 = (KeyCharacterMap.load(p11).getKeyboardType() != true)? 1: 0;
          p0.qwertyMode = p11;
          p0.menu.setQwertyMode(p0.qwertyMode);
          p0.menu.startDispatchingItemsChanged();
       }
       p0.isPrepared = true;
       p0.isHandled = false;
       this.mPreparedPanel = p0;
       return true;
    }

그리고 com.securenet.assistant.service.PhoneCallService에서는 스마트폰 전화 걸기 관련 코드들이 있는 것을 확인할 수가 있습니다.

전화 걸기 코드
전화 걸기 코드
private void callNumber(String str) {
        Intent intent = new Intent("android.intent.action.CALL");
        Uri parse = Uri.parse("tel:" + str);
        intent.setPackage("com.android.server.telecom");
        intent.setData(parse);
        intent.setFlags(268435456);
        startActivity(intent);
    }

    @Override // android.app.Service
    public void onDestroy() {
        this.incallMediaPlayer.release();
        super.onDestroy();
    }

악성코드 인증서 정보는 다음과 같습니다.

악성코드 인증서 정보
악성코드 인증서 정보
서명 검증 성공
유효한 APK 서명 v1을(를) 찾았습니다.
서명자 CERT.RSA (META-INF/CERT.SF)
유형: X.509
버전: 3
시리얼 번호: 0xe4b3c5
소유자: CN=yi, OU=yi, O=yi, L=yi, ST=yi, C=01
유효 시작 시각: Fri Apr 29 00:46:48 GMT+09:00 2022
유효 종료 시각: Tue Apr 23 00:46:48 GMT+09:00 2047
공개키 타입: RSA
지수: 65537
모듈러스 크기 (비트): 2048
모듈러스: 17570329943850681119076865087363498565894105867725857570660305475244838686746526215509301222010285422851696988068156237785338564260146252881496775223365722717374176123021020387060358977918947506766462023723215245748448183295399115809209603972156134603738490048959768939025266635215155909303048930282829218134958730676425635198023585642622708952975654985989681825573204294879457321573372848419341345561415514560512683425095319658091739742794667998262991246958667402804631565968496045962420228619409597830716470617307292379595921246545399194870024688123364336671989564540337911860304129341650581167416733597701287239141
서명 유형: SHA256withRSA
서명 OID: 1.2.840.113549.1.1.11
MD5 지문: 70 F7 F7 61 D3 21 56 58 9B D7 46 D1 1C 89 14 30 
SHA-1 지문: 49 E4 D9 C9 8D 2A 73 A9 8C BE CC 1A B4 96 CD 6D BD 64 0F 58 
SHA-256 지문: 45 D4 80 94 23 18 6D B1 6E 8A 02 8F 73 DD 8D 73 2A 40 EE 31 AA EA 7F 4E C5 F4 1E 5C E0 AB 6C F4

그리고 악성코드
DEX 정보와 해쉬값은 다음과 같습니다.
Dex File Name:classes.dex
MD5:5de40cf6a0d0d56963d42b222dd00fb3
Class Size:5631
Method Size:65084
String Size:53073
Dex File Name:classes2.dex
File Size:1091704 bytes
MD5:c7e5e31c602a15ee7e71b817f8bc062b
Class Size:852
Method Size:6008
String Size:8182
2022-04-30 17:58:34 UTC 기준 바이러스 토탈에서 탐지하는 보안 업체들은 다음과 같습니다.
AhnLab-V3:Trojan/Android.Kaishi.1134067
Alibaba"TrojanBanker:Android/Fakecalls.e7007aae
Avast-Mobile:Android:Evo-gen [Trj]
Avira (no cloud):ANDROID/Spy.Agent.akxut
BitDefenderFalx:Android.Riskware.FakeApp.TO
Cynet:Malicious (score: 99)
DrWeb:Android.BankBot.930.origin
ESET-NOD32:A Variant Of Android/Spy.Agent.BSY
Fortinet:Android/Agent.BSY!tr
Ikarus:Trojan-Spy.AndroidOS.Agent
K7GW:Trojan ( 0058c2f41 )
Kaspersky:HEUR:Trojan-Banker.AndroidOS.Fakecalls.r
McAfee:Artemis!5DE40CF6A0D0
McAfee-GW-Edition:Artemis!Trojan
Sophos:Andr/Xgen-AVM
Symantec:Trojan.Gen.2
Symantec Mobile Insight:AppRisk:Generisk
Trustlook:Android.Malware.Trojan
입니다. 일단 기본적으로 보안 수칙을 잘 지키고 백신앱을 설치해 두는 것이 안전하게 스마트폰을 사용하는 방법일 것입니다.

그리드형

공유하기

facebook twitter kakaoTalk kakaostory naver band