找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

4539

积分

0

好友

595

主题
发表于 1 小时前 | 查看: 5| 回复: 0

前言

2026 年 8 月 27 日,安全研究员 Himanshu Anand 发布了一份威胁情报,揭示了一条以伪造学术简历为饵的链式攻击路径:一个伪装成简历的 ZIP/EXE,一旦被双击,就会在后台依次加载 Go loader、SNOWLIGHT 与 VShell RAT,全程无文件落地,最终取得交互式远程控制。本文基于其 ANY.RUN 沙箱捕获与静态解码结果,复盘技术事实与影响范围。先给结论:这是一次定向鱼叉攻击,受害者画像中置信指向大陆学术圈,攻击者归属未知,目前没有持久化与数据泄密的实锤证据。它不是大规模蠕虫,也远未到 APT 定案的程度。

一、攻击事实

初始向量是一个 ZIP 压缩包,内部放了一个与压缩包同名的 .exe 文件。Windows 默认隐藏扩展名,再加上图标被仿造成文档样式,收件人双击“简历”时,实际运行的是一个 PE 可执行文件。

伪装成个人简历的恶意DOCX诱饵截图

运行后,它会从远程拉取一份真实的 DOCX 诱饵文档,存到 C:\Windows\Temp\ 目录并调用 Word 打开,让受害者以为文件一切正常,而恶意加载在后台同步进行。

完整载荷链为:Fake Resume EXE 触发 Stage1 Go loader,Stage1 拉起 Stage2 SNOWLIGHT shellcode,Stage2 接收并跳入 Stage3 VShell RAT,全程 fileless。

这里需要把 VShell 说清楚。它是一种公开可得的 Go 语言跨平台远程访问木马框架,SNOWLIGHT 是其默认 stager。本例解码出来的是一个 32 位 Go PE,.data 段高熵加密,符号也被混淆处理。公开文档与控制台记录显示,它具备交互式终端与任意命令执行、文件浏览与上传下载、屏幕截图与实时监控、主机与网络侦察、反向代理隧道,以及 TCP/WebSocket/KCP 等多传输协议支持。

把 VShell 当作“某个神秘 APT 专属武器”是一种误读。它是商品化甚至已经泄露的货架级 RAT,任何拿到面板的 operator 都能生成同样的 stager。

二、攻击链拆解

2.1 Stage1:Go loader 的反沙箱与配置

样本是 32 位 Go 1.22.0 Windows 二进制,带一枚无效的金山签名(HashMismatch)。它先执行反沙箱逻辑:检查路径中是否包含 C:\Users\Administrator\Desktop 且文件名包含 2016,满足条件就退出,主要针对微步类沙箱环境;CPU 逻辑核数小于 4 也会直接退出;还会借助 kernel32!Beep(30000Hz,10s) 测量真实时间,加速型沙箱会被识破。

配置信息是加密存储的,解码流程为 Base32hex → AES-CBC(密钥 YtWzxwZimsZoeMen) → 按位 NOT → Base64,最终解出两个 URL 和落盘路径。内存执行依靠 Activeds.dll!AllocADsMem 分配可执行内存,再起线程运行 shellcode。

反沙箱加上多层编码,是商品化 loader 的标配。静态分析直接看字符串基本无解,必须解码配置或让沙箱真实运行。

2.2 Stage2:SNOWLIGHT 跨界到 Windows

:50813/EasyConnectUpdata_Log.txt 下载约 6KB 的响应内容,解码成 1454 字节 x86 shellcode。它创建 %TEMP%\log_de.log 作为 kill-switch 标记,文件存在就退出;随后连接 38.207.178[.]192:50812;先发送 40 字节架构/检查包(开头 w32 加端口与 IP);再以 0x99 循环异或接收约 4.65MB 数据后跳转执行。全程没有服务器认证,也没有签名校验,属于 VShell 面板生成的通用 stager。

SNOWLIGHT 40字节check-in payload分析

kill-switch 与无认证设计说明它是通用投递件,不绑定特定 operator。这也解释了为什么多个团伙能共用同一套工具。

2.3 Stage3:VShell 的 C2 与行为

C2 通信使用 AES-256-GCM 加密,密钥取自 MD5(salt) 的十六进制串,帧结构为 4 字节小端长度 + 12 字节 nonce + 密文 + 16 字节 tag。沙箱中观察到注册、MD5 挑战、conf 通道以及心跳等约 198 帧健康流量,但没有看到人工下发的指令。

VShell加载后AES-GCM加密帧与TCP会话分析

只看到心跳而没看到操作指令,说明捕获到的是“已上线未行动”的窗口期。据此不能推断攻击目的已经达成。

三、影响范围核实

这一节是全文的重心,逐项给出证据,避免被标题带偏成 APT 定案或全网恐慌。

3.1 直接受影响

直接中招的是打开恶意 ZIP 内伪装 EXE 的 Windows 用户。风险最高的一类,是通过学术邮箱收到这份“简历附件”的高校教师或课题组负责人。诱饵文档使用简体中文、WPS 区域码 2052,通篇是“应届毕业生”“个人简历”“课题组”“贵课题组”等大陆学术用语,研究意向集中在 AI 电网故障诊断、智能电气系统、新能源变流器控制,明显是一份套磁导师的模板。

3.2 潜在扩散

