谷歌浏览器调用本地exe_赶紧打补丁!黑客利用谷歌浏览器零日漏洞CVE-2019-13720发起攻击...

5f587ebe29bdfffe40f886c757552a1a.png

最近,卡巴斯基实验室发现了一场黑客攻击行动,并将其命名为“Operation WizardOpium”。

在这场攻击行动中,攻击者利用了谷歌浏览器中的一个尚未公开的漏洞——CVE-2019-13720,并试图嫁祸给朝鲜黑客组织“Lazaru(拉撒路)”。

技术细节

在一个韩语新闻门户网站上,攻击者在主页中插入了恶意的JavaScript代码,以从远程网站上加载配置脚本。

如你所想,这就是传说中的“水坑攻击(Watering hole)”。

10c678541846657d21c2b8689762eea3.png

图1. 重定向到漏洞利用登录页面

主页面上托管着一个小型JavaScript标签,可以从hxxp://code.jquery.cdn.behindcorona[.]com/加载远程脚本。

随后,该脚本便会加载另一个名为“.charlie.XXXXXXXX.js”的脚本,用于对比浏览器的用户代理信息(检查浏览器是否运行在64位的Windows系统上,并且不以WOW64进程运行),以检查目标系统是否能够被感染。

此外,该脚本还会尝试提取浏览器的名称及版本——攻击者想要利用的是谷歌浏览器中的一个bug,需要通过该脚本来判断浏览器版本号是否大于或等于65。

020b77ed156afa29dda41fe422015b30.png

图2. 用于检查浏览器版本的“.charlie.XXXXXXXX.js”脚本

如果条件符合,该脚本则会向由攻击者控制的服务器(behindcorona[.]com)发起一系列AJAX请求,其中路径名以参数形式传入目标脚本(xxxxxxx.php)。

第一个请求用于获取某些重要信息,以备后用。信息包括多个经过十六进制编码的字符串,用于指导脚本需要从服务端下载多少块(chunk)漏洞利用代码。

此外,字符串还包含指向某个图像文件的URL,该文件中包含最终有效载荷的秘钥以及用于解密漏洞利用代码块的RC4秘钥。

feec4c6bdb9f5a9f48ae24903882df57.png

图3.利用链-向xxxxxxx.php发起AJAX请求

在下载完所有块后,RC4脚本将解密所有数据并将它们拼接在一起,以向攻击者提供一个包含完整漏洞利用代码的JavaScript脚本。

2b6fb04fcf6d3ba0c9da1dcc03602ab6.png

图4. 再次检查版本号

漏洞利用脚本经过混淆处理,在去混淆后,我们会发现一些奇怪的东西:

8182cadbdf14d23e0af228f5c2f655f2.png

图5. 经过混淆处理的漏洞利用脚本

1、脚本会再次检查用户代理字符串,以确定浏览器版本是76还是77。

2、一些函数调用了浏览器的BigInt类,而该类可用于在JavaScript代码中执行64位运算。通常来讲,漏洞利用脚本开发者会通过使用32位数值来实现自己的函数。但在这场行动中,攻击者使用的却是BigInt。

7787d28bea44637d913a38158ac00262.png

图6.用于处理64位数值的代码片段

3、有很多函数及变量并没有在实际代码中使用,这通常意味着这些函数及变量属于忘了被删除的调试代码。

4、大部分代码都使用了多个类,而这些类都与浏览器中存在漏洞的某个组件有关。

5、代码中还有一些大数组,用来表示shellcode代码及内嵌的PE映像。

漏洞利用脚本首先会尝试触发UAF,以获取一些关键的64位地址信息。如此一来,攻击者便可以实现:

  • 如果获取地址成功,意味着漏洞利用脚本运行正常;
  • 可以使用提取到的地址获取堆/栈的位置,绕过ASLR(地址空间布局随机化)机制;
  • 可以在该地址附近进行搜索,进而发现其他有用的指针,以备后用。

然后,脚本会尝试使用递归函数创建一大堆大型对象。这样做是为了获取特定的堆布局,这对于确保漏洞利用能够成功很重要。

与此同时,脚本还将尝试使用堆喷射技术,目的是复用先前在UAF中被释放的同一个指针。

总的来说,脚本会尝试执行各种操作来分配/释放内存以及其他一些技术,最终攻击者成功实现了任意读/写原语。通过这种方式,攻击者能够构造一个特定的对象,与WebAssembly及FileReader配合使用,以执行嵌入式shellcode有效载荷。

8a768eeb3d8e53b1d21387268929d743.png

图7.第一阶段shellcode

有效载荷分析

最终下载的有效载荷是一个经过加密处理的二进制文件(worst.jpg),由shellcode负责解密。

5e8e0b3a740d15174fb52c5e8f3ea245.png

图8.经过加密处理的有效载荷“worst.jpg”

解密后,恶意软件模块将以“updata.exe”的形式保存到本地磁盘上并执行。为了实现长久驻留,恶意软件会在Windows Task Scheduler中创建计划任务。

有效载荷的安装程序是一个RAR SFX压缩文件,具体信息如下:

  • 文件大小:293,403
  • MD5:8f3cd9299b2f241daf1f5057ba0b9054
  • SHA256:35373d07c2e408838812ff210aa28d90e97e38f2d0132a86085b0d54256cc1cd

它包含两个文件:

2b013c27c7ddcb4275e55af3b0013919.png

图9. SFX压缩文件所包含的两个文件

文件名:iohelper.exe

MD5:27e941683d09a7405a9e806cc7d156c9

SHA256:8fb2558765cf648305493e1dfea7a2b26f4fc8f44ff72c95e9165a904a9a6a48

文件名:msdisp64.exe

MD5:f614909fbd57ece81d00b01958338ec2

SHA256:cafe8f704095b1f5e0a885f75b1b41a7395a1c62fd893ef44348f9702b3a0deb

这两个文件的编译时间完全相同,都是“2019年10月8日 01:49:31”。

其中,msdisp64.exe就是恶意软件的主模块,用于通过硬编码的C2服务器列表下载下一阶段有效载荷。

想要获取有关这场黑客攻击行动更为详细的信息,可以与卡巴斯基实验室进行联系,部分IoC如下:

  • behindcorona[.]com
  • code.jquery.cdn.behindcorona[.]com
  • 8f3cd9299b2f241daf1f5057ba0b9054
  • 35373d07c2e408838812ff210aa28d90e97e38f2d0132a86085b0d54256cc1cd
  • 27e941683d09a7405a9e806cc7d156c9
  • 8fb2558765cf648305493e1dfea7a2b26f4fc8f44ff72c95e9165a904a9a6a48
  • f614909fbd57ece81d00b01958338ec2
  • cafe8f704095b1f5e0a885f75b1b41a7395a1c62fd893ef44348f9702b3a0deb
  • kennethosborne@protonmail.com
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值