51

钓鱼恶意软件AVE_MARIA的技术分析

 5 years ago
source link: https://www.freebuf.com/articles/es/194253.html?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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

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

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

UvIfmmZ.jpg!web

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

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

技术分析

fQbEBrA.jpg!web

图2 图标

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

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

nUFNbyy.jpg!web

图3 SFX解压程序的配置

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

RfmYBn7.jpg!web

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

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

xfi.exe:一个合法的、能够执行指定AutoIt脚本的解释器。
hbx = lbl:第一个AutoIt脚本(将指令隐藏在大量注解中来迷惑分析人员)。
uaf.icm:一个包含所有恶意软件设置信息的文件,例如安装文件夹、解释器名称和下一阶段使用的其它参数;根据“INI文件格式”构建。

v2UNjmR.jpg!web

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

ayU3q2B.jpg!web

图6 uaf.icm的结构

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

$> xfi.exe hbx=lbl

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

ni6B3em.jpg!web

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

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

zIJFJrM.jpg!web

图8 恶意软件的躲避示例

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

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

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

VNvAv2f.jpg!web

图9

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

RfiuAvf.jpg!web

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

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

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

vaeaE3R.jpg!web 图11 恶意软件设置的注册表项

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

有效负载:AVE_MARIA Stealer

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

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

fERRjiU.jpg!web 图12 对已安装的邮件客户端的研究分析

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

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

iemE3eu.jpg!web 图13 恶意软件的一段代码(左侧);KeePass插件的一段代码(右侧) 

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

mii6RfN.jpg!web 图14 UAC旁路程序的工作流程

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

77RRVjz.jpg!web 图15 编写恶意软件的可能路径

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

reymMnN.jpg!web 图16 恶意软件发送的特殊字符串

结论

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

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

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK