꿈을꾸는 파랑새

반응형

최근 전화금융사기 조직들은 유명 은행으로 속인 피싱 사이트를 만들고 피싱 사이트에서 앱을 다운로드 해서 설치를 유도해 고객의 돈을 훔치는 행동을 하고 있습니다. 그리고 물론 해당 악성코드를 설치하면 당연히 진짜 고객센터로 연결되지 않고 경찰서, 검찰청으로 신고해도 보이스피싱 조직에 전화가 걸리게 구조가 돼 있습니다.
오늘은 이런 보이스피싱범 들이 만든 악성코드인 신한은행.apk에 대해 글을 적어 보겠습니다. 일단 기본적으로 악성코드는 다음과 같은 사이트로 유도하고 있습니다.

신한 은행 악성코드 실행
신한 은행 악성코드 실행

해당 악성코드를 실행하면 앞서 이야기한 것처럼 기본 전화 앱을 신한은행 사칭하는 악성코드로 변경하게 강요를 하면 해당 방법을 통해서 보이스피싱범과 통화하게 연결하기 위한 장치입니다. 일단 해쉬값은 다음과 같습니다.
파일명:sinhan.apk
사이즈:16.6 MB
CRC32:45d31875
MD5:b44681b0914de759a8f4429028105f8d
SHA-1:564828d2998bebd87ea386baa9a67396b326b8d8
SHA-256:6bd6babc989708684ce4d12c9fc643e69451c61c8ff4aefacf66fea6bd23fcb0
그리고 안드로이드 권한은 다음과 같습니다.

악성코드 안드로이드 권한
악성코드 안드로이드 권한

<uses-permission android:name="android.permission.GET_TASKS"/>
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.READ_CALL_LOG"/>
<uses-permission android:name="android.permission.WRITE_CALL_LOG"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>
<uses-permission android:name="android.permission.READ_SMS"/>
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<uses-permission android:name="android.permission.REORDER_TASKS"/>
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
<uses-permission android:name="android.permission.CALL_PHONE"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.SET_ALARM"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ANSWER_PHONE_CALLS"/>
<uses-permission android:name="android.permission.PROCESS_INCOMING_CALLS"/>
<uses-permission android:name="android.permission.WRITE_SMS"/>
<uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES"/>
<uses-feature android:name="android.hardware.camera2" android:required="false"/>
<uses-feature android:name="android.hardware.camera2.autofocus" android:required="false"/>
<uses-permission android:name="org.fidoalliance.uaf.permissions.FIDO_CLIENT"/>
<uses-permission android:name="com.samsung.android.pass.permissions.USE_PASS_SERVICE"/>
<uses-permission android:name="com.samsung.android.camera.iris.permission.USE_IRIS"/>
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE"/>

사실상 스마트폰의 통제권한을 다 가져가는 것을 확인할 수가 있습니다.
그리고 언제나 같은 패턴인 대출승인 사례에 보면 뭐~2021년 6월부터 가 들어가 져 있었는데 지금은 사라진 것을 확인할 수가 있으면 그냥 대출승인 사례는 똑같이 사용을 하는 것으로 보아서 재탕하는 것 같습니다.
광고하는 대출 상담가 부분에 보면 온 힘을 다해서 고객의 만의도를 최고로~~로 시작하는 부분이 있는데 상당히 친숙한 이미지와 그리고 한국어 가 이상한 것을 볼 수가 있으며 똑같은 것을 사용하는 것으로 보입니다.

신한은행 가짜 상담사
신한은행 가짜 상담사

문자 관련 코드는 다음과 같습니다.

public void sendMessage(Message message) {
        String str;
        char c;
        try {
            if (!getUseSynchronousMode() && this.handler != null) {
                if (!Thread.currentThread().isInterrupted()) {
                    boolean z = this.handler != null;
                    AsyncHttpResponseHandler asyncHttpResponseHandler = null;
                    if (Integer.parseInt("0") != 0) {
                        c = 5;
                        str = null;
                    } else {
                        str = C0073d.m7345a(61, "u\u007fq$-'1d6.(=%.k\"\":o24r=!9:v");
                        c = 2;
                    }
                    if (c != 0) {
                        Utils.asserts(z, str);
                        asyncHttpResponseHandler = this;
                    }
                    asyncHttpResponseHandler.handler.sendMessage(message);
                    return;
                }
                return;
            }
            handleMessage(message);
        } catch (ParseException unused) {
        }
    }

전화 관련 코드들은 다음과 같습니다.

@Override // android.telecom.InCallService
    public void onCallRemoved(Call call) {
        try {
            super.onCallRemoved(call);
            Iterator<C1824a> it = CallActivity.f5423e0.iterator();
            while (it.hasNext()) {
                C1824a next = it.next();
                if (next.m1563d() == call) {
                    next.m1545v(null);
                }
            }
        } catch (C1918b unused) {
        }
    }
}

전화 관련 코드
전화 관련 코드

