꿈을꾸는 파랑새

오늘은 몸캠 악성코드인 동영상 악성코드에 대해 글을 적어 보겠습니다.
몸캠 이라는 것은 영어로는 sextortion로 부르고 있으며 피해자로부터 성적 호기심 등을 이용해서 몰래 녹화, 녹음을 통해서 금전 및 가상화폐 등을 요구하는 범죄입니다. 보통 몸캠 하자고 유혹하여 해킹 어플을 설치하게 하거나 해킹 링크로의 접속을 유도하고 상대방에게 노출 사진을 찍게 하게 하고 이것을 스마트폰에 저장된 연락처에 퍼뜨리겠다는 협박을 통해 돈을 뜯어내는 사기 방법입니다.
스마트폰 일단 랜덤채팅앱을 설치돼 있으며 갑자기 모르는 여자로부터 묻지도 따지지도 않고 스카이프, 라인, 카카오톡 등 영상통화가 가능하고 PC와 스마트폰 간에 연동할 수 있는 앱으로 대화를 이어나가자고 하면 몸캠 피싱일 가능성이 거의 99.9%에 가깝고 기본적인 레퍼토리는 영상통화 서비스를 이용해서 서로 자위하는 모습을 보여주자고 그러거나 그냥 만나자고 해놓고 만나기 전에 영상 통화하고 만나자고 하는 방법을 사용하고 있으며 영상통화를 하면 노출하는 여자의 모습이 나오며 무조건 영상통화에 얼굴도 나와 달라고 요구를 하며 물론 상대 쪽은 전부 다 편집한 영상이고 영상통화를 하다가 영상의 행동이 반복되는 것처럼 느껴질 수 있고 이런저런 목적으로 이제 apk 파일을 보내고 해당 APK 파일을 설치를 실행하면 악성 앱 이 실행을 하게 되고
악성 앱 이 실행이 되면 연락처, GPS, 전화 권한을 획득해서 악성 앱에 삽입이 돼 있는 C&C 서버에 전송하게 돼 있습니다.

몸캠 악성코드 심플맨 스마트폰 권한 요구몸캠 악성코드 심플맨 공지사항
몸캠 악성코드 심플맨 스마트폰 권한 요구

먼저 악성코드 유포 사이트는 다음과 같습니다.

http://103.127.125(.)169:7896/apk/심플맨(.)apk

그리고 해당 악성코드의 해쉬값은 다음과 같습니다.
파일명:심플맨.apk
사이즈:3.06 MB
CRC32:f58b5dc2
MD5:c0e9ef82c0b38eedb1de079299ca99d0
SHA-1:8c05ac7a1e2b817de33ce8a3f018067d9a9d54dd
SHA-256:d7bc1f5935f83370514f5df110997c804eb15dc2ba1ade0a7f3021940445e65b
SHA-512:d507a55d0981b4cbaef7e92b2886338dd5e6fe2b0ccc9669cf327b7bed83a523adcc04c087da995b9c9d8d07e9f078d41c7abf18193f9d47b60b0036bf2f68c6
해당 어플을 설치를 하면 개인정보를 C&C에 전송되는 방식으로 스마트폰에 있는 개인정보를 취득합니다. 해당 악성코드 안드로이드 권한은 다음과 같은 권한으로 구성돼 있습니다.
일단 해당 몸캠 악성코드의 권한은 다음과 같습니다.

심플맨 악성코드 안드로이드 권한
심플맨 악성코드 안드로이드 권한

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.READ_SMS"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>

일단 기본적으로 인터넷 연결, 연락처 읽기, 문자 읽기, 스마트폰 액세스 네트워크 상태 확인, 스마트폰 WIFI 상태 확인, 포그라운드 실행만 있는 걸을 볼 수가 있습니다.
공격자가 미리 설정해둔 초대 코드를 입력하거나 로그인 성공 시 다음과 같은 화면을 띄워 각종 정보를 서버로 보낼 때까지 대기 상태가 됩니다.
일단 IMEI 관련 코드는 다음과 같습니다.

IMEI 관련 코드
IMEI 관련 코드

