导语:黑客在可靠且受信任的服务器(Google)上托管包含恶意脚本的图片,以便始终可以从任何受感染的站点下载它们。

在我们之前的博客中写过一篇文章描述了使用EXIF数据隐藏其代码的恶意软件(malware that used EXIF data to hide its code)。此技术仍然有人在使用,让我们来看看最近的一个例子。

被污染的Pac-Man

此代码是在窃取PayPal安全令牌的恶意脚本的开头找到的。

在GoogleUserContent上的图片中隐藏恶意软件

从EXIF数据执行代码

如您所见,它从Google服务器上托管的pacman.jpg图片中读取“EXIF数据”,图片可能是使用Blogger或Google+帐户上传的。然后解码并执行该数据的“UserComment”部分。

虽然质量非常差,但代码中引用的图片证明是真正的Pac-Man图片。

在GoogleUserContent上的图片中隐藏恶意软件

pacman.jpg

其EXIF数据的UserComment段包含此base64编码的字符串:

在GoogleUserContent上的图片中隐藏恶意软件

pacman.jpg中编码的UserComment数据

经过几轮解码后,它是一个具有如下功能的脚本:上传预定义的Web shell和任意文件,放置损坏页面,然后将成功利用的站点的地址通过电子邮件发送回攻击者。

在GoogleUserContent上的图片中隐藏恶意软件

解码后的EXIF数据的开头

Google: 托管恶意软件的免费替代方案

在以前的案例中,黑客在图片中使用EXIF数据来隐藏恶意代码,这样很少能被检测出来。在本案例中,我们看到主要目标是在可靠且受信任的服务器上托管恶意脚本,以便始终可以从任何受感染的站点下载它们。

我们之前见过这种方法,恶意软件存储在PastebinGitHub上。但是,报告文本文件中的恶意软件很容易。

但是,图片文件可以更好的保密。首先,它们是真实的图片。除非检查其元数据并知道如何在每种特定情况下对其进行解码,否则就完全不了解其恶意载荷。此外,将googleusercontent.com上的恶意软件报告给Google非常困难。

谷歌有很多工具可以删除内容,但是如何报告图像中的恶意软件并不明显。他们的大多数工具都需要提供指向包含侵权内容的原始帖子,页面或评论的链接。

此处的图片不是某些已知公开内容的一部分。我们甚至不知道哪个用户创建了它。它可能是为Blogger帖子,Google+信息或Google照片中的公开图片。这甚至不是允许将图像上传到googleusercontent.com服务器的完整Google服务列表!很难说清楚图片的来源,因为它们的URL是匿名的并且具有相同的格式。

因此,上传到Google服务器的图片中的恶意软件难以报告和删除。不幸的是,他们可能比Pastebin和其他类似服务上的文本恶意软件存活得更久。

总结

如果没有一定程度的自动化,就不可能发生大规模网站感染。一些黑客构建了一个完整的基础架构来支持他们的攻击。另外一些人发现了滥用公共服务的创造性方法。无论攻击者使用哪种方法,只有在网站出现安全漏洞时才能利用成功。

作为网站管理员,不必知道黑客使用的所有技巧,只需最小化攻击面:

· 保持最新状态

· 使用强密码

· 使用Website Application Firewall

· 从可靠来源安装软件

· 监控服务器上文件的完整性

如果未自行添加或更改的话,所有新文件或已更改的文件均视为可疑文件。

对于被黑网站,重要的是彻底清除整个感染,而不仅仅是可见部分。清理最棘手的问题是找到并删除黑客通常隐藏在受感染网站上的后门程序。正如这篇文章所示,即使是“良性”图片也可能包含后门。