新型跨平台后门ACBackdoor介绍

来源:岁月联盟 编辑:猪蛋儿 时间:2020-01-29

图10. ACBackdoor Linux实例执行的进程重命名
与C2通信
两类都采用HTTPS协议与相同C2服务器通信。恶意软件将使用先前收集的受害者信息作为初始数据包发送到C2,客户端似乎没有在TLS握手时验证证书的真实性,因此通信很容易受到MITM攻击。
恶意软件会为HTTP请求创建标头,其中包含一些自定义标头,标头嵌入了特定信息以供服务器收集。下图是来自受感染Linux主机的截取的初始TLS剥离数据包中显示了这些标头:
 

图11.拦截的TLS剥离的HTTPS数据包
在不同的标头中,我们可以突出显示“ Access-Control”和“ X-Access”标头,它们是非常规的HTTP标头。Access-Control包含命令类型的base64编码的字符串,在本例中类型为“ info”,即发送到C2的初步数据包;X-Access包含一个MD5哈希,用作对所包含有效负载的完整性检查。如上文所述,此MD5哈希是先前在收集受害者信息之后生成的。
有效负载采用base64编码,并且包含所有受感染主机信息的字符串。
然后恶意软件等待初始包响应,以便执行命令。
ACBackdoor总共支持四个命令:info,run,execute和update。
 

图12.命令处理控制流程图
如前所述,info命令实际上是客户端和C2之间的第一接触点;run命令用于运行任意的shell命令;execute命令能够在受感染的主机中执行给定的二进制文件;而update命令则更新客户端本身。
在Windows和linux版本之间,这些命令的实现方式有所不同。但有些细节可能表明,作者编写Linux恶意软件的经验要更多,这点可以通过execute命令的实现观察到。
在Windows实例中,此命令是通过CreateFile和CreateProcess Win32 API函数实现的;在Linux中,使用的是memfd_create、fork和execveat系统调用的组合:

图13.Execute命令实现
乍一看,这些Execute命令的实现在功能上似乎并没有太大不同,但Linux实例实现提供了执行无文件代码的方法。
这些特定的细节以及上面的分析使我们得出结论,ACBackdoor的作者更愿意在Linux系统上操作,而他们目前可能正在Windows中进行实验,以便之后将恶意软件移植到这个系统中。
结论
本文对ACBackdoor多平台恶意软件进行了技术分析,经过对Windows实例的进一步分析,我们发现ACBackdoor的作者缺乏编写Windows恶意软件的经验。
除了具有较低的检测率外,Linux版本在逻辑上总体上与Windows变体相似。Linux植入程序的编写明显优于Windows植入程序,突出了持久性机制的实现,以及不同的后门命令和Windows版本中没有的其他特性,如独立进程创建和进程重命名。
但这个后门中没有记录可归属的信息,所以有可能是某个已知的威胁组织正在拓展它的工具集。
此外,这进一步证明Linux变种的检测率始终低于Windows。
 

上一页  [1] [2]