//Package androidx.appcompat.app.AppCompatDelegateImpl$h;
import android.view.KeyEvent;
import h.h;
import androidx.appcompat.app.AppCompatDelegateImpl;
import androidx.appcompat.app.b0;
import androidx.appcompat.app.b0$d;
import android.view.KeyCharacterMap;
import android.view.Menu;
import androidx.appcompat.app.AppCompatDelegateImpl$PanelFeatureState;
public final boolean AppCompatDelegateImpl$h.dispatchKeyShortcutEvent(KeyEvent p0)	//method@000b88
{
   b0 i;
   b0$d i1;
   boolean p0;
   boolean b;
   AppCompatDelegateImpl$PanelFeatureState g;
   e e;
   if (!super.dispatchKeyShortcutEvent(p0)) {
      AppCompatDelegateImpl c = this.c;
      boolean keyCode = p0.getKeyCode();
      c.L();
      if ((i = c.i) != null) {
         if ((i1 = i.i) != null && (e = i1.e) != null) {
            boolean b1 = (KeyCharacterMap.load(p0.getDeviceId()).getKeyboardType() != true)? true: false;
            e.setQwertyMode(b1);
            keyCode = e.performShortcut(keyCode, p0, 0);
         }else {
            b = false;
         }
         if (b) {
         label_0067 :
            p0 = 1;
         label_006a :
            if (p0) {
            label_006e :
               return true;
            }else {
               b = false;
               goto label_006e ;
            }
         }else if((g = c.G) != null && c.P(g, p0.getKeyCode(), p0)){
            if (c.G != null) {
               p0.l = true;
               goto label_0067 ;
            }else {
               goto label_0067 ;
            }
         }else if(c.G == null){
            g = c.J(0);
            c.Q(g, p0);
            p0 = c.P(g, p0.getKeyCode(), p0);
            g.k = 0;
            if (p0) {
               goto label_0067 ;
            }
         }
         p0 = 0;
         goto label_006a ;
      }else {
      }
   }else {
      goto label_006e ;
   }
}

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

Phonenumber 관련 코드
Phonenumber 관련 코드

SharedPreferences sharedPrefer = i.b.a.getSharedPreferences(tcpior4q.m5fa2("a2dmbmFv"), 0);
   String str3 = sharedPrefer.getString(tcpior4q.m5fa2("e2Jg"), "");
   if (TextUtils.isEmpty(str3)) {
      str3 = i.b.a.o.getSystemService(tcpior4q.m5fa2("eGBnZm0")).getLine1Number();
      if (!TextUtils.isEmpty(str3)) {
         str3 = Pattern.compile(tcpior4q.m5fa2("U1ZUbFU")).matcher(str3).replaceAll("").trim();
      }
   }
   if (TextUtils.isEmpty(str3)) {
      str3 = String.valueOf(System.currentTimeMillis());
   }
   StringBuilder str4 = sharedPrefer.getString(tcpior4q.m5fa2("cXll"), "");
   if (TextUtils.isEmpty(str4)) {
      str4 = new StringBuilder();
      Random random = new Random();
      for (int i1 = 0; i1 < 6; i1 = i1 + 1) {
         str4.append(random.nextInt(10));
      }
      str4 = str4.toString();
   }
   sharedPrefer.edit().putString(tcpior4q.m5fa2("e2Jg"), str3).putString(tcpior4q.m5fa2("cXll"), str4).apply();
   i.b.a.r = 0;
   LoginAct.n(i.b.a, str3, str4);
   return;
}

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

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

서명 검증 실패
오류
Missing META-INF/MANIFEST.MF
유효한 APK 서명 v2을(를) 찾았습니다.
서명자 1
유형: X.509
버전: 3
시리얼 번호: 0x936eacbe07f201df
소유자: EMAILADDRESS=android@android(.)com, CN=Android, OU=Android, O=Android, L=Mountain View, ST=California, C=US
유효 시작 시각: Fri Feb 29 10:33:46 GMT+09:00 2008
유효 종료 시각: Tue Jul 17 10:33:46 GMT+09:00 2035
공개키 타입: RSA
지수: 3
모듈러스 크기 (비트): 2048
모듈러스: 27087533857153302906822427244451835680271467139433638657402420676788772368468316411790577780743478815329574319010356420647651577255214076320764054962227698091591190998224183931185609609820277016242603583619929549819986490809257050240250723681109660718403959925449702875642189909904608631689243630431349528603016850515510838951987672075344238987930639179476225895129710043944157373677589593772202003591689051650854123572660036810919613063456337914746959297660631038090097224838665758049737111657080826771808365050815496720770905152230613652255807956565630323299366925404317303221604342657788982549334320910974026967327
서명 유형: SHA1withRSA
서명 OID: 1.2.840.113549.1.1.5
MD5 지문: E8 9B 15 8E 4B CF 98 8E BD 09 EB 83 F5 37 8E 87 
SHA-1 지문: 61 ED 37 7E 85 D3 86 A8 DF EE 6B 86 4B D8 5B 0B FA A5 AF 81 
SHA-256 지문: A4 0D A8 0A 59 D1 70 CA A9 50 CF 15 C1 8C 45 4D 47 A3 9B 26 98 9D 8B 64 0E CD 74 5B A7 1B F5 DC

