近日,Palo Alto Networks 威胁情报团队Unit42 宣布发现一类新型安卓木马SpyNote,该木马可执行远程入侵功能,其生成器近日在多个恶意软件论坛上遭泄露。 SpyNoted与知名的RAT (Remote Administration Tools, RAT) 程序OmniRat 和 DroidJack相类似,令恶意软件所有者能够对Android设备实施远程管理控制。
与其他RAT一样,SpyNote有如下主要特征,
Ÿ 无需Root访问权限
Ÿ 安装新的APK 并更新恶意软件
Ÿ 将设备上的文件复制到电脑上
Ÿ 浏览设备上全部信息
Ÿ 监听设备来电
Ÿ 获取设备上的联系人列表
Ÿ 借助设备麦克风监听或者录制音频
Ÿ 控制设备摄像头
Ÿ 获取IMEI串号、Wi-Fi MAC地址以及手机运营商信息
Ÿ 获取设备最后一个GPS定位信息
Ÿ 拨打电话
图一,SpyNote控制面板
SpyNote 安装包要求受害者接受并准许SpyNote执行诸多操作,包括:编辑文本信息、读取通话记录和联系方式、修改或删除SD卡内容,已有证据显示SpyNote将内容上传至恶意软件分析网站 VirusTotal和Koodous,如下,
Ÿ https://www.virustotal.com/en/file/f0646b94f1820f36de74e7134d0bb9719a87afa9f30f3a68a776d94505212cbd/analysis/
Ÿ https://analyst.koodous.com/apks/f0646b94f1820f36de74e7134d0bb9719a87afa9f30f3a68a776d94505212cbd
分析
安装成功后,SpyNote便将该应用的图标从受害者设备上抹去,这充分表明SpyNote的生成器应用是用.NET开发的。
该应用未做掩饰处理,也不受任何掩饰工具或保护工具的保护。
图二,反编译SpyNote生成器
鉴于使用的端口编号与视频中(视频地址为https://www.youtube.com/watch?v=E9OxlTBtdkA)所演示的毫无二致,以及上传程序仅仅修改了APK的图标而已,上传程序在使用SpyNote时可按照该视频中所描述的方法去操作。
此外,经过配置,该RAT可通过TCP端口2222进行C&C远程命令与控制(IP地址为141.255.147.193)的通信,如下图,
图三,借助Cerbero profiler实现Dalvik字节码视图
图四,SpyNote开启套接字链接
基于我们已掌握的信息,现在我们已经了解到该恶意软件使用硬编码SERVER_IP 和 SERVER_PORT values (如图四所示)来实现套接字链接。我们现在可以借助Androguard (https://github.com/androguard/androguard) 来设计一款C2信息提取程序,如下图所示,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)
结论
安装第三方应用将会危险重重,这些资源缺少如Google Play Store这样官方来源的监管,而且,即使有详尽的步骤和算法来去除那些恶意应用程序,这些应用也并非无懈可击。旁加载来自于有问题来源的应用,会把使用者以及他们使用的移动设备曝露于各类恶意软件和数据丢失危险之中。
到现在为止,我们还没有看到有主动攻击使用了SpyNote,但我们担心网络罪犯会因为SpyNote的轻松易得而开始作恶。现在,Palo Alto Networks AutoFocus的用户可使用SpyNote tag 来对该木马进行甄别。
指示器
SHA256 of SpyNote Samples
85c00d1ab1905ab3140d711504da41e67f168dec837aafd0b6327048dd33215e
ed894f9c6f81e2470d76156b36c69f50ef40e27fd4e86d951613328cdbf52165
4fb2d8be58525d45684f9ffd429e2f6fe242bf5dbc2ed33625e3616d8773ed0d
98e2b14896e85362c31b1e05f73a3afddde09bd31123ca10ff1cc31590ac0c07
51e0d505fb3fba34daf4467ca496bca44e3611126d5e2709441756ba632487f0
4b60fff88949181e2d511759183cdf91578ece4a39cd4d8ec5da4015bb40cbed
c064679c42e31a4f340e6a1e9a3b6f653e2337aa9581f385722011114d00aa1e
3323ff4bcdb3de715251502dfb702547b6e89f7973104b3da648163b73b72eef
f0646b94f1820f36de74e7134d0bb9719a87afa9f30f3a68a776d94505212cbd
2ec734fd0f7320b32568ab9c229146a3dab08f951ca5c3114f6af6c77f621929
4e80d61994ee64dadc35af6e420230575553aba7f650bc38e04f3702b21d67c4
357ca2f1f3ea144bdd1d2122ec90ed187e8d63eb8a206794e249d5feb7411662
ac482e08ef32e6cb7e75c3d16a8ea31bcc9bf9400bd9f96b4ec6ed7d89053396
89a5ebf0317d9a3df545cfd3fbcb4c845ea3528091322fd6b2f7d84d7a7d8ae0