黑客使用Polyglot图像隐藏恶意广告活动

栏目: 编程工具 · 发布时间: 5年前

内容简介:DEVON安全研究人员追踪到恶意广告攻击活动越来越使用复杂的攻击方式来隐藏payload。DEVCON安全研究人员发现至少一个攻击组织通过polyglot漏洞利用来分发恶意广告payload。Polyglot图像和Steganographic图像(隐写)的定义很容易混淆,但这两个攻击之间有明显的区别。隐写漏洞利用使用的是隐藏在图像中的修改像素值。通过修改像素值,人眼无法检测到图像质量的明显变化。但是漏洞利用也需要一些额外的脚本来了解模式和offset来找出漏洞利用的像素,然后将这些聚合在可执行JS文件中。P

DEVON安全研究人员追踪到恶意广告攻击活动越来越使用复杂的攻击方式来隐藏payload。DEVCON安全研究人员发现至少一个攻击组织通过polyglot漏洞利用来分发恶意广告payload。Polyglot图像和Steganographic图像(隐写)的定义很容易混淆,但这两个攻击之间有明显的区别。

隐写漏洞利用使用的是隐藏在图像中的修改像素值。通过修改像素值,人眼无法检测到图像质量的明显变化。但是漏洞利用也需要一些额外的脚本来了解模式和offset来找出漏洞利用的像素,然后将这些聚合在可执行JS文件中。

Polyglot漏洞利用的特点是文件可以同时在图像和JS文件中。不需要外部脚本就可以提取payload。但是文件怎么样同时是图像文件又是JS文件呢?原理就在于计算机识别这两个文件类型的方式。

下面是计算机读取正常BMP文件的情况。需要知道的是攻击者如何将它转换成polyglot,并利用浏览器。

黑客使用Polyglot图像隐藏恶意广告活动 正常BMP图像头部

前两个字节(红色框)是BMP图像的BM的十六进制表示。接下来的4个字节(8A C0 A8 00)表示图像文件的大小。然后是4个null字节(00 00 00 00),数据偏移量是(8A 00 00 00)。这些字节就给出了计算机正确执行文件需要的主要信息。

下面是Polyglot BMP图像文件的header:

黑客使用Polyglot图像隐藏恶意广告活动

看起来很像。也是以BM开始的,大小和数据偏移offset也有。攻击者就是利用修改和控制图像的大小和十六进制字符来使计算机将该文件识别为其他文件的。攻击者修改了图像的大小字段就变成了/**(字符代码)。这些字符加起来就是一个JS的注释。JS备注是用来使JS翻译器忽略这些字符串,比如忽略/*到*/之间的字符串。

下面看一下文件的尾部。

黑客使用Polyglot图像隐藏恶意广告活动

JS注释是以*/结尾的,攻击者然后加入了字符串=和`。攻击者就将文件类型BM转成JS变量,并设置为另一个高度混淆的payload。下面解释了JS翻译器的原理:

该文件在浏览器中有两种方式运行:

·黑客使用Polyglot图像隐藏恶意广告活动 会显示给用户一个图片,而会忽略JS脚本。

·  会执行有效的JS,而忽略图像数据。

研究人员已经检测到隐藏在恶意广告payload中的漏洞利用。攻击者有一些有创意的图片:

黑客使用Polyglot图像隐藏恶意广告活动

研究人员发现攻击以正常BMP文件的方式加载,而在浏览器中是以JS的方式加载BM变量到内存中,如下图所示:

黑客使用Polyglot图像隐藏恶意广告活动

图像文件的后面部分含有一个解码脚本,该脚本实际上是一个高度混淆的JS。攻击是分层的,而且使用了一些技术来隐藏恶意活动,并且阻碍逆向工程师找出其真正的工作原理。

黑客使用Polyglot图像隐藏恶意广告活动

上面的脚本都是用下面的这个简单那叫吧来解码的。这会解码会隐藏在BM变量中的数据:

下面是解码的BM数据。最后解码的脚本并不像我们常见的恶意广告活动中的漏洞利用。它在浏览器中引入了一个cloudfront的url,会将受害者重定向到其他加载SPIN THE WHELL类游戏的页面。

黑客使用Polyglot图像隐藏恶意广告活动

最后重定向的结果:

黑客使用Polyglot图像隐藏恶意广告活动

但是这种新的攻击方法其实并不新颖。安全研究人员和渗透测试人员也常使用这种技术来执行 shell 代码和发起服务器攻击。JS/GIF polyglots是一种围绕服务器安全策略而执行XSS攻击的方法。类似的攻击方法已经出现不止一次了。研究人员详细更多的高级攻击组织将会进入恶意广告欺诈攻击活动中。

参考文献:

https://warroom.rsmus.com/bmp-x86-polyglot/

https://en.wikipedia.org/wiki/Gifar

http://stegosploit.info/

https://www.robertxiao.ca/hacking/defcon2018-assembly-polyglot/

https://hackaday.com/2015/11/06/stegosploit-owned-by-a-jpg/

https://ajinabraham.com/blog/bypassing-content-security-policy-with-a-jsgif-polyglot

https://portswigger.net/blog/bypassing-csp-using-polyglot-jpegs

https://www.alchemistowl.org/pocorgtfo/pocorgtfo08.pdf


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Linux程序设计

Linux程序设计

Neil Matthew、Richard Stones / 陈健、宋健建 / 人民邮电出版社 / 201005 / 99.00元

时至今日,Linux系统已经从一个个人作品发展为可以用于各种关键任务的成熟、高效和稳定的操作系统,因为具备跨平台、开源、支持众多应用软件和网络协议等优点,它得到了各大主流软硬件厂商的支持,也成为广大程序设计人员理想的开发平台。 本书是Linux程序设计领域的经典名著,以简单易懂、内容全面和示例丰富而受到广泛好评。中文版前两版出版后,在国内的Linux爱好者和程序员中也引起了强烈反响,这一热潮......一起来看看 《Linux程序设计》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

MD5 加密
MD5 加密

MD5 加密工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具