Cardinal RAT攻击以色列金融科技公司
导语:研究人员发现Cardinal RAT的变种和EVILNUM恶意软件家族在同一时间攻击以色列的金融科技公司。
2017年Unit 42研究人员发现了一个恶意软件家族Cardinal RAT。该恶意软件家族在过去2年间销声匿迹,通过Carp下载器进行传播。研究人员近日发现主要攻击以色列金融科技公司的攻击活动,进一步分析发现了Cardinal RAT和EVILNUM之间的关系。EVILNUM是一个基于JS的恶意软件家族,用来攻击类似的组织。
Cardinal RAT
Cardinal RAT使用了一些混淆技术来隐藏自己,本文分析的样本是:
最新的Cardinal RAT样本使用了不同的混淆技术来妨碍分析人员对底层代码的分析。混淆的第一层是隐写术,初始样本是用.net编译的,其中含有嵌入的BMP文件。
图1. 含有.net加载器的嵌入的BMP文件
恶意软件执行时会读取该文件,从图像中分析像素数据,并用单字节XOR key解密结果。研究人员提供了一个python脚本来自动化该过程。最终的结果是一个用.NET编译的DLL文件:
该文件在内存中加载后,初始加载器会加载和执行corerun函数,初始化恶意软件的第二阶段。DLL开始用Windows内置的工具执行休眠:
cmd.exe /c choice /C Y /N /D Y /T 20
该命令会使用户选择一个20秒的timeout,然后进程退出。因为窗口是隐藏的,而且没有该选择对应的工具,恶意软件简单使用它作为一个可选的sleep命令。
第二阶段DLL会读取第一阶段可执行文件中strings嵌入的资源。部分资源会被解密来提供释放期的配置信息。配置信息会决定了恶意软件是否进入安装路径。在安装路径中,首先向%TEMP%\[random].ini中写入一个唯一的GUID。然后创建以下目录:
%APPDATA%\Microsoft\Windows\IEConfig
然后将含有下面哈希值的嵌入式可执行文件写入%TEMP%\[random].exe。该文件有RunExecutive.exe的内部文件名,简单的复制argument #2的内容到argument #1指定的文件路径中。
恶意软件会在受害者计算机的开始菜单中用GUID生成随机文件名的LNK文件,比如{fcb29182-b3cc-47e2-a95c-b22c6d87dda1}.lnk。LNK文件会执行下面的命令:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -windowstyle hidden “%APPDATA%\Microsoft\Windows\IEConfig\[random]\sqlreader.exe”
最后,恶意软件会执行前面写的RunExecutive可执行文件,用参数复制原始可执行文件到前面引用的sqlreader.exe文件路径。
后门嵌入的资源的剩余部分会用16字节的XOR密钥解密,得到一个.NET的可执行文件。可执行文件注入了以下2个系统中的合法可执行文件或进程:
· RegSvcs.exe
· RegAsm.exe
在之前的恶意软件版本中Cardinal RAT会注入大量的合法进程。最后的payload哈希值为:
在所有的混淆中,Cardinal RAT payload在能力和操作上并没有明显的表换。其中最明显的变化在于恶意软件所用的混淆,所有的函数、方法和变量都重命名为MD5哈希值了。
图2. Cardinal RAT payload中的混淆
除了所用的混淆路径外,恶意软件本身也有一些变化。首先,嵌入的配置在潜入之的顺序和值本身都有一些变化。其次,配置编码的方式也有一些变化,之前1.4版本中base64编码的一些值已经不是base64编码了。
$ python parseConfig.py GreyCardinalConfig Mutex: {509ce3ef-e03e-467e-be19-710782f13c28} Campaign Identifier: ‘\xf1\xaf\x02i.]\xa4\xe0’ C2 Server: affiliatecollective[.]club C2 Port: 443 Hash Value: 0304674e9876530dfbea5a9b4fec7b98 Additional C2 Servers: 0 GUID: ‘\xd6\x04hr\x9a\xedLN\xae\xe8\xd0\x87\x80\x19\x15z’ Buffer Size: 81920 Max Buffer Size: 40960000 Sleep Timer Between Requests: 2000 Unused Integer: 60000 Unused Integer: 0 Perform Keylogging: 0 Disable Sleep on Victim: 0
网络通信和到远程攻击者的动作在不同版本之间是连续的。恶意软件仍然有以下的功能和动作:
· 收集受害者信息
· 更新设置
· 作为反向代理
· 执行命令
· 卸载自己
· 恢复密码
· 下载和执行新文件
· 键盘记录
· 获取截屏
· 更新ardinal RAT
· 清除浏览器缓存
EVILNUM
在用户提交Cardinal RAT恶意样本的同时,研究人员发现还有用户提交EVILNUM恶意软件样本。因为攻击的目标都是金融机构,因此研究人员怀疑这两个恶意软件之间有所关联。
EVILNUM恶意软件有至少两个版本,一个是JS一个是.NET编写的。
虽然编写的语言不同,样本是类似的,而且研究人员认为.NET版本是.JS版的重写版本。
EVILNUM是一阶段的恶意软件家族,负责向攻击者提供关于受感染主机的数据,以决定是否要在受害者机器上安装其他工具。EVILNUM支持的命令根据版本不同而不同,但一般包括:
· 设置驻留
· 用cmd /c运行任意命令
· 下载其他文件
· 获取截屏
因为恶意软件的操作之前已经分析过了,本文只介绍新旧版本之间的异同:
表1. EVILNUM新旧版本的异同(不同用红色表示,相同用绿色表示)
恶意软件看起来是重写的。尽管如此,恶意软件也只服务于第一阶段,而且攻击者使用不同的工具来攻击网络。
目标
从2017年4月开始,研究人员就发现Cardinal RAT出现针对金融科技公司的攻击中,被攻击的公司都位于以色列。
图3. VirusTotal上Carp Downloader下载器的分布
对EVILNUM而言,VirusTotal中提交样本的分布有所不同,如图4所示:
图4. VirusTotal中EVILNUM样本提交按国家分布
结论
Cardinal RAT和EVILNUM都用于攻击金融科技公司。这两个恶意软件家族还曾在同一时间内攻击同一目标,而且使用了主题类似的诱饵文档。
研究人员还给出了以下建议来应对此类攻击:
· 应用有效的垃圾邮件过滤技术
· 进行适当的系统管理
· 更新Windows系统和补丁
· 拦截含有LNK文件附件的邮件,包括含有LNK文件的zip文件
· 拦截含有宏的文档附件的邮件
· 强制执行父子进程策略来限制恶意软件对脚本语言的使用。
发表评论