攻防速写|一条微信消息,实现客户端持久化攻击

admin 2025年5月19日12:09:49评论2 views字数 3453阅读11分30秒阅读模式
攻防速写|一条微信消息,实现客户端持久化攻击
从白宫幕僚到战地记者,即时通讯软件(IM)是无数关键人群不可或缺的沟通工具。无论是WhatsApp、Telegram,还是微信、QQ,它们已经成为现代社会的“数字血管”,承载着数十亿用户的社交、支付与办公等核心业务,其安全性直接关联个人隐私、金融资产,乃至国家安全。
事实上,关于IM的安全研究早已展开。2019年Project Zero披露了iMessage中的CVE-2019-8641漏洞[1],该漏洞是一个内存破坏问题。iMessage会自动解析消息中的富媒体内容,攻击者仅需发送恶意构造的文件,即可在无需用户交互的情况下实现远程代码执行,完全控制目标iPhone设备。

DARKNAVY将在本文中以微信为例,从URL解析、文件处理、网页访问等典型场景出发,系统梳理即时通讯客户端的关键攻击面,剖析攻防背后的博弈。

DARKNAVY发现的微信安卓客户端持久化攻击案例

IM攻击面概览

从体系架构出发,即时通讯软件的攻击面可划分为三个主要维度,分别是客户端层面通信协议层面以及云端服务层面。本文将重点分析客户端的攻击面,探讨其中可能导致远程代码执行或敏感信息泄露的安全问题。

1

URL链接