그리고 신한은행 앱을 실행을 하면 상담 신청을 했을 때 개인정보를 입력하면 해당 전화번호로 보이스피싱범 들이 해당 스마트폰 권한 도 가지고 있는 것과 입력한 개인정보를 바탕으로 연락을 오는 것을 볼 수가 있으면 서로 역할 나누기로 해서 피해자에게 금전적인 이득을 취하려고 할 것입니다. 그리고 신한은행 악성코드 인증서 정보는 다음과 같습니다.
서명 검증 성공
유효한 APK 서명 v1을(를) 찾았습니다.
서명자 CERT.RSA (META-INF/CERT.SF)
유형: X.509
버전: 3
시리얼 번호: 0x5890cd53
소유자: CN=a, OU=a, O=a, L=a, ST=a, C=a
유효 시작 시각: Mon Sep 27 22:07:22 GMT+09:00 2021
유효 종료 시각: Fri Feb 12 22:07:22 GMT+09:00 2049
공개키 타입: RSA
지수: 65537
모듈러스 크기 (비트): 2048
모듈러스: 18383097477113640884268914725840847559153157638591137348240142569785845449422886882089036502404289310459499996820122310934068421273503170316775659224304223549365567370282340297760817930130043976479736192108812164757844623656625308263442014385868171567853397978400028719407502626856685272155427693729852330519104229703685684049989225412331111365431236199252699409831382976003082625083164631704079817043530986663424658795750719211683855869111108001841976973984341440002230575612939087434758699716405589532220030733419316175061452978561429998418593795702804485378343309529707354937038279697611199486704549571609148669663
서명 유형: SHA256withRSA
서명 OID: 1.2.840.113549.1.1.11
MD5 지문: BE A3 9D 67 AA F2 29 3F 0A 82 24 C3 F9 1B 8D D6 
SHA-1 지문: FB B3 7A B8 E0 B6 07 E1 2D CE 90 C8 0F 39 A2 CD E2 BC 28 97 
SHA-256 지문: 53 2E AE 62 98 F8 E6 7F 78 18 5F EB D2 7C 14 55 8E 3C 7A A7 A4 EF 6A 64 97 CC EC E1 03 D8 78 9B 
악성코드가 통신하기 위한 IP 주소는 다음과 같습니다.

악성코드 인증서 정보
악성코드 인증서 정보

172.253.63(.)99
바이러스토탈 2022-05-22 09:57:23 UTC 기준으로 탐지하는 보안 업체들은 다음과 같습니다.
AhnLab-V3:Trojan/Android.Kaishi.1051078
Alibaba:TrojanSpy:Android/Fakecalls.adab7dc9
Avast-Mobile:Android:Evo-gen [Trj]
Avira (no cloud):ANDROID/Spy.Agent.vwisy
BitDefenderFalx:Android.Trojan.FakeApp.MO
Cynet:Malicious (score: 99)
DrWeb:Android.BankBot.850.origin
ESET-NOD32:A Variant Of Android/Spy.Agent.BRW
Fortinet:Android/Agent.BRW!tr.spy
GData:Generic.Trojan.Agent.OT8WIU
Ikarus:Trojan.AndroidOS.Agent
K7GW:Spyware ( 0057d4fd1 )
Kaspersky:HEUR:Trojan-Spy.AndroidOS.Fakenocam.g
Lionic:SUSPICIOUS
MAX:Malware (ai Score=99)
McAfee:Artemis!0653CB4E6DA6
McAfee-GW-Edition:Artemis!Trojan
Microsoft:Trojan:AndroidOS/Fakecalls.D
NANO-Antivirus:Trojan.Android.BankBot.jnqngx
QuickHeal:Android.Fakenocam.GEN44211
Sophos:Andr/FakeCall-A
Symantec:Trojan.Gen.MBT
Symantec Mobile Insight:AppRisk:Generisk
Tencent:Android.Trojan-spy.Agent.Pdlu
Trustlook:Android.Malware.Spyware
니다. 대부분 이름 있는 보안 업체에서 탐지하고 있으면 이런 피해를 최소화하기 위해서 스마트폰에서 성능이 떨어진다는 생각으로 백신 앱을 설치를 하지 않는 분들이 있는데 신뢰 있는 백신 앱을 설치를 해서 사용을 하시는 것이 이런 악성코드를 예방할 수가 있습니다. 이렇게 신한은행 앱을 간단하게 분석을 해 보았습니다. 즉 최소한 V3 정도는 설치하시는 안전하게 사용을 할 수가 있으며 기본적으로 구글 플레이 스토어 이외 앱은 설치를 하지 않는 것을 추천합니다.

반응형
그리드형

댓글

비밀글모드

  1. 소스코드로 분석해보는 악성 앱이라...되게 신선하네요!
    백신 어플 귀찮아서 잘 안쓰고 있었는데 중요성 다시한번 느끼고 갑니다 ㅎㅎ
    2022.05.25 23:10 신고
    • 악성코드 분석을 할떄에는 동적 분석,정적 분석 다 하고 있습니다.
      2022.05.26 00:38 신고