「9.27 音频流氓软件」深度剖析
作者:赖渊
最近网上疯传着一个包名为com.sgzh.dt的一个叫“送给最好的TA”的一款安卓软件,据说各大高校都已中招,受害者失魂落魄,苦不堪言(被称为“9·27软件”事件)。甚至网传这个软件只要安装了,就算卸载掉还是会有残留文件,遗祸无穷。

真有这么神奇?比TWRP权限还高??
于是笔者抱着科学严谨的态度特地找到了这个所谓的“自然之声”APK,打算好好看看这个APK发育的正常不正常。
想要知道APK的工作原理和方式就得先想办法把它的“外衣”扒个精光,然后好好看看这个APK的代码是怎么回事,才能弄懂这个APK的工作方向是什么。
有一些恶意APK的开发者为了防止别人扒掉应用的“衣服”,会特地给APK加一件“铠甲”在外边,也就是对APK进行“加固”。显然,想扒一个加了固的APK的“衣服”不是一件容易的事,你得先把它的“铠甲”拆了,才能快乐地去扒掉它的外衣。拆“铠甲”的过程我们一般叫做“脱壳”,也就是把APK的外壳先敲下来。不过笔者很顺利的就把这个软件的“衣服”扒掉了,很显然,这个APK是没有进行加固处理的。
这就好办了!首先让我们看看这个APK都有些什么资源文件在里面,比如图片、视频、音频等文件。

然而理想很饱满,现实却很骨感,这个APK里面只有两张图片和几个字而已……
但笔者在APK的/assets/路径里发现了一个名为0.mp3的音频文件!

终于看到一个有点东西的东西了啊,来来来让笔者听听里面放的是些什么东西!
……
……

这……这就是传说中的“鸡叫”?!恐怖如斯,弄到这里笔者就知道这个APK不是什么好东西了……
接下来我们看看这个AndroidManifest.xml的文件,这个文件是每一个android应用程序项目都必须包含有的清单文件,上面会写明软件的版本号,包名,组件属性,应用所需要访问的权限等等。
那么现在让我们看看这个软件所需的访问的权限。

通过查询可知,软件获取了两个高敏感权限,分别为:
- android.permission.INTERNET:拥有完全的网络访问权限。
- android.permission.WRITE_EXTERNAL_STORAGE:修改或删除您的USB存储设备中的内容。
- 除此之外,还有一个重复了特别多次的未知权限:android.permission.UNKNOWN。
根据我们目前所知道的权限来看,该软件会写入和读取数据,并且有网络流量动向,有这个思路就可以去看看dex文件去了。
classes.dex是个什么东西呢?dex格式是Android系统中可以在Dalvik虚拟机上直接运行的文件格式。而Dalvik是Google公司设计用于Android平台的虚拟机。
换句话说就是:安装在Android平台上的APK都是由系统执行APK里面的classes.dex文件里面的代码来实现运行程序的各种操作的事件。
来来来,首先看看程序有没有让应用的代码执行目录获取最高权限,所以先看看有没有执行chmod 777代码获取ROOT权限。

诶!居然有???但没事,问题不大,毕竟ROOT权限这种东西不是每个人都有,而且笔者看了一遍,没看到软件获取ROOT权限后有什么特别行动。所以笔者觉得什么卸载掉还有问题是不可能的,什么建议格式化更是扯淡。
继续调查,发现Webview存在着本地Java接口(风险指数↑)。解释一下:android的webView组件有一个非常特殊的接口函数addJavascriptInterface,能实现本地java与js之间交互。在targetSdkVersion小于17时,攻击者利用 addJavascriptInterface这个接口添加的函数,可以远程执行任意代码。

继续调查,发现DEX文件动态加载(风险指数↑)。APK中使用DexClassLoader加载外部的 apk、jar 或 dex文件。当外部文件的来源无法控制时或是被篡改,此时无法保证加载的文件是否安全。加载恶意的dex文件将会导致任意命令执行。

继续调查,发现unzip解压缩(风险指数↑)。顾名思义,就是解压zip文件,使用getName获取压缩文件名后未对名称进行校验。攻击者可以构造恶意zip文件,被解压的文件将会被解压到其他目录,覆盖相应文件导致任意代码执行。

发现AES弱加密:(风险指数↑)。APK使用的是“AES/ECB/PKCS5padding”的加密模式。ECB是将文件分块后对文件块做同一加密处理,只要解密出其中一个,那么其他的加密包都可以采用该解密密匙。现在已经把APK的classes.dex扒的差不多了,有风险的大概就这么多,有没有被调用就说不定了。

至于播放音频和疯狂截图的相关代码在main.lua中用Termux使用unluac_2015_06_13.jar进行反编译播放0.mp3音频并循环,调节媒体音量至最大,同时拦截了返回键。

疯狂截图的问题笔者看了一遍,并没找到什么外联端口。截屏图片上传笔者觉得是毫无意义的,据网上的说法,是为了占用音量键和电源键导致无法调节音量和息屏的说法相对靠谱一点。
不过本着求是的精神,为了弄清楚APK到底有没有网络流量动向,笔者特地作死安装软件并打开进行抓包测试。

结果是软件没有任何网络动向,ROOT授权提示框也没有跑出来。实测中笔者发现按多任务键一下子就可以弹出来,然后把软件后台一关,它就可以闭嘴了!
总结一下:该软件还是有一定的安全风险(但应该很小),估计还是以整蛊为主。还有最重要的一点就是……
……
……
……
不要再在课上玩手机啦!!!!!












