原文:LOLSnif – Tracking Another Ursnif-Based Targeted Campaign
译者:知道创宇404实验室翻译组
工具泄露是网络安全中非常有趣的事件。一方面泄露的工具在被熟知且进行分析后,会对原有的文件造成某种意义的破坏,另一方面其内容将会被传入到较低版本的工具当中。本文将会对Ursnif的新版本进行了详细分析。
由于恶意软件的存在,源代码泄露情况很普遍。2017年,代码“ Eternal Blue”(CVE-2017-0144)遭泄露并被黑客入侵,而早在2010年银行木马Zeus的泄露就已经形成了恶意软件新格局,该木马的源代码在泄露后,出现了与该银行木马相同的代码库。本文我将重点介绍源代码在2014年就被泄露的系列事件,这个系列被称为Ursnif(也称为Gozi2 / ISFB),Ursnif是成熟的银行木马,而关于该系列的研究也有很多。
本文中我对Ursnif的最新变体进行了分析,发现它利用LOLBins、组件对象模型(COM)接口等技术来检测Internet Explorer,借此绕过本地代理以及Windows Management Instrumentation(WMI)来与操作系统进行交互,达到代替本地Win32 API的效果,该操作很难被检测到。
该变体已被重新用作侦察工具和下载器,在打击网络犯罪攻击活动中有着重要意义。于2019年8月首次公开提及,与一些相关域名的注册日期一致,并在该年冬季进行了恶意攻击,有文章详细分析了该软件2020年4月发起的攻击活动,提出了关于LOLBins的使用,简而言之,LOLBins代表“Living Off the Land Binaries”,这意味着会利用目标系统上已经存在的系统工具来执行恶意目的。如,数十种Windows系统工具可用于下载文件、转储凭据或执行其他二进制文件。因此,攻击不需要自带工具,也可以将其踪迹隐藏在这些工具的合法用途中,由于本文中说到Ursnif变体使用了LOLBins,并对此进行了引用,因此在下文中将其称为LOLSnif,目前,我尚未发现它以自己的名字被追踪。
近期恶意活动的详细探究
为了更好的了解参与者的TTPS,我们从今年4月7日开始的LOLSnif活动恶意开始来进行分析。该活动主要通过发送邮件的形式将恶意代码隐藏在加密的ZIP垃圾邮件中,并在邮件文本中显示解密代码,要求用户使用代码对文件进行解密,以下是一个1.34M的JavaScript文件:
“my_presentation_v8s.js” (4d98790aa67fb14f6bedef97f5f27ea8a60277dda9e2dcb8f1c0142d9619ef52)
这款恶意软件于今年4月7日被提交给VirusTotal,其中的JavaScript文件最终会成为一个UtBuefba.txt
的PE可执行文件(需用一个8字符长的ASCII密钥进行),其文本也会被放到AppData \ Local \ Temp
中,并通过regsvr32.exe -s [redacted]\AppData\Local\Temp\\UtBuefba.txt
来启动DLL(“ -s”表示静默注册,不显示对话框)。即使在必须使用DLL来导出DllRegisterServer
和“DllUnregisterServer
的情况下,DLL也不会进行导出,因为它只有一个常规的DLL入口点。但是,此文件仍会对Ursnif DLL进行解压。
LOLSnif 分析
LOLSnif包含两个主要组件:加载程序和工作程序组件,前者使后者下降,这两个都是头文件稍微被破坏的PE DLL,其中DOS头部(“ MZ”)和PE头部(“ PE”)均被覆盖。虽然这可能会妨碍某些沙箱解决方案转储有效负载,但问题很容易修复。值得注意的是,它们都是x86二进制文件,目前我还未发现其与任何恶意软件相关联。
加载器
未打包的DLL (e3d89b564e57e6f1abba05830d93fa83004ceda1dbc32b3e5fb97f25426fbda2)包含两个导出点:DLL入口点和DllRegisterserver,后者是用regsvr32注册的,类似于Ursnif加载器,并使用相同的配置机制(JJ结构)。
下图说明PE列表下方的JJ结构,每个配置部分均以头部数字0x4A4A(“ JJ”)开头,并保留数据的偏移量以及用于描述数据类型的CRC32标签(如,额外的有效负载)。在这里可以找到有关Ursnif的配置格式的详细介绍。
加载程序包括两个配置部分。第一部分是安装第二部分有效负载所需的INSTALL_IN
,第二部分包含一个APlib压缩的DLL,它是实际的工作程序。在解压缩第二个DLL之前,加载程序将检查操作系统是否具有俄语或中文本地化版本。如果有,加载程序则停止操作。
相关操作
LOLSnif的相关操作与最初的Ursnif相关操作类似。如:保留项目的总体结构,使用JJ结构的配置存储以及加密.bss
部分(包含字符串和其他值得保护的数据)。尽管加密算法略有区别,但也增加了一些有意思的功能。
它的配置格式与最初版相同,下图有颜色标记的部分显示了Blob配置。它的第一部分以字符串和数据类型信息的偏移量显示结构,这些字符串存储在Blob(灰色区域)的末尾,其包含命令和控制服务器地址,下面是公用DNS服务器的列表。值得注意的是该Blob包含DGA(域生成算法)的配置参数,如,用于下载域生成关键字的域constitution [。] org
。但是,LOLSnif不包含任何用于生成域名的功能。
在最原始的Ursnif中,LOLSnif带有一个加密的.bss
,该部分包含字符串,此部分在启动时就会被进行解密,但其解密算法与原始代码库略有不同。解密密钥是基于样本的编译日期,该日期硬编码在二进制文件中。原始的Ursnif使用滚动XOR算法,LOLSnif的算法是基于add/sub指令。解密字符串的完整列表可以在下面找到附录B。
此外,某些字符串并没有被引用,猜测它可能是反汇编程序的问题,但实际上是代码的问题。这些字符串在Ursnif的代码中被定义为宏(请参考文件“Common/ cschar.h”),恶意软件的操作者会对其进行追踪。
登记交互以两种方式实现:本机Win32 API(如RegOpenKey,RegEnumKey,RegCloseKey)和Windows Management Instrumentation(WMI)。有一些函数采用布尔参数,这用于决定是使用Win32 API还是WMI,如图所示的用于设置注册表项的字符串值的函数。第一个参数(在反汇编中标记为use_wmi
)确定本机API或WMI的使用。
LOLSnif是使用的x86进行构建,但预估其也可在x64平台上运行。另一个有趣的方面是LOLSnif广泛使用COM接口。据报道该恶意软件通过IWebBrowser对Internet Explorer进行了检测,以联系其命令和控制服务器(CC)。由于Internet Explorer常与代理进行连接,因此该方案允许它绕过合作网络中的任何代理配置。用LOLSnif通过IHTMLElement在DOM中搜索字符串invalidcert
,可能会出现无效的证书警告。若遇到此情况,可证明此警告会将效负载发送到CC服务器。
但是,当前示例未使用https,而是使用纯http。该恶意软件将Internet Explorer设置为标准浏览器,以避免操作过程中出现任何弹出窗口。另外,Ursnif变体还使用了LOLBins,LOLBins用于从注册表mshta.exe+powershell.exe
,以此启动恶意软件,还能够下载和执行其他模块以及有效负载。
LOLSnif的api1活动观察范围的缩小
在今年4月份的恶意活动中观察发现:我们可以利用几个链接来查找更多样本和域附录A,列表列出了我在观察期间发现的所有IoC。首先,LOLSnif的字符串解密算法与原始代码库不同,基于此算法寻找了更多样本并从中提取出了相关配置。
样本均使用相同的服务器ID(730)和相同的RSA密钥(此处未列出),每个系列都有三个递增的僵尸网络ID(1000、2000、3000)。他们的编译时间戳近乎是合法的,除最后一个以外的所有域都共享域wensa [。] at
或其子域。操作者们在经过6个月努力后,发现CBC密钥在所有情况下均显示为W7fx3j0lFvOxT2kF
。该异常值属于僵尸网络ID 2000,而该僵尸网络的密钥是U7yKaYwFde7YtppY
。更有趣的是,有两个样本在2020-02-19的四秒钟内进行了编译,这表明存在某种形式的构建自动化。
另一种方法是利用CC基础结构进行分析。首先,所有样本都将/ api1
作为URL的一部分,例如been.dianer [。] at / api1
。其次,除一个域外,所有域都使用“.at”TLD。有一个TOR“.onion”域6buzj3jmnvrak4lh.onion
。如果我们利用有关已知域IP的DNS信息,则会发现更多有趣的信息,有许多领域,相关的操作者使用了几个月,域“ wensa [at]”的使用时间最长,大约六个月。
以下时间线显示了唯一的配置和某些域。样本由其SHA256前缀和蛇形CBC密钥前缀(例如8d700ea_W7)描述。这些域有首次发现日期(FS),其中一些具有最后查阅日期(LS)。参与者可能在操作开始时就注册的域lamanak[。]at
和kamalak[。]
且与基础结构IP相关联。
关联的参与者要么不关心OpSec,要么非常确定它们的功能,因为它们多次重用域和ip,有时它们会使用它们很长一段时间。
结论
此文中,我仔细研究了Ursnif的最新变体(LOLSnif)及其近期活动相关操作者可进行有针对性的网络犯罪操作。这些活动的核心是Ursnif Trojan的变体,该变体被重新用作下载器和侦察工具,以满足操作者的特殊需要。
该操作者使用的技术(例如LOLBins,)及在攻击后期如利用后期开发框架(Cobalt Strike)和VNC客户端(TeamViewer))中观察到的COM接口和TTP都表明了这一点:有明显针对性的攻击行为。袭击事件自上个月以来一直在持续,没有引起公众的广泛关注。这可能是关联的参与者重复使用域和IP的原因,但操作者的存在这一点不容忽视。
本文由 Seebug Paper 发布,如需转载请注明来源。本文地址:https://paper.seebug.org/1213/