ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

云盘挂载木马实战分析:微信传播链与终端防御策略

云盘挂载木马实战分析:微信传播链与终端防御策略

上礼拜碰到一件让我后背发凉的事。业务群有个同事发来一个压缩包,文件名是“项目预算明细”,我差点就双击了。还好当时手边在做别的,顺手看了一眼详情,才发现这个压缩包比以前见过的多了一层奇怪的挂载指向。用安全工具解包后发现,里面是一个伪装成PDF的加载器,一旦运行就会自动连接云盘地址,把后续的恶意组件拉下来。后来跟做安全的同行一交流,发现这几天类似样本已经在多个微信群里频繁出现,主打的正是“云盘挂载”这个新玩法。这篇文章就把我分析这个变种的过程和防御要点完整写出来,给还不太了解这类攻击的朋友作个参考。

1. 先看清对手:社交软件里的“文件+链接”组合拳

1.1 为什么微信成了木马传播的第一现场

微信这类即时通讯工具已经成了工作沟通的主要通道,这给攻击者提供了一个绝佳的“信任放大器”。人们通常会相信来自同事、领导、客户的信息,而且即时通讯工具往往会对图片、压缩包自动下载或打开,尤其在PC端默认会下载文件到本地目录,这就让木马有了可趁之机。我们平时收到的文件,大多是从好友对话框拖过来的,来源是“人”,不是“网站”,心理防线自然降低。攻击者只要盗取一个普通的员工账号,就能在群聊里散播恶意文件,这种操作成本极低,成功率却很高。

除了信任链,微信对链接的展示也有意做了简化。很多链接在聊天窗口里只能看到一部分,有些甚至被缩略成一行小字,不把鼠标悬停上去根本看不到真实域名。攻击者就是利用这一点,把云盘分享链接包装成“共享资料”“下载工具”“安装包”等文字,再配上一个看似正常的文件名,受害者点进去之后并不会立刻看到可执行文件,而是先看到一个云盘挂载提示,一路“下一步”就落入圈套。

还有一个容易被忽视的细节:手机端微信收到文件后,如果点击的是“用其他应用打开”,操作系统会调用默认的文档处理程序,这时恶意文件往往只是被“预览”了一下,并不会真正执行。但同样的文件如果发送到电脑版微信,接收后点击的路径就完全不同了,直接触发系统默认程序或脚本解释器。攻击者投递的恶意链接往往优先针对PC端,因为PC端的文件执行环境更宽松,监控也不像手机端那么严格。

1.2 云盘挂载到底是什么?为什么攻击者偏偏选它

云盘挂载,通俗地说,就是把网盘空间映射成电脑本地的一个盘符或文件夹,让用户就像操作本地文件一样操作云端内容。常见的实现方式包括安装网盘客户端后开启“同步空间”,或者通过WebDAV协议把远程目录映射到本地。现在很多网盘还提供了共享链接和邀请协作功能,可以把某个目录作为“共享盘”挂载到对方机器上。

攻击者选择这种方式,是看中了几个在传统附件时代没有的优点:

  • 恶意文件体积可以做得很大而不影响传播,因为受害者看到的只是一个小型加载器或一个快捷方式,真正的恶意代码放在云端;
  • 云盘链接天然具备“白名单”属性,很多企业的防火墙会放行常用网盘域名,流量看起来就像正常办公;
  • 云盘文件可以随时更新换代,攻击者今天放上去一个载荷,明天就能换成新的版本,而受害者本地的入口文件几乎不变,这种“远端控制”让安全人员分析样本时经常只分析到一层空壳,很难直接拿到核心恶意代码。

打个不恰当的比方,传统木马像是一个推着行李箱进大楼的人,行李箱里装满了违禁品,安检一眼就能看出问题。云盘挂载变种则像是一个只拿着一张工卡的人,真正违禁的工具都藏在远处的储物柜里,等他进了大楼再随时取用。你以为放行了只是张卡,其实放行了一整套可远程操作的工具链。

提示:并不是所有云盘挂载链接都是恶意的,日常工作中用网盘分享文件也再正常不过。我们需要警惕的是那些以“必须使用指定客户端”“挂载后运行”为理由的文件包。

2. 云盘挂载变种的技术原理:为什么比传统附件更危险

2.1 传统附件与挂载变种的区别

