JasperLoader:主攻意大利的恶意软件加载器

作者:   深圳市网安计算机安全检测技术有限公司 2019/06/03 11:05:27 52次阅读 国际
文章来源:https://www.4hou.com/web/18265.html

简介

        在过去的几个月里,出现了一种名为JasperLoader的新型恶意软件加载器,它以意大利和其他欧洲国家为目标,分发Gootkit等银行木马。我们最近也发表过JasperLoader相关特性的全面分析,在报告发表后不久,与之有关的分发活动就停止了。但经过几周的潜伏之后,我们发现JasperLoader的一个新版本正在传播。与初始版本相比,此版本有几个变化和改进的地方。JasperLoader通常用额外的恶意软件payload来感染系统,这些payload可用于泄露敏感信息、破坏系统或对组织产生其他负面影响。

        此次行动背后的攻击者有计划地控制恶意软件的传播,还采取了相应的措施避免安全人员的分析,同时用到了一种新的机制来改进受感染系统和C2之间的通信。目前,JasperLoader还在持续对意大利扩散着威胁,攻击者也未间断对此恶意软件的改进工作,使之变得越来越复杂,在未来我们可能会看到JasperLoader的多种版本。

恶意软件分发上的改变

        正如我们之前在对JasperLoader的分析中所提到的,JasperLoader采用了一个多阶段的感染过程,其特点是使用了几种混淆技术,使得分析更加困难。在感染初始阶段,攻击者利用一个名为Posta Elettronica Certificata (PEC)的服务来分发恶意邮件,PEC是一种经过认证的电子邮件服务,2019年初,意大利通过了PEC相关法案,这项新立法要求意大利企业使用电子发票来交付B2B和B2C交易的发票。攻击者嗅觉敏锐地意识到了可以利用新方案增加自身的可信度,诱使更多受害者打开恶意邮件。

        不过现在,攻击者对恶意软件分发的方式做了一些改变。

        我们最初看到的样本中,邮件携带了一个ZIP文件,其中包含VBS文件,一旦打开便会开启感染过程。而在当前版本中,攻击者不再直接使用附件。

JasperLoader:主攻意大利的恶意软件加载器

        上图是初始样本的邮件内容,由意大利语编写,并带有一个恶意附件,该邮件标题为“postacert.eml”,打开电子邮件后会弹出以下内容:

JasperLoader:主攻意大利的恶意软件加载器

        上图则是此次攻击中发现的新样本,也是分发过程开始开始转变的地方。电子邮件不再携带附件,但是有一个超链接转到地址hxxp:\tribunaledinapoli[.]recsinc[.]com/documento.zip,同时链接末端加上了邮件中的一个参数。例如,完整的URL是hxxp:\tribunaledinapoli[.]recsinc[.]com/documento.zip?214299,数字214299是电子邮件本身中引用的数字。该地址看似没什么问题,会得到来自Web服务器的HTTP 302响应。 HTTP 302是用于临时移动的重定向代码,多年来一直被攻击者滥用,比如几年前流行的利用302缓冲的漏洞利用工具包。

        该链接会重定向到www.cnnic [.] cn,即中国互联网络信息中心(CNNIC)。显然,这个域名对用户而言是无害的,只会让他们感到一头雾水,所以我们决定开始研究潜在的地理定位。

        地理定位是一种技术,攻击者使用它来确保所有的受害者都来自特定的地区或国家,而像我们这样的研究人员很难追踪到这种活动。地理定位经常由APT组织使用,但不常用于像JasperLoader这样的软件。为了测试,我们将流量路由到了意大利IP空间。

        当流量通过意大利IP空间路由时,结果会有很大差异。返回请求是一个ZIP文件,其中包含一个恶意VBS文件,该文件类似于我们发现的早期样本。执行此VBS文件后,感染过程启动并安装加载程序。

        这也说明JasperLoader在继续利用域名阴影(Domain Shadowing),并在攻击者控制的子域之间快速移动。下图显示了与JasperLoader利用的某一C2域的DNS解析,虽然范围有限,但能看出有超过95%的攻击事件来自意大利,地理定位保护措施似乎是成功的。

