新一波Ursnif来袭

ang010ela Web安全 2019年2月12日发布
Favorite收藏

导语:Yoroi研究人员发现一个新的Ursnif样本,在该变种中,Ursnif使用含有VBA宏代码的武器化的office文档,其中宏代码作为释放器和多阶段混淆Powershell脚本来隐藏真实的payload,还使用隐写术来隐藏恶意代码并尝试绕过AV的检测。

Ursnif是一个非常活跃的银行木马,也叫做GOZI,事实上是2014年泄露的Gozi-ISFB银行木马的一个副本。在该变种中,Ursnif使用含有VBA宏代码的武器化的office文档,其中宏代码作为释放器和多阶段混淆Powershell脚本来隐藏真实的payload。除此之外,Ursnif还使用隐写术来隐藏恶意代码并尝试绕过AV的检测。

该变种使用QueueUserAPC进程注入技术来注入explorer.exe,因为在目标进程中没有创建远程线程。

技术分析

初始感染向量是一个excel文件,要求用户启用宏执行来合理查看伪造文档的内容,伪造的一般是发票、订单等等。

image.png

图1. Ursnif宏文档

研究人员对宏代码进行分析,发现恶意软件首先用Application.International MS Office特性来检查受害者所在的国家。如果国家代码是Italy (code 39),宏就会使用shell函数执行下一个命令。

image.png

图2. 部分VB宏代码

宏代码的其余函数用shell命令来启动,合并多个不同方式编码的字符串。最终的命令含有大量的二进制字符串,使用下面的函数来使其变成新的Powershell命令:

[Convert]ToInt16() -as[char]

image.png

图3. 宏代码使用的Powershell脚本

如上图所示,恶意软件会尝试从两个嵌入的URL中下载图像:

httpsimages2.imgbox[.]com55c4rBzwpAzi_o.png
httpsi.postimg[.]ccPH6QvFvFmario.pngdl=1

这两个看似正常的图片中实际上含有新的Powershell命令。武器和的图片是用Invoke-PSImage脚本伪造的,这允许在PNG文件的像素中嵌入脚本的一些字节。

image.png

图4. 隐藏在图片中的Powershell脚本

Et voilà是另一个混淆的Powershell阶段。Payload是base64编码的,所以可以很容易是移动和显示下一段代码。

image.png

图5. 反混淆进程的另一阶段

看起来,十六进制编码可以用前面提到的[Convert]ToInt16函数来解码。

最终得到的代码是:

image.png

图6. 下载Ursnif 加载器的Powershell脚本

恶意软件还会根据受害者所在的国家执行另一个检查,确保是意大利。从命令中提取的信息有:

Get-Culture  Format-List -Property

如果这一检查的结果是true,脚本会从httpfillialopago[.]info~DF2F63下载一个EXE payload,保存为%TEMP%Twain001.exe,然后执行。

截止分析时,大多数反病毒引擎还无法判别该文件:

image.png

图7. Ursnif加载器检测率

虽然被成功检测识别的概率很低,但研究人员发现可执行文件是一个经典的Ursnif加载器,负责联系服务器来下载恶意二进制文件,该文件会被注入到explorer.exe进程中。恶意软件使用函数IWebBrowser.Navigate来从恶意服务器felipllet[.]info和类似.avi文件的URI路径来下载数据:

image.png

图8. IWebBrowser.Navigate函数

服务器会响应发送加密数据的请求,如图所示:

image.png

图9. 部分含有加密数据的网络流量

解密后,所有有用的数据都保存在HKCUSoftwareAppDataLowSoftwareMicrosoft{GUID}的注册表中。

image.png

图10. 恶意软件设置的注册表

注册表值defrdisc让研究人员想起了合法的硬盘碎片清除工具,其中含有下一步执行的命令,并设置为系统启动项:

image.png

图11. 系统启动时执行的命令

命令的目标是通过Powershell引擎执行含有cmiftall注册表值的数据:

CWindowssystem32wbemwmic.exe outputclipboard process call create “powershell -w hidden iex([System.Text.Encoding]ASCII.GetString((get-itemproperty ‘HKCUSoftwareAppDataLowSoftwareMicrosoft94502524-E302-E68A-0D08-C77A91BCEB4E’).cmiftall))”

Cmiftall的数据是一个简单的十六进制编码的Powershell脚本,因此可以重构其行为。

image.png

图12. 用来通过PAC注入方法注入到最后的二进制文件的Powershell脚本

所以,通过使用保存在注册表中的Powershell脚本,Ursnif可以为含有final payload的恶意字节数组分配空间,并通过QueueUserAPC和SleepEx调用来以合法进程的线程来启动恶意程序。

Ursnif的完整工作流如下图所示:

image.png

图13. Ursnif工作流

根据脚本字节数组中的数据,研究人员可以提取与Ursnif注入到explorer.exe进程对应的DLL。

该DLL看似是被破坏了,静态分析结果如下:

image.png

图14. DLL信息

使用APC注入技术在内存中加载是没有问题的。

研究人员将该文件提交到VirusTotal,检测结果是56个反病毒软件没有一个能够成功检测。

image.png

图15. Final DLL的检测率

结论

2018年12月和2019年1月,Cisco Talos等安全研究团队都分别对该Ursnif的变种进行过分析。本次分析的Ursnif样本使用相同的APC注入技术来安装final二进制文件到explorer.exe进程中,同时使用了混淆和隐写技术来隐藏恶意行为。Ursnif的活动越来越活跃,虽然C2服务器目前是不可达的,但是恶意软件的注入仍在进行中,而且攻击者也常常更换C2来防止被追踪和分析。

本文翻译自:https://blog.yoroi.company/research/ursnif-long-live-the-steganography/如若转载,请注明原文地址: https://www.4hou.com/web/16132.html
点赞 5
  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论