传统木马附件就是一个自解压压缩包,里面是exe、scr或者带宏的文档。用户一旦双击,恶意代码就落地执行,过程是“一次性的”。而云盘挂载变种把整个攻击过程拆成了三个阶段:诱导阶段、挂载阶段、载荷阶段。

诱导文件通常很小,可能只有一个几十KB的快捷方式文件或脚本,它的作用不是释放最终木马,而是把远端的云盘目录“挂”到本地,然后从那个盘符里拉起真正的恶意程序。这样做的好处是,杀毒软件在文件落地扫描时,只会看到一个干净的文本脚本或一个普通的快捷方式,根本不会触发云查引擎里的恶意特征;到了运行阶段,恶意程序又是从网盘目录里执行的,本地没有实体文件可供查杀。

这就导致了一个很现实的问题:很多企业的终端安全产品对“网络映射驱动器”的扫描能力是缺失的。传统杀毒软件在文件读写时按路径进行监控,而网络路径(UNC路径或映射盘符)往往被当作网络资源放行。攻击者恰恰利用了这个监控盲区。

2.2 挂载环节常用的小工具与脚本逻辑

攻击者为了让受害者顺利挂载,往往会在脚本里预先写好云盘地址和挂载命令。例如,使用系统自带的net use命令挂载WebDAV共享,或者调用网盘客户端的命令行接口创建同步目录。很多变种还会把挂载动作伪装成“初始化程序”,界面是一个普通的进度条,其实背后在反复重试连接远端。一旦挂载成功,脚本会直接访问盘符下固定的路径,把这个程序启动起来。

从分析样本看,这类加载器通常还用了一些免杀技巧。有的会把加载器做成一个图标看起来像PDF的快捷方式,目标指向cmd.exe /c加一串命令;有的会使用系统自带的msiexec.exe、rundll32.exe作为启动载体,用“白加黑”的方式躲避监控。要理解这种手法的杀伤力,可以类比:门卫看到一个穿工牌的陌生人跟在员工后面刷门禁,往往会默认这是一起的,不会多问。安全软件看到rundll32调用一个来自云盘目录的dll,也会觉得不过是加载了模块,难以立刻判定异常。

具体到脚本代码,很多就是几行简单的命令。我见过一个样本,核心逻辑几乎可以缩成四句话:把某个公网共享地址映射为本地盘符,关闭挂载的持久化属性,复制远端加载器到临时目录,然后运行它。看起来平平无奇,但第一句话就是关键。如果用户本地没有可疑文件,但网络连接记录里出现过对云盘域名的映射请求,那就非常值得深挖。

2.3 挂载链路中的关键行为点

我们可以在操作系统层面观察到几个关键行为点:

  • 新增本地磁盘或映射盘符,这在“我的电脑”里会很明显,但普通用户一般不会注意;
  • 计划任务或启动项里会出现指向云盘路径的内容;
  • net use相关的连接记录;
  • 进程树中出现父进程为explorer.exe但命令行带云盘地址的异常组合。

对于安全人员来说,这些就是猎捕的重点。这里补充一点经验:挂载类木马有一个比较明显的破绽,那就是它依赖网络连通性。如果机器处于断网状态,挂载失败,木马就无法继续执行。我们可以利用这个特性,在隔离环境里观察样本,或者在被感染的机器上先断网再排查,防止恶意行为继续扩散。

3. 样本行为拆解:从伪装到执行的完整链条

3.1 第一层:伪造文件名与图标

通过我拿到的样本看,攻击者在文件名上花了不少心思。比如,他们会用“2025年二季度绩效考核表.url”这样以.url为扩展名的文件。这个文件本身是一个文本格式的URL快捷方式,双击后会用默认浏览器打开指向的地址。但攻击者会把它指向一个云盘挂载协议地址,而不是普通网页。用户看到的图标却是Excel或PDF的样式,加上文件名末尾的“表”“册”等字眼,很容易让人失去警惕。

有的变种还会采用双扩展名,比如“产品报价表.pdf.exe”,在Windows资源管理器默认隐藏已知扩展名的设置下,用户只能看到“产品报价表.pdf”。这种老套路至今依然有效,因为大部分员工根本没改过资源管理器的“隐藏已知文件类型的扩展名”选项。我建议读者现在就去改一下,这个习惯能帮你挡掉相当一部分恶意文件。

3.2 第二层:通过系统进程加载远端载荷

当用户双击恶意快捷方式或脚本后,载荷被拉起的过程通常分两种路径。