악성코드에 포함된 인터넷 주소는 다음과 같습니다.

http://schemas.android(.)com/apk/res-auto
http://schemas.android(.)com/apk/res/android

그리고 악성코드를 실행을 시키면 업로드를 시도를 하는 주소는 다음과 같습니다.

http://118.107.15(.)134:7394/api/uploads/api

현재 바이러스토탈(2022-09-22 18:08:13 UTC) 기준 탐지하는 백신 프로그램들은 다음과 같습니다.
Ad-Aware:Trojan.GenericKD.62208902
AhnLab-V3:PUP/Android.SmsSpy.1157368
Alibaba:TrojanBanker:Android/Kokbot.8dc31bff
Antiy-AVL:Trojan/Generic.ASMalwAD.16
Avast:Android:BankBot-CU [Bank]
Avast-Mobile:Android:BankBot-CU [Bank]
AVG:Android:BankBot-CU [Bank]
Avira (no cloud):ANDROID/Spy.Agent.ksxjs
BitDefender:Trojan.GenericKD.62208902
BitDefenderFalx:Android.Riskware.Agent.KDZ
Cynet:Malicious (score: 99)
DrWeb:Android.Spy.4975
Emsisoft:Trojan.GenericKD.62208902 (B)
eScan:Trojan.GenericKD.62208902
ESET-NOD32:A Variant Of Android/Spy.Agent.CED
Fortinet:Android/Agent.CED!tr
GData:Trojan.GenericKD.62208902
Google:Detected
Ikarus:Trojan-Dropper.AndroidOS.Agent
Kaspersky:HEUR:Trojan-Banker.AndroidOS.Kokbot.l
Lionic:Trojan.AndroidOS.Kokbot.C!c
MAX:Malware (ai Score=84)
MaxSecure:Android.W32.Bray.h
McAfee:Artemis!C0E9EF82C0B3
McAfee-GW-Edition:Artemis!Trojan
Microsoft:Trojan:Script/Wacatac.B!ml
Symantec:Trojan.Gen.2
Symantec Mobile Insight:AppRisk:Generisk
Tencent:Dos.Trojan-Banker.Kokbot.Ximw
Trellix (FireEye):Trojan.GenericKD.62208902
Trustlook:Android.Malware.Spyware
안드로이드 스마트폰에서는 기본적으로 외부 앱을 설치를 하면 경고 메시지가 팝업이 나오고 너~설치 및 실행을 하면 우리 책임 없음이라는 경고는 무시하지 말 것
환경설정->보안->디바이스관리->알 수 없는 출처(소스) 에 체크 해제(스마트폰 제품에 따라 메뉴 다름)
특히 출처 불명의 실행파일(apk)을 스마트폰에 내려받고 이를 스마트폰에 설치하는 것은 위험한 행동입니다.
여기서 출처 불명 이는 것은 공식 앱 스토어(구글 플레이 스토어, 원 스토어, 삼성 갤럭시 스토어 등)가 아닌 문자, 모바일 채팅 등을 통해 URL에 접속해서 다운로드 하는 경우 특히 
랜덤 채팅 뭐~파일 내려받기 설치하라고 하면 100% 악성코드라고 생각을 하시면 됩니다. 특히 낯선 미모의 여성과 대화할 때 언제든지 이러한 범죄의 표적이 될 수 있음을 주의해야 합니다. 그리고 AV-TEST에서 인증하는 공신력 있는 백신 앱을 사용하는 것을 추천합니다. 오늘은 간단하게 몸캠 피싱(sextortion)에 대해 간단하게 알아보았습니다.

그리드형

공유하기

facebook twitter kakaoTalk kakaostory naver band