深度解构钓鱼软件AVE_MARIA

2019年1月19日 344点热度 0人点赞 0条评论

Ave Maria恶意软件在2018年12月底对意大利某能源企业发起网络钓鱼攻击。

Cybaze-Yoroi ZLab的研究人员分析了黑客发起这场钓鱼攻击的意图。该恶意邮件以供应商销售部的名义发出发票与装运订单确认函。和一般的钓鱼攻击类似,它也利用CVE-2017-11882漏洞发送恶意Excel文件,从而运行从恶意网站(网站已被攻击者入侵)检索到的可执行文件。

用于传播恶意邮件的域名仅在12月中旬保留了几天,确保恶意软件在这段时间中发送完毕。

图片

图1 发件人域名活跃时间:12月12日至14日

Cybaze-Yoroi ZLab分析了这三天传输的payload。

技术分析

图片

图2 图标

实际的感染链开始于恶意Office文档打开后丢弃的自解压存档(SFX)。该样本中含有Kagamine Rin(镜音双子,一个被称为“VOCALOID”的语音合成软件)的图标。

该文件是WinRAR自解压程序,配置为将内容解压到临时文件夹“%TEMP%\ 04505187”,然后以静默方式运行特定的安装程序:

图片

图3 SFX解压程序的配置

压缩文件的时间戳显示攻击者在域名激活的时间跨度内,在2018年12月13日22:56实现了存档的“武器化”。

图片

图4 SFX可执行文件提取的文件

所有文件的扩展名都是虚假的,大多数都是包含大量垃圾数据的文本文件。但是其中三个文件引起了分析师的注意:

xfi.exe:一个合法的、能够执行指定AutoIt脚本的解释器。

hbx = lbl:第一个AutoIt脚本(将指令隐藏在大量注解中来迷惑分析人员)。

uaf.icm:一个包含所有恶意软件设置信息的文件,例如安装文件夹、解释器名称和下一阶段使用的其它参数;根据“INI文件格式”构建。

图片

图5 第一个AutoIt脚本出现(被称为“hbx-lbl”)

图片

图6 uaf.icm的结构

Juniper安全公司早在2016年发现了类似的AutoIT代码包,SFX文件以这样的方式被滥用,并发送脚本用于恶意软件第一阶段的攻击。如图3中的配置所示,该样本能够使用以下命令运行第一个脚本:

$> xfi.exe hbx=lbl

此时,使用字符串模式“[sData]”和“[esData]”之间的“uaf.icm”中包含的编码数据,由第一个脚本创建第二个脚本,形成随机名称(例如“ZZQLZ”),并使用“xfi.exe”引擎运行。

图片

图7 第二个脚本通过二进制编码,并隐藏在“[sData]”和“[esData]”之间的uaf.icm文件中。

第二个脚本通过二进制编码的方式产生了极大的迷惑性。分析师利用“反混淆技术”发现了其中很多有趣的功能。该脚本中含有不同的防御绕过技术,例如检查当前正在运行的进程,如果存在与某些虚拟化软件(如Virtualbox)相关的进程,恶意软件则自行终止。

图片

图8 恶意软件的躲避示例

第二个脚本的主要目的是解密并执行隐藏在“uaf.icm”文件的“[Data]”和“[eData]”分隔符字符串中的最终有效负载。使用“Advapi32.dll!CryptDecrypt”Microsoft函数解密数据,该函数通过高级API“DllCall”动态调用到AutoIt脚本中。解密密钥从常见的设置文件中检索。

AutoIt脚本用于运行刚提取的payload的方式也很有意思。在第一个实例中,恶意软件将%Regsvcs.exe(.NET服务安装工具)的副本创建到%TEMP%文件夹中并运行。然后执行进程注入,从而启动Regsvcs进程后面的恶意负载。

下图展示了存储在“uaf.icm”设置文件中恶意二进制文件提取、解密和注入的例程。

图片

图9

恶意软件通过DllCall AutoIt API,使用CallWindowProcW Windows函数作为进程注入技术。

图片

图10 解密并将恶意负载注入合法进程

该恶意软件作者利用存储在图11 恶意软件设置的注册表项$ ASM变量中的自定义shellcode将二进制有效负载正确地注入到正在运行的regsvcs进程中。

最后,第二个AutoIt脚本通过编写注册表项HKLM \ SOFTWARE \ Wow6432Node \ Microsoft \ Windows \ CurrentVersion \ Run,获得对受害计算机的永久控制。

图片图11 恶意软件设置的注册表项

注册表项的名称与从“密钥”部分的“uaf.icm”设置文件中所提取的值相对应。

有效负载:AVE_MARIA Stealer

该有效负载注入合法的.NET进程是一种典型的僵尸行为:它与angularkeys.warzonedns [.] com上托管的C2联系,并检索要执行的下一个操作。攻击者的服务器目前已关闭,因此无法获得命令的其它阶段。

有调查显示该恶意软件会查找已安装的电子邮件客户端(如Microsoft Exchange Client或Outlook),获取并泄露受害者的登录凭证。

图片图12 对已安装的邮件客户端的研究分析

此外,僵尸程序能够解密Firefox浏览器存储的所有用户名和密码。这些敏感数据使用Mozilla网络安全服务的PK11加密来保护,该恶意软件具备解密所需的所有功能条件。

恶意软件编写者重复使用公开可用的代码来实现此功能。下图显示了部分执行流程(左侧)和一段代码,该代码属于github上发布的KeePass插件(右侧),两者非常相似。

图片图13 恶意软件的一段代码(左侧);KeePass插件的一段代码(右侧) 

此外,恶意软件嵌入了能够绕过资源部分用户访问控制的程序。该程序滥用“pkgmgr.exe”Windows工具中的漏洞;很多与此漏洞相关的资源在互联网上都是公开的。

图片图14 UAC旁路程序的工作流程

尽管该恶意软件功能强大,但作者还是留下了一些与代码环境相关的蛛丝马迹。

图片

图15 编写恶意软件的可能路径

最后,可执行文件中出现了另一个奇怪的字符串:“AVE_MARIA”,这是当恶意软件正确联系到C2时打招呼的“暗号”。InfoSec社区的许多研究人员已将此特定字符串选为该恶意软件的名称。

图片图16 恶意软件发送的特殊字符串

结论

恶意软件的第一阶段,包括AutoIt脚本,与几年前由第三方安全研究人员分析的另一个恶意软件波非常相似:恶意软件逻辑基于INI设置文件,其中一些AutoIt代码也相同,但是最终的有效负载是不同的。

这些恶意软件可能是同一个作者编写的,复杂性不断增加,也有可能是该恶意软件的第一阶段在暗网上被售卖,而“AVE_MARIA”恶意软件的作者利用公开可获得的代码组成了一个新的窃取软件,并且未将与自己身份信息有关的痕迹清除干净。

*参考来源:securityaffairs,FB小编柚子编译,转载请注明来自FreeBuf.COM

图片

52730深度解构钓鱼软件AVE_MARIA

这个人很懒,什么都没留下

文章评论