路径一是命令解释器执行一条net use命令挂载WebDAV共享,然后用wmic process call create创建远程进程。路径二是使用脚本引擎加载一段内嵌代码,代码里会拼接云盘地址和本地盘符,再调用copy命令复制远端文件并执行。不管哪条路径,最终都会有两个特点:第一,进程树中出现cmd.exe、powershell.exe或mshta.exe;第二,命令行里能看到类似\\xxx\share\xxx.exe的UNC路径,或者盘符加文件名的形式。

这里有一个容易被忽略的细节:如果木马把恶意dll放在云盘挂载的盘符里,而不是本地磁盘,那么很多杀毒软件的文件监控组件并不会实时扫描网络映射驱动器上的文件。这导致一个结果——安全工具报警时往往只看到网络连接异常,但受害者本地根本没有恶意样本,让排查人员一头雾水。后来我们才意识到,样本在“云里”。

3.3 第三层:持久化与信息收集

一旦loader运行起来,它通常会在后台解密出一个核心dll,然后通过反射加载的方式注入到系统进程或常用办公软件进程中。随后,它会做三件事:

第一,在注册表的启动项和计划任务中写入指向云盘路径或本地缓存文件的位置,确保重启之后还能再拉起;第二,遍历当前登录用户的文件夹,搜索与文档、账务、通讯录相关的文件,把数据打包成压缩包放在临时目录;第三,回连远端服务器,把数据传出去。整个过程在正常办公软件打开的背景下进行,资源占用很低,用户几乎感知不到。

更麻烦的是,有些变种会读取微信和网盘客户端的本地数据库,把里面的聊天记录里出现的敏感词作为过滤条件,只偷取与“密码”“账号”“合同”“发票”有关的文件。这种定向盗取行为说明攻击者背后有明显的利益导向,不像普通泛化木马那样什么都拿。

3.4 变种之间的变异方向

据我观察,这类变种迭代速度很快。早期版本只会挂载一个固定的云盘目录;后来开始把挂载地址拆分成多段,分别放在不同的位置,有的甚至用“压缩包加块”的方式分文件传输,让流量特征变得不规律。还有一些变种会先检测云盘目录里是否存在某个特定标记文件,如果不存在就说明分析人员可能正在诱捕,立刻停止执行。

再有就是对系统语言的判断:只在简体中文环境中运行,避免暴露给其他环境的研究人员。这些细节变化说明攻击者是有组织地在运营这个家族,并不是几个脚本小子的小打小闹。对于防御方来说,这意味着单一的特征码查杀已经很难奏效,必须转向行为侧的监测和阻断。

4. 防御实操:终端、网络和习惯三层防线

4.1 个人用户:守住最后一道门

对个人用户来说,最重要的不是安装多贵的杀毒软件,而是改变双击文件的习惯。收到任何“紧急查看”“点击领取”的压缩包或链接,先问一句“真的是当事人发的吗?”尤其是在聊天软件里,即使头像和昵称都是熟人,也可能是被盗号后的冒名消息。真正紧急的财务资料,没有人会通过共享网盘让同事自己挂载后运行程序。

具体操作上,建议做三件事:

第一,在Windows资源管理器中取消“隐藏已知文件类型的扩展名”,让.exe、.scr、.url这些扩展名直接暴露出来。第二,在微信PC端的设置里,把“自动下载文件”关掉,改为每次手动选择保存位置,这样至少给安全软件一个扫描的机会。第三,不要在同一个设备上保存网盘、邮箱和聊天工具的密码,很多木马都在等待用户做“一键登录”时顺手偷走凭证。

4.2 企业IT管理员:从端到云做好管控

对于企业来说,社交软件带来的威胁必须当作一类正式的安全风险来治理,而不是单靠员工自觉。IT管理员可以考虑在终端设备上做几层基础配置:

  • 通过组策略限制cmd.exe、powershell.exe的远程执行,尤其是禁止脚本从非本地目录启动;
  • 对云盘类应用做白名单管理,只允许企业指定的网盘客户端运行;
  • 在防火墙或上网行为管理设备上监控WebDAV和SMB协议的外联行为,一旦发现向未知云盘发起的映射请求,立即阻断。