JasperLoader:主攻意大利的恶意软件加载器

JasperLoader功能变化

        JasperLoader的感染过程仍具有多阶段的特征,包括用于在系统上建立立足点,启动与攻击者控制的基础设施的通信,并实现加载器的核心功能。虽然许多处理函数与我们之前对JasperLoader的分析中描述的类似,但是恶意软件的操作有几个显著的变化,这些变化将在下面的小节中描述。

额外的混淆层

        与之前在JasperLoader感染过程中所看到的类似,攻击者依靠多层混淆来试图隐藏恶意软件的动作。混淆机制通常是利用字符替换机制,并在运行时通过数学计算来重构将要执行的PowerShell指令。恶意软件利用的的Visual Basic脚本(VBS)下载器也使用相同的过程。

JasperLoader:主攻意大利的恶意软件加载器

        在当前行动中,攻击者引入了额外一层混淆,用字符替换来进一步模糊底层的PowerShell。 对VBS进行反模糊处理后,底层PowerShell为:

JasperLoader:主攻意大利的恶意软件加载器

        对上图中的每个字符替换后会变成第一阶段的PowerShell,该文件用于从C2检索其他阶段。这一阶段PowerShell的样本是:

JasperLoader:主攻意大利的恶意软件加载器

        此PowerShell与之前的JasperLoader中的内容类似,但还有一些显著差异。

诱饵文件

        从第一阶段的PowerShell中可以看出,它从指定的URL检索PDF并将其显示给用户。 此PDF不是恶意的,只是设计用作诱饵文档,这样当用户执行VBS时,就会有一个预期的结果。

JasperLoader:主攻意大利的恶意软件加载器

        虽然受害者只是看到上面的PDF,但在后台感染过程仍在继续,恶意软件会继续检索第二阶段。

地理位置过滤

        JasperLoader中的一个变化是引入了基于地理位置的过滤,用于感染过程的交付阶段。在以前版本的JasperLoader中,感染过程的每个阶段都使用了Get-UICulture PowerShell cmdlet,并在系统配置为使用与中国,俄罗斯,乌克兰或白俄罗斯相关联的语言包时终止。最新版本的JasperLoader添加了额外的检查——罗马尼亚语,如果用户正在使用上述语言设置中的任意一个,则将中止感染进程。

JasperLoader:主攻意大利的恶意软件加载器

虚拟机/沙箱检测

        最新版本的JasperLoader中添加的另一个新特性是对基于管理程序的环境的检测。在许多情况下,恶意软件将执行各种检查,以确定它是否在虚拟环境中执行,如是则终止执行,以避免被沙箱或反恶意软件解决方案分析。

        JasperLoader的最新版本引入了查询Windows管理工具子系统(WMI)的机制,以获得被感染系统的模型,通过检查模型标识符,看看它是否匹配以下管理程序:

VirtualBox

VMware

KVM

        如果包含上述任一程序,恶意软件都将终止执行,并且不会在系统上执行任何其他操作。此后在感染过程的每个阶段都要进行同样的检查。

JasperLoader:主攻意大利的恶意软件加载器

第3阶段功能/Payload检索

        虽然第2阶段发生了一些细微的变化,他们大多是相关文件存储位置、文件命名约定和其他基础上修改,但整体功能,包括检索、去混淆、执行第二阶段进入第三阶段的过程仍相对不变。有关此过程如何工作的详细信息,请参阅我们之前的文章

        大多数正在进行的开发活动似乎都集中在JasperLoader感染过程的第3阶段,因为这是JasperLoader的大部分功能所在阶段。最新版本的JasperLoader去掉了恶意软件在重启后也能保持存在的机制,引入了保护C2通信的机制,通过更强大的机制来确保JasperLoader的更新能有效地传播到JasperLoader僵尸网络中的所有系统。

持久性机制

        在以前版本的JasperLoader中,恶意软件将通过在系统的Startup文件夹中创建恶意Windows快捷方式(LNK)来获取受感染系统的持久性。最新版本的JasperLoader也使用Task Scheduler完成了这项工作。使用以下语句在受感染的系统上创建计划任务:

schtasks.exe /create /TN "Windows Indexing Service" /sc DAILY /st 00:00 /f /RI 20 /du 24:59 /TR (Join-Path $bg_GoodPAth 'WindowsIndexingService.js');

        这将创建一个定期重新启动JasperLoader的计划任务。如果这个过程失败,JasperLoader将恢复到使用快捷方式进行持久化。

JasperLoader:主攻意大利的恶意软件加载器

自动恢复的C2机制

        JasperLoader中新加的另一个功能就是基于时间流的自动恢复C2域名检索机制,恶意软件指定默认的C2域,如果该域不可用,则使用系统上的当前日期生成一系列恢复域名,恶意软件将尝试使用这些域进行C2通信。

JasperLoader:主攻意大利的恶意软件加载器

注册bot

        与之前版本的JasperLoader不同的是,恶意软件还实现了新的bot注册和ID生成机制,并利用不同的信息为每个系统创建一个唯一的标识符。和以前一样,此信息作为HTTP GET请求中的参数传递给C2,并使用以下内容生成:

JasperLoader:主攻意大利的恶意软件加载器

一个有意思的PowerShell构件

        与JasperLoader的第3阶段相关联的PowerShell中有一个有趣的构件,它位于一个名为BG_SelectDomen()函数中,该函数负责定义用于未来通信的C2域。“domen”一词翻译过来就是“领域”,这个词在包括罗马尼亚在内的多个国家被广泛使用。

JasperLoader:主攻意大利的恶意软件加载器

        虽然这是一个低可信度指标,但对地理定位而言是很有意义的,以确定它是否应该继续在受感染的系统上执行。

Payload传递

        在分析最新的JasperLoader活动期间,我们无法接收到从攻击者的C2基础设施获得恶意PE32所需的命令和URL信息,但C2通信通道仍然处于活动状态,也还在发信号。

JasperLoader:主攻意大利的恶意软件加载器

        这可能是由于JasperLoader此时还没有被攻击者广泛使用。僵尸网络操作人员可能为了构建其功能而正试图获取JasperLoader感染,以便将其货币化,好在之后能利用僵尸网络分发其他的恶意软件。有报告表明GootKit可能再次成为之后行动的首选payload。

结论

        新的JasperLoader活动已经表明,攻击者在不断改进他们的攻击手段,以提高感染能力,同时尽量避免被检测和分析到。JasperLoader进化速度是非常快的,攻击者开发额外功能、增加混淆层,以及添加躲避虚拟机和地理定位的措施都是在较短时间内迭代的。从这点我们也能看出攻击者致力于使JasperLoader成为一个健壮灵活的威胁体系,可以随着安全控制和检测能力的变化而快速更新。

        虽然JasperLoader相对于其他成熟的恶意软件加载器来说还是比较新的,但随着其僵尸网络的不断增长,它很可能会在未来承载更多恶意软件payload,操作人员只需利用已经感染的系统,按下一个按钮或发出一条命令,就能造成大规模的破坏。

IoC

Domains

breed[.]wanttobea[.]com

zzi[.]aircargox[.]com

nono[.]littlebodiesbigsouls[.]com

tribunaledinapoli[.]recsinc[.]com

tribunaledinapoli[.]prepperpillbox[.]com

tribunaledinapoli[.]lowellunderwood[.]com

tribunaledinapoli[.]rntman.com

IP addresses

185[.]158[.]251[.]171

185[.]158[.]249[.]116

Hashes

052c9895383eb10e4ad5bec37822f624e443bbe01700b1fe5abeeea757456aed

54666103a3c8221cf3d7d39035b638f3c3bcc233e1916b015aeee2539f38f719

ee3601c6e111c42d02c83b58b4fc70265b937e9d4d153203a4111f51a8a08aab

本文翻译自:https://www.terabitweb.com/2019/05/23/sorpresa-jasperloader-html/
指导单位
广东省公安厅网络警察总队 广东省信息安全等级保护协调小组办公室