只要是做生意,都得讲究价值规律,黑市也不例外。某款产品要是搞打折促销,群众们必然蜂拥而至——要是免费大派送,那一传十十传百的速度又怎是门庭若市可形容!
最近Palo Alto Networks发现了一款面向大众免费派发的RAT(远程访问木马),名为SpyNote——这是个可对Android系统实现远程监听的工具,“和OmniRat和DroidJak很相似”。对那些技术不娴熟的脚本小子而言,想必又是个不可多得的好东西了。
SpyNote控制面板
SpyNote实际上是用来创建Android恶意程序的工具,最近在不少恶意程序论坛传得特别火。它有一些相当吸引人的特性:
· 不需要获取系统的Root权限;
· 对通话进行监听;
· 窃取联系人和信息数据;
· 通过麦克风记录音;
· 恶意拨打电话;
· 安装恶意应用;
· 获取手机的IMEI码、WiFi MAC地址、无线网络运营商细节;
· 获取设备最新的GPS地理位置信息;
· 控制摄像头
听起来真是不错啊,都不需要Android系统做Root操作,真这么神?当然了,还是需要手机用户自己给予SpyNote这些权限才行,包括编辑短信、访问通话记录、联系人,以及修改、删除SD内容的权限——其实绝大部分用户看到这些权限请求都会毫不犹豫的点“下一步”或“允许”。
Palo Alto对发现的SkyNote恶意程序样本进行了分析。YouTube上先前就已经有了Sky Note v2的使用视频——Palo Alto分析的恶意程序应该是完全按照视频教程来做的。相比教程,该恶意程序程序除了改动图标,所用的端口一模一样。
在进行这款SpyNote恶意程序的安装过后,程序首先会将自己的图标从手机上移除。另外,该应用并没有采用任何混淆机制。它还会与IP地址为141.255.147.193的C&C服务器进行TCP通讯,端口号2222,如下图所示。
用Cerbero profiler查看Dalvik字节码
SkyNote开启一个Socket连接
如上图所示,SpyNote在此Socket连接中,采用硬编码的SERVER_IP和SERVER_PORT值。不过用Android分析工具Androguard就可以做个extractor。
用上面的spynote.C2.py脚本对APK文件中的这些值进行解析,可得出下面这些代码。
#!/usr/bin/python import sys from sys import argv from androguard.core.bytecodes import apk from androguard.core.bytecodes import dvm #--------------------------------------------------- # _log : Prints out logs for debug purposes #--------------------------------------------------- def _log(s): print(s) if __name__ == "__main__": if (len(sys.argv) < 2): _log("[+] Usage: %s [Path_to_apk]" % sys.argv[0]) sys.exit(0) else: a = apk.APK(argv[1]) d = dvm.DalvikVMFormat(a.get_dex()) for cls in d.get_classes(): #if 'Ldell/scream/application/MainActivity;'.lower() in cls.get_name().lower(): if 'dell/scream/application/MainActivity;'.lower() in cls.get_name().lower(): c2 = "" port = "" string = None for method in cls.get_methods(): if method.name == '': for inst in method.get_instructions(): if inst.get_name() == 'const-string': string = inst.get_output().split(',')[-1].strip(" '") if inst.get_name() == 'iput-object': if "SERVER_IP" in inst.get_output(): c2 = string if "PORT" in inst.get_output(): port = string if c2 and port: break server = "" if port: server = "{0}:{1}".format(c2, str(port)) else: server = c2 _log('C&C: [ %s ]' % server)
虽说现在SpyNote似乎还并没有大规模被黑客们利用,但既然如今任何人都可以免费下载到SpyNote了 ,其广泛利用或许也只是时间问题。
还是需要告诫Android用户,不要随意安装来源不明的应用,虽然这个教训已经说了千百次了,况且对Android这样的操作系统,就算是中国人民看不见摸不着的Google Play Store都尚存不少恶意程序。用Android系统的同学还是要小心再小心!
* 参考来源: Palo Alto Networks ,欧阳洋葱编译,转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)