你的电脑里一张普通的JPEG图片,可能正藏着下一阶段的攻击指令。这不是电影桥段,是Point Wild安全团队4月24日刚刚确认的事实。

Vidar——这个2018年出道的信息窃取木马,在2026年完成了又一次关键进化。它不再把恶意载荷明目张胆地塞进可执行文件,而是学会了隐身术:把第二阶段攻击代码压缩进JPEG图像和TXT文档,让传统安全工具彻底失明。

打开网易新闻 查看精彩图片

从"小偷"到"平台":Vidar的八年变形记

2018年的Vidar还很原始。它基于Arkei框架,功能单一:偷密码。 credential stealer(凭据窃取器)的定位,决定了它的技术栈相对简单,传播范围也有限。

但恶意软件市场有自己的演化逻辑。到2026年,Vidar已经完成了三重转型:

第一,商业模式MaaS化(恶意软件即服务)。开发者不再直接作案,而是把工具租给下游攻击者,按效果分成。这大幅降低了使用门槛,也让变种数量爆炸式增长。

第二,攻击链多级化。早期版本"一步到位",现在则像俄罗斯套娃:dropper(投放器)→脚本→内存载荷→最终窃取模块,每层都只做一件事,单层分析几乎无法还原全貌。

第三,基础设施社交化。Telegram成了命令与控制(C2)通道,攻击者用频道和机器人管理数千台受控设备,既隐蔽又便于批量操作。

最致命的变化在内存执行。新版Vidar把整个感染链搬进RAM,硬盘上几乎不留痕迹。取证人员面对的是一个"无文件"犯罪现场——程序在运行,但磁盘干净得像什么都没发生过。

感染路径拆解:一次典型的Vidar入侵

Point Wild的Lat61威胁情报团队还原了完整攻击链。起点是一个用Go语言编译的dropper二进制文件。

选Go不是技术偏好,是精准的反检测策略。传统安全工具的训练数据里,Go语言样本占比极低,特征库覆盖薄弱。一个用Go写的木马,天然带着"隐身衣"穿过第一道防线。

dropper落地后,释放一个名为ewccbqtllunx.vbs的VBScript到Windows Temp目录。脚本第一步:沙箱检测。它检查运行环境是否具备真实用户特征——鼠标移动、进程列表、硬件指纹。一旦发现是分析环境,立即自毁,不给安全研究员任何样本。

通过检测后,VBScript构建一段混淆的PowerShell命令,以隐藏窗口模式执行。这段脚本负责连接远程服务器,下载下一阶段载荷。而载荷的载体,正是这次变种的核心创新。

JPEG和TXT:为什么选这两种格式?

安全工具对文件类型的信任度并不平等。EXE、DLL、PS1这些"高危扩展名"会被重点扫描,而JPEG和TXT长期处于白名单边缘——图片能有什么恶意?文本文档能执行什么代码?

Vidar的新变种正是利用这种认知盲区。

攻击者把经过编码的第二 stage payload(第二阶段载荷)嵌入JPEG的像素数据或TXT的文本流中。文件本身是正常的:图片能正常打开,文档能正常阅读。但Vidar知道如何从中提取隐藏指令,解码后在内存中重建可执行代码。

这种技术不是Vidar首创,但把它大规模工程化、产品化,是MaaS模式下的新趋势。下游攻击者不需要理解隐写术原理,只需要在控制面板勾选"使用图片隐藏"选项,系统会自动生成带毒JPEG。

更隐蔽的是TXT路线。某些企业环境为便于日志传输,会放行.txt文件的出站连接。Vidar把C2指令伪装成Base64编码的"日志数据",既能穿透防火墙,又能躲过DLP(数据防泄漏)系统的关键词检测。

攻击面扫描:谁在目标清单上?

Vidar的窃取目标清单长达200余项,覆盖浏览器生态的每个角落。

