freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

SVG Smuggling:利用图片投递的恶意载荷
2023-09-20 10:54:51

0x00 背景

鉴于邮件具备应用广泛和携带附件等多种优势,恶意分子利用钓鱼邮件进行恶意载荷传播已成为qakbot等勒索病毒的主要方式。然而,随着邮件防御能力的提升,恶意载荷传播方式也在不断演变。本文将详细讨论一种利用SVG图片进行恶意载荷传递的新型攻击技术。

0x01 SVG介绍

SVG(Scalable Vector Graphics)是一种在网页中较为常见的图像文件类型,和普通的图像文件不同,SVG使用XML进行编写,通过数学方程和几何元素来定义图像,文件大小相对较小,并且可以在不失真的情况下任意缩放,这是一个简单的SVG示例:

//显示一个红色的正方形
<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100">
  <rect x="0" y="0" width="100" height="100" fill="red" />
</svg>

此外,SVG图像可以与其他Web技术(如HTML、CSS和JavaScript)无缝集成,为创建交互式和响应式的图形提供了便利。利用这一特性,攻击者可以通过SVG文件构造复杂的显示效果、并且植入JavaScript代码,下面的SVG文件示例显示一张图片并且在打开文件时进行弹框。

<svg height="100%" version="1.1" viewBox="0 0 1700 863" width="100%" xml:space="preserve"   xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <image height="863" id="Image" width="1700" xlink:href="data:image/png;base64,aaaaaaaaaa..."/>
    <script type="text/javascript">
      <![CDATA[
        alert('hello world');      
      ]]>
    </script>
</svg>

0x02 SVG Smuggling

在探讨SVG Smuggling前有必要了解HTML Smuggling技术,HTML Smuggling是一种被广泛使用的恶意载荷投递技术,攻击者通常通过HTML附件进行载荷投递,当受害者浏览该HTML附件时,浏览器会自动执行附件中的脚本,并释放嵌入在HTML附件中的恶意文件。这种技术为攻击者提供了一种隐藏和传播恶意代码的方法。

恶意文件通常会被编码嵌入HTML文件中,这种技术可以欺骗大多数病毒检测设备的静态扫描。此外,由于受害者的浏览器位于防火墙之后,动态生成的恶意文件并不会产生新的访问流量,因此可以有效地绕过防火墙、全流量设备和沙箱等对恶意文档的检测。

Qakbot等勒索病毒非常擅长利用HTML Smuggling技术进行恶意载荷投递。为了避免恶意载荷被沙箱捕获,攻击者在HTML附件中添加了鼠标移动的事件监听,并且在受害者打开HTML附件时不直接释放恶意文件,而是通过SVG来进行第二阶段的隐藏和传递。这种技术使恶意活动更加隐蔽,加大了检测和阻止的难度

图:显示诱导内容的恶意html文件

图:恶意html嵌入脚本代码

SVG Smuggling和HTML Smuggling的原理类似。如下图所示,通过在SVG代码中插入恶意JavaScript代码来触发文件释放,从而实现将编码在文件中的恶意文件在用户打开时自动释放。

当受害者打开带有恶意SVG文件的浏览器时,其中嵌入的恶意JavaScript代码会被执行。该代码会解码隐藏在SVG文件中的恶意文件,并触发相应的操作,使得攻击者能够在用户不知情的情况下传递恶意载荷,由于SVG格式的特殊性,SVG Smuggling可以绕过一些针对HTML附件的安全检测机制。

图:嵌入恶意代码的SVG文件

0x03 攻击思考

SVG文件可以通过双击打开,并且默认被认为是无害的文件格式。然而,由于SVG本身支持使用HTML语法构造特殊的诱导显示内容,因此存在将其作为独立恶意载荷投递利用的可能性。

如下图所示,攻击者可以将SVG文件构造成看似“邀请函”的形式。当受害者打开该SVG文件时,会自动释放一个恶意的ZIP文件。配合特定的邮件话术和社会工程学技巧,攻击者可以诱导受害者打开这个恶意的ZIP文件。然而,直接使用SVG Smuggling存在一些限制。释放的ZIP文件名会被自动命名为随机的UUID,并且尝试释放其他文件类型时会自动丢失文件后缀。这也是为什么Qakbot勒索病毒在SVG Smuggling之前使用HTML Smuggling技术的一个原因。

图:打开SVG文件后伪装成邀请函

0x04 检测防御

由于该类型的载荷投递技术利用了看似无害的SVG图像文件,并且恶意载荷编码在文件中,无需经过网络请求直接在打开后释放,传统的安全防护设备难以形成有效检测。因此,为了有效检测和防御类似的恶意载荷投递技术,需要采取更为全面的安全措施。包括:行为分析与异常检测、安全日志和事件管理、安全培训和意识等。

# 钓鱼邮件 # 勒索病毒
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录