欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

披着羊皮的狼:如何利用Windows图标显示漏洞伪装PE文件

来源:本站整理 作者:佚名 时间:2017-08-09 TAG: 我要投稿

一、前言
Windows系统图标显示功能中存在一个漏洞,利用这个漏洞,攻击者可以从本地主机中自动地 “借用“ 其他常用的图标,利用这些图标伪装PE文件,从而诱惑用户点击这类文件。这个漏洞的真正原因隐藏在Windows的图像处理代码中。该漏洞至少从Windows 7起就已经存在,并且最新版的Windows 10系统仍然受该漏洞影响。
我们在研究最近的一批恶意PE文件时发现了这个漏洞。当我们把文件从某个目录复制到另一个目录时,我们发现系统会出现一些比较奇怪的行为:某些文件的图标会发生改变。为了排除某些错误(比如操作人员过于疲惫导致操作失误)的可能性,我们将这些文件复制到另一个不同的目录,然后再次发现这些文件的图标会变成另一个常见的但又与当前文件完全无关的图标。这种现象成功吸引了我们的注意,促使我们深入调查,最终形成了这份报告。
二、漏洞分析
这批恶意软件最早可以追溯到2017年4月份,其中包含几十个Cerber勒索软件样本,这些样本全都存在这种现象。
我们从这些样本中提取了图标,图标在Windows资源管理器中的呈现效果如下图所示:

乍看起来,人们可能会认为这些图标只是被恶意软件选中使用的无害图标而已(虽然左上角的Cybereason图标看起来的确有点奇怪),然而,将这些图标转化为另一种内部图像格式后,我们就能发现这些图标的庐山真面目:

正如我们看到的那样,这些文件看起来几乎完全一致,除了微乎其微的某些随机像素点的区别,这表明这些文件是自动生成的,以避免存在明显的基于图标的特征,虽然原始的图标看起来是有点奇怪。毋庸置疑,这些图像肯定是基于Adobe图标修改而得,是合法的黑白图标。
原始的Adobe图标如下:

然而,虽然许多恶意程序会使用窃取的资源来隐藏自己,以逃避安全程序和肉眼的检测过程,但本文涉及的这些案例并不属于这种情况,它们在屏幕上呈现的效果与它们的内在完全不同。除了模仿Adobe图标之外,这些图标都有一个共同点,就是它们都属于我们所说的“真正单色图标(true monochrome icon)”,或者可以简称为TMI图标。
“TMI图标” 指的是包含两种特定元素的图标:它们只有两种颜色(也就是说,它们每个像素的位数(bits-per-pixel,bpp)为1),并且这两种颜色为纯黑色(0x000000)以及纯白(0xFFFFFF)色。需要注意的是,图标可能会使用其他颜色来进行单色渲染(比如黑白色),而不单单是纯单色(即bpp值高于1)。然而,本文讨论的这种现象只存在于真正单色图标上。
关于图标文件格式的详细文档,读者可以参考如下链接了解更多细节。
https://msdn.microsoft.com/en-us/library/ms997538.aspx 
https://msdn.microsoft.com/en-us/library/windows/desktop/dd183376%28v=vs.85%29.aspx
我们从某个Cerber样本中提取了这类文件,如下所示:

经实验验证,我们发现这种图标切换异常现象对任何TMI图标而言都适用,无需特殊处理即可实现。为了证明这一点,我们使用一个十六进制编辑器创建了一个空的TMI图标(喜欢动手的读者可以亲自尝试做一个):

随后,我们将该图标作为一个“hello world”应用的唯一图标。在Windows资源管理器中,系统不会将其显示为单像素单色图标,而会显示成如下效果:

在该目录下对文件进行重命名,图标发生了变化,如下图所示。


所以,这到底是怎么回事?
看起来该问题起源于系统对已渲染图标的缓存方式以及对TMI图标的特殊处理方式,使得它们无法覆盖已有的图标。
Windows资源管理器以及基于资源管理器的其他应用都是通过使用comctl32.dll模块(用户体验控制库)中的CImageList类来实现图标的缓存。CImageList类的官方说明文档如下:
https://msdn.microsoft.com/en-us/library/9xc4z2c7.aspx
系统将文件的路径映射为某个CImageList对象内部的一个索引来实现图标的缓存(这里包含多个图标缓存,不同大小的图标会对应不同的缓存)。因此,当用户查看某个文件时,若对应的图标之前已完成渲染,那么系统就会直接从缓存中获取图标。如果系统进程之前尚未处理过该路径,那么系统就会根据具体的文件类型进行渲染,并将其存到缓存中。这也就是为什么当我们查看包含多个图标文件或者具有图标的PE文件的某个目录时,系统会稍加延迟,逐渐显示文件的原因所在。当文件被复制或被重命名时,文件的图标会被再次渲染,因为此时系统会认为这些路径属于新的路径。

[1] [2] [3]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载