加密钱包是重点关照对象。MetaMask、Phantom、Coinbase Wallet——这三款主流钱包的扩展程序都在猎杀范围内。私钥一旦被盗,资产转移几乎不可逆,链上追踪难度极高。

密码管理器同样危险。Bitwarden、LastPass、KeePass的本地数据库文件是Vidar的优先读取目标。很多用户误以为用了密码管理器就安全,却不知道恶意软件在内存层面拥有同等读取权限。

浏览器本身也不安全。保存的自动填充密码、Cookie会话令牌、历史记录中的敏感搜索——Vidar会打包成结构化数据,通过Telegram频道实时回传。

攻击者的分发渠道同样多元化。伪造的GitHub仓库伪装成开发者工具或"破解软件",利用程序员对开源平台的信任;被攻陷的WordPress网站注入恶意脚本,劫持正常流量;ClickFix页面用假验证码诱导用户复制粘贴PowerShell命令,把"用户主动执行"作为法律免责的挡箭牌。

游戏社区是新增的高转化场景。GitHub、Discord、Reddit上的假外挂仓库,精准击中玩家"为了赢愿意冒险"的心理。安全警告?那是阻止我上分的障碍。

防御困境:为什么传统方案失效?

Vidar的进化暴露了几个深层防御难题。

文件类型信任模型崩塌。当JPEG和TXT都能携带恶意代码,基于扩展名的黑白名单策略彻底失效。安全团队面临选择:要么对所有文件深度扫描,承受巨大的性能开销;要么维持现状,承担漏报风险。

内存执行绕过磁盘防护。EDR(端点检测与响应)工具依赖内核回调监控文件操作,但Vidar在RAM里完成主要工作,不留PE文件、不写注册表持久化,传统遥测数据源被切断。

Go语言生态的检测盲区。静态分析工具对Go的二进制特征识别不足,动态沙箱又常被Vidar的环境检测绕过。安全厂商需要重新训练模型,但攻击者已经在用Rust、Zig等更小众的语言编写下一代样本。

社交基础设施的治理真空。Telegram对频道内容的审核力度远低于主流平台,C2通信混杂在正常用户流量中,IP封禁会误伤大量无辜用户,运营商投鼠忌器。

技术细节:攻击链的五个关键节点

基于Point Wild的公开分析,这次Vidar变种的完整流程可以拆解为五个阶段:

① 初始访问。通过钓鱼链接、搜索引擎毒化、社交媒体诱导等方式,让目标执行Go编译的dropper。文件可能伪装成软件安装包、系统更新程序或游戏补丁。

② 环境侦察。VBScript执行沙箱检测,检查虚拟机特征、分析工具进程、屏幕分辨率等指纹。任何异常都会导致提前终止,保护后续载荷不被捕获。

③ 载荷获取。PowerShell脚本连接C2服务器,下载嵌有隐藏数据的JPEG或TXT文件。网络流量表现为正常的图片请求或文本下载,HTTPS加密让内容检查无从入手。

④ 内存解码。从载体文件中提取编码数据,在RAM中重建.NET或原生二进制,通过进程注入或APC(异步过程调用)注入技术将代码植入合法进程。

⑤ 数据窃取。扫描浏览器扩展目录、钱包密钥文件、密码管理器数据库,打包后经Telegram Bot API外传。整个周期可能在用户单次开机期间完成,关机即证据湮灭。

一个被低估的信号

Vidar把载荷藏进JPEG和TXT,不只是技术炫技。它反映了一个更宏观的趋势:恶意软件正在系统性地侵蚀"可信边界"——那些安全模型默认安全的区域。

图片、文档、文本、甚至内存本身,这些传统意义上的"数据"正在被重新武器化。防御方的假设是"代码才会执行攻击",攻击者的回应是"让数据变成代码"。

当信任模型从"默认开放"被迫转向"默认怀疑",用户体验和安全成本的冲突将愈发尖锐。Vidar的这次变种,可能是大规模"文件类型不信任"时代的预演。