记录黑客技术中优秀的内容, 传播黑客文化,分享黑客技术精华

Ursnif新变种使用鼠标移动进行逃逸和解密

2017-07-26 20:10

前情提要

2016年1月,Forcepoint安全实验室报告了一个通过垃圾邮件进行分发的银行木马 Ursnif,其在初始的HTTP请求中使用“Range”特征来规避检测。

2017年7月,我们在一个恶意电子邮件中提取到了一个Ursnif的新变种,邮件附件是一个加密的Word文档,解密密码在邮件正文中。

我们有几份2017年4月份以来的Ursnif相关的活动记录,该文档中包含了几个被混淆过的VBS文件,通过VMI加载恶意的DLL文件。

然而,新版本的Ursnif表现出一些新的特性,包括在躲避沙盒环境和自动化虚拟机(VM)方面玩出了新花样,能够通过鼠标移动来检测是否是真实用户在与计算机进行交互,结合鼠标的位置和文件的时间戳来解密内部数据,从电子邮件客户端Thunderbird中窃取数据。

分析

本次发现的Ursnif操纵者使用的诱饵电子邮件如下图所示:

下载并解密附件之后,会得到三个以“docx”为后缀的带有OLE文档图标的文件,诱惑用户去双击它们。如下图所示:

事实上,它们的文件属性显示它们是三个完全相同的VBS脚本,包含了相同的经过了高级混淆的一组代码,这些代码中被大量垃圾脚本填充以掩盖其正常的逻辑。

一旦触发,它会试图从 “hxxp://46.17.40[.]22/hyey.pnj” 下载恶意软件,如果这一步失败了,会尝试从另一个网站下载,备用的网址是“hxxp://inshaengineeringindustries[.]com/head.pkl”,这些文件其实是DLL文件,可以通过WMI加载。

rundll32 [malwarepath] DllRegisterServer

这个恶意的DLL被打包,并再次填充大量的垃圾代码,以阻止对其进行静态分析。在执行的过程中,它会下载第二个DLL文件,并将其映射到当前地址,修复Import Address Table 和 Relocation Table,最后跳转到入口点执行。

第二个DLL首先会进行完整性的自检,随后执行下列操作:

  • 执行anti-sandboxing检查;
  • 执行anti-VM检查;
  • 通过一个自动运行的注册表项,实现持久化;
  • 将自身注入到“exe”进程中。

接下来,重点讲解一下新型的基于鼠标的抗沙盒检查和解密技术。

Anti-Sandboxing

恶意程序样本使用了一种算法程序,通过计算当前和之前记录的的鼠标坐标之间的差值来检测鼠标的移动,通常情况下在沙盒环境中鼠标是不移动的,恶意程序以此来判断是否是在虚拟机中。而后,还使用这个过程中生成的值来强力破解他自己的加密密钥。

第一步:Key的生成

首先,恶意程序利用过去和当前鼠标位置的X和Y坐标,计算出一个差值:D-Value (delta),之后选择.BSS 段的相对虚拟地址(RVA)和“SizeOfRawData”值的总合作为一个 base seed。将base seed 与文件创建时间(在本例中是“Apr 11 2017”)做 XORs (异或运算)得到一个值,将这个值添加到D-Value的最低的五个Bit位,从而得到解密密钥。

相关代码示例如下图所示:

第二步:.BSS段的解码

恶意软件会进行一个循环计算,使用DLL中.BSS 段的当前 DWORD数据和上一个 DWORD数据以及上一步中生成的Key值进行异或运算,每计算一次,计算器增加一次,并替换当前的DWORD值。代码示例如下所示:

第三步:验证解密密钥

之后,对.BSS段的数据进行解码,计算.BSS段中三个偏移位上值的总和(分别为:0x61d、0x619 和0x625),然后将这个总和与“0EE553B4E”值进行比较,如果匹配,就执行其余的代码,否则就会恢复加密的.BSS段的原始数据,并尝试重新计算新的密钥。

如果运行在沙盒环境中,由于鼠标位置移动的差值为0,因此 .BSS   段的内容总是不能被准确的解码,程序将循环的执行前边的代码,无法顺利进行下去。而在真实的操作环境中,由于只需要D-value有最低5-bits就能够得到正确的Key值解码.BSS段的数据。

加密密钥本身是一个重要的全局变量,它还将被用于后续解码APIs、一个隐藏的PE文件、同步对象、注册表数据、URLs等。

此外,解码操作仅在程序运行时被执行,防止内存分析工具转储恶意软件内存的整个明文字符串流。

解码Windows APIs被用于后续的注入操作,代码示例如下:

借助于解密密钥,可以从第二个DLL文件的数据部分安全地提取一个附加的嵌入的PE文件(这是第三DLL文件),将其释放到一个临时缓冲区,并注入到“explore.exe”进程中。

Ursnif向来喜欢耍新花样

Ursnif向来喜欢使用一些聪明的招数,这个银行木马俨然已经成为恶意软件新技术的滋生地。

例如,2016年夏天,Ursnif坚持使用Tor网络隐藏它的C&C服务器,它是第一批这样做的银行木马和恶意软件家族之一。同年夏天,Ursnif被观测在测试和部署其他的创新的抗分析和VM逃匿技术。

  • 检测文件名称:文件被提交分析的时候,通常会被重命名为它们的MD5或SHA256哈希值,使用十六进制字符串表示(如0123456789ABCDEFabcdef),Ursnif会检测文件名,如果发现本地文件中包含字母数字字符,如”t”、 “R”或 “#”,才会判定是在一个普通的PC机上运行。
  • 检查本地PC机上有图形界面的应用程序:VM只运行少量的进程,而且很少有图形界面。如果Ursnif发现系统中的进程少于 50个,会停止运行,判定这是在一个VM环境。
  • 检查用户的IP地址:Ursnif会查询计算机的IP地址,并与一个IPs地址清单相比较,清单里包含了安全公司及其数据中心的IP列表。
  • 检查最近打开的文件:Ursnif会检查最近打开的文件的数量,通常在VM上这个数字都很小,因为很少有用户使用虚拟系统处理常规任务。
  • ……

上面讲述的仅仅是Ursnif在过去一年中部署过的一些少数的技巧。

结论

在此次攻击活动中,受害者将收到一封垃圾邮件,其中包含了一个带有密码保护的压缩文件,一般来讲,当附件文档包含敏感内容时,发送方会采取这种方式。近年来,这种方法被攻击者广泛使用,这样做不仅能够有效绕过IDS的检测,对于欺骗收件人(邮件可能包含重要信息)也很有帮助。

Ursnif部署了三个嵌套的DLL文件

受害人将附件文件解压缩后,会看到三个Word 文档。

根据上文分析部分的描述可知,三个文档中包含了相同的恶意宏脚本。骗子使用了三个文件,目的是为了提高用户打开并感染的机率。

一旦触发宏脚本,会下载一个DLL文件,解压缩第二个DLL,然后通过一系列计算和验证,获取第三个DLL,第三个DLL文件被用于安装银行木马。

鼠标移动模块的作用并不仅仅用于检测是否是一个真实的操作者或者是一个虚拟环境,也被用来暴力破解一个存储在第二个DLL中的加密密钥,这个加密密钥可以用来获取到第三个DLL。总之,我们已经习惯了Ursnif会经常耍些聪明的把戏。

Ursnif的目标并非窃取银行凭据

最不同寻常的是,这个版本的Ursnif并没有专注于窃取银行凭据,而是专注于从Mozilla的电子邮件客户端Thunderbird中提取联系人和密码信息。Forcepoint 的研究人员Yogi Gao称,“在这个样本中,与Thunderbird相关功能的背后意图尚未确定”,这很可能是对这种活动的首次尝试,意味着将来的版本中可能会包含更多的电子邮件客户端或应用程序的特性。

IOCs

下载地址:

hxxp://46.17.40[.]22/hyey.pnj hxxp:// 46.17.40[.]142/45.txt hxxp://inshaengineeringindustries[.]com/head.pkl hxxp://ardshinbank[.]at/key/x32.bin hxxp://ardshinbank[.]at/key/x64.bin

C2:

aaxvkah7dudzoloq[.]onion 0x7293c971[.]ru

SHA1 值:

82615b4bb03ba00f141bb4d4b57bf8a73e76ebe9 bdcb4b96a281da3e09e29071dc9661ce39d442f1 73fdde182759e644a3d7296537a048a6980e8526 60e221bd9e234ab6786def88a1f0e11460678fb4 ce7e48d8ee6e113429dba75a8528568fda4b0067

设置自动化注册表项:

Key:   HKEY_USERS\S-1-5-21-746137067-1417001333-1606980848-500\Software\Microsoft\Windows\CurrentVersion\Run Name:  Random String Value: rundll32 [malwarepath]

知识来源: www.mottoin.com/104352.html

阅读:138270 | 评论:0 | 标签:代码审计 文章 移动

想收藏或者和大家分享这篇好文章→复制链接地址

“Ursnif新变种使用鼠标移动进行逃逸和解密”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

关注公众号hackdig,学习最新黑客技术

推广

工具

标签云

本页关键词