导语:最近,研究人员发现TA505组织在传播一些远程访问木马和其他收集、加载和监控的工具。tRAT就是其中一款恶意软件,该恶意软件是模块化的RAT,用Delphi语言编写。本文价绍对该恶意软件参与的攻击活动和恶意软件进行分析。
TA505是Proofpoint一直关注的攻击组织,该组织从2014年开始活跃。
最近,研究人员发现该组织在传播一些远程访问木马(remote access Trojans,RATs)和其他收集、加载和监控的工具。tRAT就是其中一款恶意软件,该恶意软件是模块化的RAT,用Delphi语言编写。本文价绍对该恶意软件参与的攻击活动和恶意软件进行分析。
攻击活动
2018年9月,Proofpoint检测到一起垃圾邮件攻击活动中使用启动宏的恶意word文档来下载之前没有记录过的RAT。恶意文档滥用Norton品牌,伪装为安全产品保护的文档。消息中的主题使用了社会工程技术,启用了嵌入宏来安装tRAT。
图1: 9月27日攻击活动中的诱饵文件
图2: 9月27日攻击活动中的TripAdvisor诱饵
10月11日,研究人员发现一起由TA505传播tRAT的垃圾邮件活动。攻击活动非常复杂,使用了Microsoft Word和Publisher文件,攻击目标主要是商业银行的用户。
攻击活动中使用了不同邮件地址来发送信息,主题行的格式为:Inovice (sic) [random digits] – [random digits],附件名为inv-399503-03948.pub。含有恶意word附件的邮件地址来自Vanessa Brito,但显示不同的发件地址,消息中的附件名report.doc。
图3:10月11日的垃圾邮件样本
在所有的样本中,附件都含有宏,启用宏后就会下载tRAT。
图4: 10月11日的样本诱饵文档
恶意软件分析
下面分析tRat恶意软件。研究人员分析样本发现,恶意软件会复制二进制文件到以下路径来保持驻留:
C:\Users\<user>\AppData\Roaming\Adobe\Flash Player\Services\Frame Host\fhost.exe
然后,tRat会在开始菜单创建一个LNK文件在系统启动后执行二进制文件:
C:\Users\<user>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\bfhost.lnk
大多数tRat的重要字符串都是加密保存并十六进制编码的。用来解密字符串的python脚本位于GitHub:https://github.com/EmergingThreats/threatresearch/blob/master/tRat/decrypt_str.py 。
tRat使用TCP 80端口进行C2通信,数据是加密存储的,十六进制编码传输。为了生成解密密钥,tRAT会将3个字符串拼接起来,结果就是大写十六进制编码的。样本中的字符串如下所示:
"[email protected]%gJ_2oK" "AC8FFF33D07229BF84E7A429CADC33BFEAE7AC4A87AE33ACEAAC8192A68C55A6" "&LmcF#7R2m"
目前还不清楚不同样本中的字符串是不是一样。除了生成key以外,tRat在解密过程中会用1536字节的表。截至目前,研究人员还不能确定表中元素的意义和是否改变。但可以确定的是解密过程使用了表中数据和加密数据的XOR值。表的索引是基于key值的,样本中的表和python脚本都在Github上可以看到,也可以用于解密通信。
tRat的初始网络请求叫做AUTH_INF,解密示例如下:
MfB5aV1dybxQNLfg:D29A79D6CD2F47389A66BB5F2891D64C8A87F05AE3E1C6C5CBA4A79AA5ECA29F8E8C8FFCA6A2892B8B6E
字符串中含有2个子字符串,是用:分开的。第一个子字符串是以加密字符串形式保存的硬编码的id;第二个子字符串含有加密的系统数据,如下所示:
FASHYEOHAL/nXAiDQWdGwORzt:3A176D130C266A4D
这些数据含有受感染主机的计算机名、系统用户名和tRat bot ID,但研究人员目前还不清楚bot ID是如何生成的。
为了响应AUTH_INF,C2会用[P]或命令列表响应。如果tRat收到[P],就会响应[G]。这看着像轮询命令,但是命令列表的格式、命令、模块数据都是未知的。目前,研究人员相信loader中唯一支持的命令就是MODULE,其中含有一个模块名和一个输出名。为了接收模块,Trat会顺序执行以下动作:
· 发送"[GET_MODULE]"
· 如果接收到"[WAIT_FOR_AUTH_INF]",发送AUTH_INF数据
· 如果接收到"[WAIT_FOR_MODULE_NAME]",发送模块名
· 响应可以包括以下内容之一:
· "[ERR_MODULE_NOT_FOUND]"
· "[ACCESS_DENIED]"
· 模块长度
· 如果接收到模块长度,就发送"[READY]”
· 接收模块
· 该模块使用的加密与C2通信相似,但是使用的key不同
· 解密后,模块会以DLL加载,并使用接收到的export名执行。
目前研究人员还没有发现C2传输的模块,所以不确定恶意软件增加了什么功能。
总结
TA505因为其攻击的体量、频率和复杂性,一度改变邮件威胁情景。研究人员最近发现其新的邮件攻击活动中使用了Locky这样的恶意软件和FlawedAmmyy这样不太常用的恶意软件。