只要是做生意,都得讲究价值规律,黑市也不例外。某款产品要是搞打折促销,群众们必然蜂拥而至——要是免费大派送,那一传十十传百的速度又怎是门庭若市可形容!
最近Palo Alto Networks发现了一款面向大众免费派发的RAT(远程访问木马),名为SpyNote——这是个可对Android系统实现远程监听的工具,“和OmniRat和DroidJak很相似”。对那些技术不娴熟的脚本小子而言,想必又是个不可多得的好东西了。
SpyNote控制面板
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系统的同学还是要小心再小心!
====================================分割线================================
本文转自d1net(转载)
相关资源:灰鸽子远程监控 木马