来自 科技 2019-12-01 00:21 的文章

探秘间谍软件“Agent Tesla”,看黑客如何窃取你的

大多数人都认为,自己在上网时是安全的。但实际上,任何一款在后台运行的间谍软件,都能够抓取你的密码,在线跟踪你的上网习惯并窃取你的个人信息。

Agent Tesla就是间谍软件家族中的一员,并且已经存活了多年。一旦被感染,此间谍软件就能够从许多常用软件(包括Google Chrome、Safari和Firefox浏览器)中窃取信息。

感染链

Agent Tesla感染链大多从一封钓鱼电子邮件开始,而附件很有可能会是一个.arj格式的文件(Dropper):

图1.钓鱼电子邮件示例

ARJ是90年代早期的一种压缩文件格式,经常出现在盗版软件中,它可以将压缩文件分割成多个小体积文件,以便于文件更容易通过拨号连接共享。

不过,在本文中分析的ARJ压缩文件并没有被分割成多个文件,而是仅包含一个名为“IMP_Arrival Noticedoc.exe”的可执行文件。

Dropper

毫无意外,这个可执行文件实际上是一个经过UPX打包的AutoIt脚本,反编译结果如下:

图2. AutoIT脚本的反编译结果

一开始,它会进行反虚拟机(VM)检查,这是Agent Tesla的典型行为。

图3.去混淆后的AutoIT脚本(开头部分)

图4.用于执行反虚拟机(VM)检查的代码

如果检查通过,那么它将对移交给DecodeDataFromPEResourceOrString函数的第一个参数($data)中的字符串进行资源字体类型(8)的解码和提取。

在GetResourcesFromPE函数中,此参数会被转换为一个字符串,并拆分为不同的字体资源名称,结果如下:

SystemPropertiesDataExecutionPreventionMWindows.Media.BackgroundPlaybackKwindeployLLaunchWinAppXccaFCellularAPIQMuiUnattendERmClientEucsvcGrefsutilVSpeechRuntimeVDPTopologyAppv2_0N

然后,它将从PE资源中提取这些字体类型资源,并连接到一个二进制大文件。

图5 .IMP_Arrival Noticedoc.exe的“资源”部分

图6 .GetResourcesFromPE函数

结果同样存储在$data变量中(图7中的第245行),第246行的StringReverse(BinaryToString($data))反转了存储字节的顺序,这是RC4加密形式的最终恶意软件Payload,RC4代码的字节包含在变量$sopcode中。

在准备好shellcode和加密的Payload数据之后,在第262行执行RC4函数并解密Payload。

图7.DecodeDataFromPEResourceOrString RC4函数

反汇编的RC4 shell代码如下:

图8.RC4函数($sopcode变量)

解密Payload后,脚本将调用最终的InjectPayloadIntoProcess函数,以将Payload注入另一个进程中。值得注意的是,脚本为注入提供了9种不同的合法注入选项,允许攻击者通过向函数提供相应的编号来选择具体使用哪一种。

图9.注入进程选择

图10.注入代码

Payload

Payload通常都是Agent Tesla,旨在从一些主流浏览器、电子邮箱客户端、SSH/SFTP /FTP客户端和其他软件中窃取凭证。

图11. Agent Tesla

执行时, Agent Tesla会动态解析配置设置和字符串,并使用Rijndael算法解密某些大型数据。

图12. Agent Tesla解码例程

下图展示了Agent Tesla运行时的情况,例如解码某些参数以进行电子邮件渗透。

图13.Agent Tesla字符串(经过混淆处理)

该函数的去混淆版本如下图所示:

图14 . Agent Tesla email函数(去混淆后)

结论

通过本文中所描述的过程,攻击者可以将原始恶意软件隐藏在Dropper中。该恶意软件仅在运行时解密并注入到内存中,即永远不会在硬盘驱动器上解密。

这一系列Agent Tesla活动中,攻击者使用了相对复杂的Dropper,利用了多种不同的混淆技术来尽可能使防病毒程序难以检测到恶意软件。不仅如此,通过使用这些Dropper,攻击者还可以很轻松且快速地切换最终的恶意软件。