一旦单台工作站失陷,VShell 的反向代理隧道可以深入内网,进行横向移动与凭据收集,波及整个研究室或院校网络。这是潜在面,具体取决于失陷主机的网络位置与权限。

3.3 非断言项

作者明确区分了三件事。第一,北京理工大学仅为诱饵声称的“申请人母校”,不代表该校是受害机构。第二,没有数据证明国防研究项目遭到定向攻击。第三,没有证据显示已经发生数据泄密。把“用了 BIT 名义”直接读成“打了中国国防”,属于过度推断。

3.4 无文件与持久化

本例全程 fileless,仅诱饵 DOCX 与 kill-switch 标记文件落到磁盘。沙箱里 Windows Defender 阻断了重建的 PE,没有注册表、服务层面的持久化实锤。

3.5 地域与行业语境

综合 lure 语言、WPS 简中环境、“国防七子”名义带来的权威感包装,以及研究意向集中在电力系统与可再生能源控制,中置信结论指向大陆学术科研网络。但这是受害者画像,不是攻击者画像。

四、检测与狩猎

网络层可以先拦。已知的 C2 基础设施是 38.207.178[.]192,涉及 50812(SNOWLIGHT/VShell)、50813(HTTP 暂存与诱饵)、40010(历史 VShell 中置信)三个端口,边界与出向规则直接阻断即可。SNOWLIGHT 的 40 字节检查包带有 w32 标签,VShell 帧带 12 字节 nonce,都可以写成告警特征。

终端侧需要盯住几个点:搜索 %TEMP%\log_de.log 这个 kill-switch 标记;观察“简历名 EXE 启动 Word 又拉起 cmd”的父子进程关系;抓取 AllocADsMem → VirtualProtect → CreateThread 这条内存执行链;留意先收大段 TCP 再分配数十 MB 可执行内存的行为;还有带无效金山证书的 Go 二进制,以及出向流量里的 w32/w64/... 标签。

邮件网关侧,应对 ZIP 内 EXE、仿文档文件名,以及借“国防七子”等名义的套磁附件提高审查等级,必要时默认拦截可执行附件。

五、归因与防御视角

归因上作者没有给出定论,最贴切的标签是“使用面向大陆学术 lure、商品化 SNOWLIGHT+VShell 生态的未知 actor”。SNOWLIGHT 历史上由 Mandiant 命名并与 UNC5174 相关,但到 2026 年 VShell 面板已经商品化甚至泄露,Earth Lamia、UAT-8302、UNC6586 都用过同一套工具,却与本例 IOC 没有重合。工具共性不能当作同一团伙的证据。

防御上要三道防线一起上。其一,学术邮箱严格过滤 ZIP/EXE,默认显示扩展名,禁用双击来源不明的 EXE。其二,终端 EDR 覆盖内存执行与无文件行为,不能只看落盘 PE。其三,网络侧阻断已知 C2,落地零信任分段以限制横向移动。人员培训同样关键,要让师生识别“仿文档 EXE”和套磁钓鱼。

商品化 RAT 叠加本土化社工,是低成本高回报的组合。治本之道在“人 + 网关 + EDR”,而不是等归因定案再行动。

结束语

本文核实后的结论很明确:这是一起以伪造简历为饵、无文件投递 VShell RAT 的定向鱼叉攻击,受害者画像中置信指向大陆学术圈,攻击者归属未知,无持久化与泄密实锤。高校与科研单位不必全网恐慌,应按照 3.1 到 3.3 的梳理,把资产自查落在学术邮箱网关、终端 EDR 与网络 IOC 三个位置。VShell/SNOWLIGHT 生态的商品化,让“无文件 RAT + 本土化社工”成为常态,唯有把社工防线与无文件检测能力建起来,才能从根上收口。后续持续跟踪此类威胁,也可在 云栈社区 安全板块交流讨论。

IOC 一览


Original archive SHA-256
c25d4412f7f93e7de5b2aaf41747175d94cffd983ca20efbd0efcdd718b58c4d

Go loader SHA-256
81c51138d5527ca7dcc258171eb36659c479f66c86a8947b6340d040b3860a30

Go loader MD5
a7cc7e3cdd2f0f9210044911a483fa5d

Encrypted HTTP response SHA-256
f6d4da5afc89bf9e536a9002c4d256c696df2389d77279f4c5daf6979557e74e

SNOWLIGHT shellcode SHA-256
0524619d2471d77aba4b7993f5ffbaa4b8be6d2c0d91e63a02943851dc4b6404

XOR-encoded VShell stream SHA-256
ed2eaa6ef3eda95383b6efc35b88acbca742ad7bd118931f74727a3139ff7e97

Decoded VShell SHA-256
c666ac4f1a1b8df7ccfe8b19705279acd8b7eb7a4d0b3802bb3465064883ab25

DOCX decoy SHA-256
de3f56d0d5b71f2a1a1905f0b01b84fbab237e9d4c5179a05b127d806823f83c

C2 / staging IP
38.207.178[.]192

HTTP staging
38.207.178[.]192:50813

SNOWLIGHT TCP
38.207.178[.]192:50812

Loader AES key
YtWzxwZimsZoeMen

SNOWLIGHT XOR key
0x99

Kill-switch marker
%TEMP%\log_de.log



上一篇:APK逆向与渗透测试自动化:AiScan-N AI安全工具链实战
下一篇:Linux 下使用微信的真实体验与可行方案盘点
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-8-31 09:06 , Processed in 1.036066 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表