同时,Windows环境中的“网络映射驱动器”本身也存在风险,建议管理员通过注册表或组策略,限制普通用户创建持久挂载。这里有一个简单的做法:设置用户环境变量或禁用“网络位置”添加向导,虽然不能完全阻止命令行挂载,但能提高攻击门槛。很多攻击者并不擅长绕过复杂的组策略配置,一点点阻力就能挡掉不少自动化攻击。

团队里最好再定一条规矩:财务、法务、人事这些高价值岗位的同事,不要在办公电脑上随意挂载外部云盘,如果有文件交换需求,统一走企业内部文件流转通道。这个规矩听起来很简单,但恰恰能切断不少攻击路径。

4.3 终端检测与响应:留意哪些报警

作为经常监测终端的从业者,我建议把注意力放在几个容易被忽略的事件上:

  • 进程命令行里出现net use且目标为外网域名;
  • cmd.exe或powershell.exe在非交互会话中创建后立即退出的高频行为;
  • 资源管理器进程的启动目录下出现不认识的快捷方式文件;
  • 计划任务或注册表启动项中指向网络盘符的路径;
  • 多台终端几乎在同一时间向同一个云盘域名发起连接。

如果环境中部署了EDR或终端杀毒,建议开启“网络文件扫描”或“映射驱动器扫描”功能。很多安全产品的实时防护默认不会监控UNC路径和映射盘符,需要手动打开。这一点经常被忽略,值得去核对一下你手头安全产品的策略配置。

注意:一旦确认有终端被感染,第一时间断网,但不要急着格式化重装。保留现场、提取日志和样本,对溯源来说比快速恢复重要得多。

5. 应急处理与问题排查速查

5.1 一次应急处置记录

就说我上个月参与的模拟项目X的处置过程。某天下午,后台看到一台终端连续命中外部威胁情报,目标是一个商业云盘的短链接。随后我们检查该终端,发现资源管理器中多了一个Z:盘,本地目录没有明显可疑文件。顺着进程树查看,才发现在一个临时目录里有loader.exe,父进程是cmd.exe。我们立刻断网,提取了内存镜像和预取文件,确认该终端感染了挂载型木马。

接着我们做了一件事:把net use列表和计划任务导出来,发现有一个计划任务会每隔30分钟定期挂载一次云盘。这解释了为什么情报平台告警频度那么高。清理时我们没有只删loader,而是先把计划任务禁掉、重启进入安全模式、删除相关的注册表键和缓存文件,最后才进行全盘扫描。因为如果不先禁计划任务,重启后木马又会借助云盘挂载重新出现。

5.2 常见问题速查表

问题现象可能原因排查方法
电脑多了个陌生盘符云盘挂载残留net use查看映射列表;资源管理器中检查盘符状态
计划任务指向网络路径持久化后门打开任务计划程序,筛选含UNC路径或盘符的触发项
杀毒软件报“网络连接”但找不到文件载荷在云盘上断网后提取云盘缓存文件,用虚拟机隔离分析
Word/Excel频繁崩溃dll注入冲突用进程分析工具查看异常模块加载路径
系统变量里多出PATH项脚本劫持检查环境变量和注册表Environment键值
双击文件后没有任何界面反应脚本后台执行查看进程树中是否有cmd.exe或powershell.exe残留

5.3 两个排查小技巧

第一,使用系统自带的Process Monitor一类工具时,首先要过滤路径包含可疑盘符(如Z:)的记录,能快速还原文件读写行为。第二,如果怀疑挂载地址是动态的,可以打开防火墙的日志,查看WebDAV或SMB端口的出站目的地IP,再结合威胁情报平台做反查。但要注意,分析过程中不要直接访问可疑云盘地址,更不要双击其中的任何文件,建议先做隔离快照再用虚拟机试运行。

还有一个小习惯值得推广:每周手工执行一次net use,没有输出就是干净的。很多挂载型木马留下的映射不会在重启后自动消失,尤其是设置了/persistent:yes的,它会一直栖息在你的系统里,等你哪天再次打开那个盘符。

这次分析给我最大的感触是,木马团队已经在吃“信任红利”了——不再费力地攻破你的浏览器,而是攻破你对同事、对工具的信任。我最后再分享一个我个人的习惯:在电脑上把聊天软件的文件保存路径改到非系统盘,然后每天下班前,看一眼“这台电脑”里有没有多出新的盘符。就这一个动作,已经帮我拦下过两次不请自来的“共享盘”。如果这篇能让一部分人养成这个习惯,就算没白写。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进