多数IM客户端支持自定义协议(如 weixin://tg://)以实现应用内跳转,然而,攻击者可借助构造伪装为合法链接的恶意请求,利用客户端对URL校验不严的漏洞诱导用户访问钓鱼站点。更具隐蔽性的是对一些特殊功能URL的滥用。例如,slack://settings可以实现更改设置的功能,攻击者通过构造特定参数的链接并诱导用户点击,可以实现数据窃取[2]

攻防速写|一条微信消息,实现客户端持久化攻击
使用weixin://协议打开微信

2

文件解析

为提升用户体验,IM客户端通常集成自有文件解析逻辑以实现格式预览与内容提取。攻击者可通过构造特制的恶意文件,利用解析功能的漏洞实现远程代码执行。例如,CVE-2019-11932[3]和CVE-2025-30401[4]分别是WhatsApp Android客户端和Windows客户端中的严重漏洞,前者通过恶意GIF文件触发攻击,后者则通过伪装成图像的可执行文件诱导用户执行。

3

内置浏览器组件

多数IM客户端内置浏览器以支持网页访问,通常采用基于Chrome的自定义内核。其攻击面主要集中在两类技术路径上:

  • 一是JSBridge,若客户端未对暴露给网页接口进行精细化权限控制,则可能被恶意网页调用实现权限滥用;

  • 二是浏览器内核漏洞,例如,DARKNAVY团队于2023年发布的预警[5]中指出,源于Chromium内核中libwebp组件的漏洞CVE-2023-41064 & 4863,影响包括微信、钉钉、QQ在内的多个主流IM软件。

攻防速写|一条微信消息,实现客户端持久化攻击
CVE-2023-41064 & 4863漏洞影响Windows平台微信客户端

4

小程序生态

为拓展服务边界,微信、钉钉等IM客户端纷纷开放小程序平台,赋予第三方开发者丰富的系统权限,如文件系统访问、传感器调用、API接口使用等。然而,若客户端在权限管理或功能实现上存在疏漏,攻击者可借助恶意小程序实施攻击。

微信攻击面分析

DARKNAVY团队对微信客户端的攻击面进行了初步调研,下面将从多个维度介绍微信客户端面临的主要安全风险及其应对机制。

1

微信URL链接

微信客户端内置了调试链接机制,当用户访问的URL中包含 debugxweb.qq.com 时,会根据URL中的参数触发不同调试行为。例如,传入参数 show_webview_version 可在页面上展示当前WebView内核的版本信息及相关配置。

攻防速写|一条微信消息,实现客户端持久化攻击

show_webview_version展示的版本信息

尽管该机制为调试带来便利,但若攻击者构造恶意URL并诱导用户访问,可能在无用户感知的情况下触发高风险操作,如版本回退或配置变更。为降低风险,微信客户端限制了 install_embed_plugin 等敏感操作仅可在开启 bEnableLocalDebug 选项后执行。同时,对于如 set_config_url 等可修改获取配置URL的功能,微信也加入了严格的域名与协议校验,仅允许使用 HTTPS 且域名限定为 dldir1.qq.com 或 dldir1v6.qq.com,有效规避了配置被篡改的风险。

攻防速写|一条微信消息,实现客户端持久化攻击
set_config_url等功能的URL校验

此外,微信支持 weixin:// 协议实现内部跳转,例如 weixin://dl/ 用于页面导航。对于带 ticket 参数的链接,微信客户端会通过 /cgi-bin/mmbiz-bin/translatelink 接口向云端请求真实跳转地址,从而避免攻击者伪造链接诱导用户访问任意页面,有效增强了链接跳转的安全性。

2

微信内置浏览器组件(XWEB)

安卓微信使用自研的 XWEB 内核,基于 Chromium 开发。截止本文编辑时,内核开发版的Chromium版本是134.0.6998.136,而现网版本是130.0.6723.103,而Chrome官方浏览器的版本是136.0.7103.93。XWEB保持了相对领先的内核版本,不过仍存在一定的滞后性,有可能受未修复的公开漏洞影响。

为提升浏览器安全性,微信默认启用了多进程沙箱机制。主进程运行在 xweb_privileged_process_0,而渲染进程则隔离于 xweb_sandboxed_process_0,有效缓解了对渲染进程漏洞的攻击利用。

攻防速写|一条微信消息,实现客户端持久化攻击
安卓微信客户端的进程隔离

微信还提供了丰富的 JSBridge 接口供网页调用原生功能,例如 sendEmail 可唤起客户端发邮件、scanQRCode 可调用摄像头扫描二维码。

攻防速写|一条微信消息,实现客户端持久化攻击
使用sendEmail进入发邮件界面

为防止滥用,微信客户端在加载网页时会根据URL向云端请求权限列表,以精细化控制每个JSBridge接口是否可用。在某些特定官方测试页面上,大多数接口默认开放,而在其他页面中,仅开放少数接口。此种基于页面来源的权限划分策略,有效限制了潜在恶意网页的破坏能力。

3

微信小程序安全机制

微信小程序采用JavaScript开发,架构上分为渲染层与逻辑层,分别在独立线程中运行,相互隔离。其中渲染层负责界面展示,而逻辑层处理业务逻辑。开发者编写的逻辑层的JavaScript脚本不能使用浏览器暴露出来的 DOM API,而渲染层的JavaScript脚本也无法使用开发者的高权限功能。微信客户端给渲染层和逻辑层暴露的JSAPI功能也有所不同,例如渲染层可以调用insertVideoPlayerinsertTextArea等功能,而逻辑层可以调用saveFileaddDownloadTask等功能。这样的隔离防止了攻击者通过小程序的XSS等漏洞在渲染层执行高权限操作。

攻防速写|一条微信消息,实现客户端持久化攻击
addToPagePool添加渲染层的JSAPI
攻防速写|一条微信消息,实现客户端持久化攻击
渲染层可以使用的一些JSAPI

结语

微信作为国内最具代表性的IM软件,在安全机制上体现出多层防护与权限细化管理的设计思路,如JSBridge精细授权、浏览器沙箱隔离、小程序双线程架构等,体现出其对安全风险的高度重视。

作为长期关注即时通讯软件安全的研究团队,DARKNAVY始希望通过持续的漏洞研究、攻防分析与技术分享,推动IM生态在保障用户体验的同时,更加稳健、安全、可信地向前发展。

预告

本研究内容已入选专注纯粹技术交流的全新网络安全闭门沙龙 deepsec.cc (Deep Security Closed-door Conference),将于6月16日在现场深入探讨。
攻防速写|一条微信消息,实现客户端持久化攻击
参  考:
[1] https://googleprojectzero.blogspot.com/2020/01/remote-iphone-exploitation-part-3.html
[2] https://medium.com/tenable-techblog/stealing-downloads-from-slack-users-be6829a55f63
[3] https://awakened1712.github.io/hacking/hacking-whatsapp-gif-rce/
[4] https://www.facebook.com/security/advisories/cve-2025-30401
[5] https://mp.weixin.qq.com/s/zqxkYk7vRvDPKxgoVj1PRw

原文始发于微信公众号(DARKNAVY):攻防速写|一条微信消息,实现客户端持久化攻击

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年5月19日12:09:49
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   攻防速写|一条微信消息,实现客户端持久化攻击https://cn-sec.com/archives/4078506.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息