2014年以来,AgentTesla病毒持续活跃,逐渐成为全球互联网中的主要病毒威胁之一。根据火绒终端威胁情报系统统计,近年来AgentTesla病毒影响终端数量趋势整体呈快速上升态势。

AgentTesla病毒主要通过钓鱼邮件进行传播钓鱼邮件内容多会伪装成装运建议、财务报表或预付款通知单等,邮件附件中包含AgentTesla病毒。当用户被诱导点击运行病毒后,病毒即会窃取用户终端上的隐私数据并上传C&C服务器。

AgentTesla病毒样本通常使用混淆器,通过数据加密、代码加密、控制流混淆等多种混淆方式藏匿自身病毒特征,对抗安全软件查杀。除此之外,混淆器还会通过反虚拟机和反调试器等手段,对抗逆向分析。

AgentTesla病毒的主要危害是窃取用户终端中的隐私数据,隐私数据包括用户浏览器登录凭证、FTP软件登录凭证、电子邮件登录凭证、键盘记录信息、屏幕截图、用户系统配置信息等。除此之外,还会通过篡改注册表键值的方式,禁用系统安全设置,降低系统安全性。

火绒安全提醒用户不要轻易点击来历不明的邮件附件。“火绒安全软件”可针对AgentTesla病毒进行查杀。我们也将持续跟踪该病毒的最新变种。

一、详细分析

传播途径

AgentTesla病毒主要通过钓鱼邮件进行传播,钓鱼邮件的附件中包含AgentTesla病毒,当用户被诱导点击运行病毒后,病毒会将用户终端上多种隐私数据上传C&C服务器。相关内容,如下图所示:

邮件内容

AgentTesla病毒结构

AgentTesla病毒通过添加外层混淆器来对抗杀毒软件查杀和增加分析难度,通过跟踪分析不同的AgentTesla变种之后,发现不同变种均会使用2-4层外部混淆器来对病毒模块进行保护,最外层混淆器通过解密执行内层混淆器,最内层混淆器加载最终的病毒模块,外层混淆器的解密流程图,如下图所示:

外层混淆器的解密流程图

外层混淆器

外层混淆器的演变可以分为几个阶段,每个阶段常见的混淆手段都非常接近,如每个阶段都存在的混淆手段通过对所有类、变量、函数的名字进行混淆和控制流混淆,通过XOR加密、AES算法、替换某一字节等加密手段将下层混淆器保存在资源中或变量中,运行的过程中由外层的混淆器解密执行下一层的混淆器,最后一层的混淆器负责加载病毒模块,常见的情况,如下图所示:

控制流混淆

名字混淆

将加密的数据从变量中解密

将加密的数据从资源中解密

反射调用下一层混淆器

一些外层混淆器还会使用常见的反虚拟机和反调试手段,相关例子,如下图所示:

反虚拟机

反调试

外层混淆器几个演变阶段,最重要的变化有两种,第一种是最后一层混淆器加载病毒模块的方式变化;第二种是混淆器使用难度更高的混淆方式,以下进行举例说明:

通过傀儡进程加载病毒模块

早期阶段使用最多的混淆器有3-4层,最外层混淆器通过解密变量中加密的数据,执行第二层混淆器,之后每一层都是通过解密资源中加密的数据来执行下一层的混淆器,最后一层混淆器通过创建傀儡进程的方式加载病毒模块,相关代码,如下图所示:

创建傀儡进程加载病毒模块

通过shellcode加载病毒模块

这个阶段的混淆器一共有3层,每一层的混淆器都使用AES加密算法解密执行下一层混淆器,最内层的混淆器可以检测杀毒软件,并使用shellcode加载病毒模块,相关代码,如下图所示:

检测杀毒软件

shellcode加载病毒模块

shellcode创建傀儡进程来加载病毒模块,相关代码,如下图所示:

shellcode创建傀儡进程加载病毒模块

过联网下载病毒模块

这个阶段混淆器只有2层,第一层混淆器通过联网的方式下载、加载第二层混淆器和病毒模块,第二层混淆器中具备多种功能,如检测调试、反虚拟机、持久化等功能,相关代码,如下图所示:

联网下载第二层混淆器

第二层混淆器的功能代码,如下图所示:

第二层混淆器的功能代码

通过动态方法混淆调用流程

这个阶段的混淆壳一共有3层,通过创建动态方法的委托混淆调用流程,混淆难度增加,使得分析变得的困难,相关代码,如下图所示:

创建动态方法的委托

混淆调用流程,相关代码,如下图所示:

混淆调用流程

内层恶意代码混淆

没有混淆

早期AgentTesla内层病毒模块,没有使用任何混淆,相关代码,如下图所示:

无任何混淆代码

字符串加密

在分析过程中一共发现两种字符串加密方式,第一种把所有字符串使用AES算法加密,使用的时候根据传入的编号找到加密的字符串进行解密,相关代码,如下图所示:

第一种加密方式的字符串获取函数

第二种把所有用到的字符串都进行XOR加密放在一个数组里,病毒启动后开始解密,使用的时候根据下标和长度进行取字符串,相关代码,如下图所示:

第二种加密方式的字符串获取函数

内层恶意功能详细分析

AgentTesla病毒主要功能是收集用户终端上的隐私数据信息上传C&C服务器。主要的功能有:收集系统配置信息、FTP登录凭证、浏览器登录凭证、电子邮件软件登录凭证、上传屏幕截图、键盘记录器、剪贴板记录器、持久化等。通过设置注册表的值来禁用系统安全选项如:禁止CMD、禁止任务管理器、关闭UAC、禁止“运行“窗口、禁止控制面板、禁止注册表、禁止系统还原、禁用文件夹选项、删除MSCONFIG.EXE环境变量。并且将收集的相关信息使用DES加密上传至C&C服务器,常见的上传手段有:HTTP、FTP、SMTP、TorClient,有的变种还会通过TelegramAPI来将数据传递到私人频道并带有BypassUAC功能。以下仅以其中一个变种样本为例进行分析,关键功能,如下所示:

收集浏览器数据

不同变种的AgentTesla病毒收集浏览器的种类、数量会略微不同,受影响浏览器的列表,如下图所示:

受影响浏览器列表

相关代码,如下图所示:

收集浏览器数据

收集其他各类软件登录凭证

AgentTesla病毒还会收集其他各类软件的登录凭证,如:Email、FTP、VNC、VPN、即时通讯软件等,受影响的软件列表,如下图所示:

受影响软件列表

收集Windows系统各种凭证

相关代码,如下图所示:

收集Windows系统各种凭证

收集系统配置信息

获取一些系统配置信息,相关代码,如下图所示:

获取系统配置信息

键盘记录器

通过使用Timer定时器控件来定期上传键盘记录信息,相关代码,如下图所示:

上传键盘记录信息

上传屏幕截图

通过使用Timer定时器控件来定期上传屏幕截图,相关代码,如下图所示:

上传屏幕截图

通过注册表禁用各种功能

通过修改注册表键值实现:禁止CMD、禁止任务管理器、关闭UAC、禁止“运行”窗口、禁止控制面板、禁止注册表、禁止系统还原、禁用文件夹选项、删除MSCONFIG.EXE环境变量,相关代码,如下图所示:

通过注册表禁用各种功能

持久化

通过设置注册表来达到持久化,相关代码,如下图所示:

持久化

二、附录

火绒共捕获到数十万AgentTesla家族样本,以下仅以部分病毒样本为例,如下图所示: