近日,以色列网络安全公司Intezer发现了一个病毒检出率为零的Linux后门——ACBackdoor,它似乎并不出自任何一个已知的黑客组织之手
图1.ACBackdoor Linux变种的病毒检出率
此外,Intezer公司还发现了相同后门的Windows变种。与其他大多数Windows病毒一样,ACBackdoor Windows变种与Linux变种相比,病毒检出率高了不少。
图2.ACBackdoor Windows变种的病毒检出率
技术分析表明,ACBackdoor不仅为攻击者提供了执行任意shell命令以及二进制文件的能力,而且还能够实现长久驻留以及自我更新。
此外,该后门背后的团队似乎对于入侵Linux系统很有经验,并且正在将黑手伸向Windows系统,以扩大攻击范围。
技术分析Linux二进制文件是一个静态链接的ELF文件,而Windows二进制文件则是一个动态链接的PE文件。就整体功能而言,两类变种在本质上都是相同的,只是在实现上存在细微差别。
首先,两类变种使用相同的协议与同一台C2服务器进行通信,区别在于交付载体不同:
图3.两类变种之间的关联
其中,Windows变种是通过Fallout漏洞利用工具包交付的,且病毒传播目前仍在进行。
后门分析Windows变种的设计相对简单,二进制文件是使用MinGW编译器生成的。
图4.ACBackdoor Windows变种中的MinGW字符串
主函数没有经过混淆处理,逻辑上看起来很简单。在Windows变种中,我们可以看到函数头是如何解码某些字符串的。
图5.ACBackdoor Windows变种的主函数
此外,我们还可以在解密的字符串中看到特定于Linux的字符串,例如内核线程进程名称或属于Linux文件系统的路径。这可能意味着,ACBackdoor Windows变种是直接从Linux变种移植过来的。
图6.ACBackdoor Linux变种的主函数
在完成初始字符串的解码后,ACBackdoor会收集受感染主机的架构、系统版本和MAC地址等信息。
图7.ACBackdoor Linux和Windows变种之间的代码结构相似性
在收集到这些信息后,ACBackdoor将连接这些字段,添加可能表示某种版本ID的字符串“0.5”,然后使用MD5 哈希算法加密字符串。
图8.两类ACBackdoor变种收集的受感染主机信息
之后,ACBackdoor便会为实现长久驻留进行一系列操作。其中Windows变种会修改注册表项“HKCUSOFTWAREMicrosoftWindowsCurrentVersionRun”,以便随系统的启动而启动;Linux变种则会添加一个initrd脚本,目的同样是实现在系统启动时自动运行。
图9.ACBackdoor用于实现长久驻留的代码
在运行时,Windows变种试图伪装成Microsoft Anti Spyware实用程序,而Linux变种则试图伪装成Ubuntu的更新工具。如果在受感染的Linux系统上运行ps命令,我们可以在进程列表中看到如下进程名称:
图10. ACBackdoor Linux变种执行的进程重命名
结论经过对ACBackdoor Linux变种和Windows变种的对比分析,Intezer公司认为,ACBackdoor的开发者缺乏编写Windows病毒的经验。例如,Linux变种的代码编写明显优于Windows变种。
不过,这两类变种所能够实现的恶意功能,是完全一致的。