看我如何回怼手机黑客?黑回去!

本文中,以色列研究者通过反编译恶意APK应用GlanceLove,向攻击者服务器上传了webshell,实现了Hack Back(黑回去)。

某天晚上,我躺在沙发上,偶然看到论坛中有人披露了一个由某黑客组织专门开发的恶意安卓应用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:

这个函数调用了两个参数,其中str代表回调请求web服务器的URL,bArr代表发送到web服务器的数据。还可以看到,请求方法定义在了变量f5386b中,而请求属性则定义在了变量f5387c 和 f5388d中:

攻击者使用了工具ProGuard来对字符串和函数名进行了混淆,所以前述的我找不到任何URL字符串的原因就在于此。ProGuard是一个压缩、优化和混淆Java字节码文件的免费的工具,它可以删除无用的类、字段、方法和属性。解码之后,可以看到,其中包含了以下信息:

接着,我检查了有哪些函数间接调用了 “HttpURLConnection” 类函数m7665a,结果是这样的:

经过分析,我发现,函数m7672b在函数m7489b中定义URL链接时调用了函数m7665a,而在m7487a函数中,在末尾它返回了包含URL链接的f5204o。解码之后,该APK请求的远程服务器URL链接为:

HTTP://WWW.GLANCELOVE.COM/APPS/d/p/OP.PHP

另外,除了解码之后看到的APK内置连接请求URL链接,我还发现了很多其它有用的字符串:

从以上信息中可知,我可以利用参数 devId、op、fName和data来构造一个发往攻击控制服务器WWW.GLANCELOVE.COM的POST请求,其中参数devId、op和fName的值都比较好猜,但是参数data我就不知道是什么了。所以,我又从以下反编译代码中进行了分析:

在函数m7671a中,它利用值分别为 “CCC”、“E” 和 “D”的三个函数m7668a、m7672b 和 m7674c来创建了参数 op 的 id值。

虽然我不知道所有这些参数值代表的确切意义,但我还是尝试着构造了一个发往WWW.GLANCELOVE.COM的POST请求,该请求Payload为:

devId=123123&op=CCC&fName=123&data=abc

该POST请求应该已经成功发送了,在响应中,除返回了payload的长度38这外,没有其它有用信息,因此,我还得找到我具体的上传文件路径,这真是难找啊。经过几次有根据的猜测,我发现了那个上传文件的最终路径是/apps/d/uploads/dev/123123/123。

由此方法,我接着上传了一个webshell过去,发现这个恶意APK竟然已经控制了500多部智能手机,并且窃取超过10G的数据。

*参考来源:asaf ,clouds 编译,转载请注明来自 FreeBuf.COM

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2018-08-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏编程微刊

highcharts中的x轴如何显示时分秒时间格式

上一篇文章写道:三分钟上手Highcharts简易甘特图:https://www.jianshu.com/p/d669d451711b,在官方文档里面,x轴默认...

26620
来自专栏美团技术团队

美团App插件化实践

背景 在Android开发行业里,插件化已经不是一门新鲜的技术了,在稍大的平台型App上早已是标配。进入2017年,Atlas、Replugin、Virtual...

49490
来自专栏杨建荣的学习笔记

MySQL里几个查询语句的性能优化论证

前几天在网上看了一个帖子,描述的现象是在MySQL中,对in,or,union all的性能的比对,看完之后,我就产生了疑问。 文章的大意是说,使用i...

33760
来自专栏恰童鞋骚年

ASP.Net WebForm温故知新学习笔记:二、ViewState与UpdatePanel探秘

开篇:经历了上一篇《aspx与服务器控件探秘》后,我们了解了aspx和服务器控件背后的故事。这篇我们开始走进WebForm状态保持的一大法宝—ViewState...

18430
来自专栏青青天空树

node.js+vue.js搭建程序设计类课程教学辅助系统

  毕业才刚刚两个多月而已,现在想想大学生活是那么的遥不可及,感觉已经过了好久好久,社会了两个月才明白学校的好啊。。。额,扯远了,自从毕业开始就想找个时间写下毕...

59420
来自专栏Aloys的开发之路

Python第三方常用工具、库、框架等

       Python ImagingLibrary(PIL):它提供强大的图形处理的能力,并提供广泛的图形文件格式支持,该库能进行图形格式的转换、打印和显...

502100
来自专栏杨建荣的学习笔记

system表空间不足的问题分析(r6笔记第66天)

很多事情见多了也就有了麻木的感觉,报警短信就是如此,每天总能收到不少的报警短信,可能很多时候就扫一眼,如果没有严重的问题自己是不会情愿打开电脑处理的。 对于此,...

28240
来自专栏恰童鞋骚年

操作系统核心原理-3.进程原理(下):进程通信

进程作为人类的发明,自然也免不了脱离人类的习性,也有通信的需求。如果进程之间不进行任何通信,那么进程所能完成的任务就要大打折扣。人类的通信方式无外乎对白(通过...

11520
来自专栏架构之路

超清晰的makefile解释、编写与示例

Makefile范例教学 Makefile和GNU make可能是linux世界里最重要的档案跟指令了。编译一个小程式,可以用简单的command来进行编译;稍...

52480
来自专栏向治洪

android开发性能分析

1 背景 其实有点不想写这篇文章的,但是又想写,有些矛盾。不想写的原因是随便上网一搜一堆关于性能的建议,感觉大家你一总结、我一总结的都说到了很多优化注意事项...

27350

扫码关注云+社区

领取腾讯云代金券