DanaBot是一款快速发展和模块化的木马,自出现以来已经经过了多次修改,最新版本的木马使用了全新的C2通信协议。2019年1月发现的DanaBot变种中的C2协议对C2通信加入了多层加密。
除了通信协议的变化,DanaBot的架构和攻击活动ID也发生了改变。
DanaBot
自2018年5月出现以来,DanaBot木马就非常活跃,先后出现在攻击澳大利亚、波兰、意大利、德国、奥地利、乌克兰以及美国的垃圾邮件活动中。在针对欧洲的攻击活动中研究人员发现木马扩展了新插件和垃圾邮件发送功能来增加其功能。
2019年1月25日,研究人员发现一个DanaBot相关的可执行文件。进一步检查和分析发现,这些二进制文件事实上是DanaBot的变种,但使用的C2通信协议与之前的变种有所不同。从2019年1月26日起,DanaBot运营者已经不再用旧的C2协议来构建二进制文件。
截止目前,新变种一共以两种场景进行传播:
· 以更新的方式传递给现有DanaBot的受害者;
· 通过波兰的垃圾邮件攻击活动。
新通信协议
1月25日之前使用的通信协议中,包并没有加密,如图1所示:
图1 – 旧协议中数据包以明文形式存在
在新变种中,DanaBot在C2通信协议中使用AES和RSA加密算法。新协议更加复杂,使用了多层加密技术,如图2所示:
图2 –DanaBot新通信协议
这些变化打破了现有的基于网络的签名机制,因此很难在IDPS中写入新的规则。如果没有对应的RSA密钥,就无法解密发送或接收的packet,因此基于云分析系统的PCAP文件对研究人员来说是无法使用的。
图3 – 获取的使用新通信协议的packet
客户端发送的每个packet都有一个24 (0x18)字节的header:
对每个packet,header之后是AES加密的packet数据,然后是表示AES padding大小的4字节的值,最后是RSA解密的AES密钥。每个packet都使用不同的AES密钥。
服务器响应都使用相同的格式。而在之前的版本中,服务器响应的packet数据并不遵守特定的布局。
Packet data layout
2018年10月,proof对packet data layout进行了详细说明。最新的DanaBot变种中,数据布局进行了简单修改,如图4所示:
图4 –DanaBot不同版本的packet data layout比较
DanaBot架构的变化
除了通信协议外,DanaBot的架构也发生了变化。之前的DanaBot版本包含一个下载和执行main模块的部分。Main模块会下载和执行插件和配置。
最新的版本将所有的责任都转变到新的加载器模块,这是用来下载所有插件的。驻留是通过将加载器以服务的形式注册。
图5 –DanaBot不同版本的架构比较
命令
根据研究人员的分析,加载器模块会使用下面的命令:
· 0x12C – Hello. 客户端发送给服务器的第一条命令
· 0x12D – 下载32/64位的启动器组件
· 0x12E – 插件和配置文件的请求列表
· 0x12F – 下载插件和配置文件
下载插件和配置文件是用来自客户端ID的AES key来解密的。插件还使用ZIP格式和LZMA压缩方式进行压缩,而配置文件是用zlib方式压缩的。
ID为0x130 – 0x134的命令是main模块发送的:
· 0x130 – 上传收集的信息到C2服务器
· 0x131 – 上传收集的信息到C2服务器
· 0x132 – 请求C2服务器下一步的命令,大概有30种不同种类的后门命令,包括启动插件、收集详细的系统信息和修改客户端系统上的文件
· 0x133 – 通过Tor代理更新C2服务器列表
· 0x134 – 目的位置,可能是用于插件和C2之间的通信
攻击活动ID的变化
之前的研究表明DanaBot主要通过不同的“affiliate ID”和“campaign ID”进行传播。
在DanaBot之前的版本中,使用了大约20种不同的campaign ID。在最新的版本中,campaign ID明显变化了。截止2019年2月5日,研究人员共发现以下ID:
· ID=2测试版本,服务有限的配置文件,没有webinjects
· ID=3 主要攻击波兰和意大利的用户,服务于波兰和意大利目标的配置文件和webinjects
· ID=5 服务于澳大利亚目标的配置文件
· ID=7 主要在波兰传播,服务于波兰目标的webinjects
· ID=9 好像是另外一个测试版本,没有特定的目标,主要服务于几个配置文件
结论
2018年,研究人员发现DanaBot在传播和功能上都进行了扩展。2019年初,研究人员发现DanaBot的内部结构发生了变化,表明恶意软件正在活跃的开发中。最新的变化表明攻击者在网络层努力来绕过检测。