[软件审计]某疑似“银狐病毒”的软件分析

admin 2026-08-22 04:37:53 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文披露GitHub某游戏存档修改器实为银狐病毒变种。该样本用Bun打包混淆JS,具备两阶段反沙箱评分检测、双层AES加密通信、云端按需下发载荷及纯JS实现内存反射PE加载能力,全程无文件落地。建议防范此类新型Bun打包木马免杀手法,加强游戏外挂供应链安全管控,并可利用其调试后门文件辅助研判。 综合评分: 90 文章分类: 恶意软件,逆向分析,免杀,威胁情报,代码审计


[软件审计]某疑似“银狐病毒”的软件分析

和子煦

2026年8月14日 22:23 广东

在小说阅读器读本章

去阅读

“银狐病毒”是近年来新出现的一系列流行的病毒,其主要特征是通过潜伏在受感染的计算机系统中,向目标主机回传受感染计算机系统上的敏感信息。由于其有一系列变种,并且在不断进化中,自2026年以来,已经成为了一种容易中招、频繁出现的病毒。

起因是听同学说有人想下一个存档编辑器,结果看了一眼源代码发现是病毒。好吧,确实是病毒。

结论:GitHub上某“修改Granblue Fantasy Relink玩家存档数据”的外挂程序疑似为“银狐病毒”。

该程序中包含的Setup.exe是一个使用Bun运行时打包的JavaScript下载器/加载器,具备完整的反沙箱、环境指纹采集、C2 加密通信、云端载荷拉取与**内存反射式 PE 加载(无文件落地)**能力,投递链特征与”银狐”(Silver Fox / Winos 系列)投递框架高度一致。

(下面的表格须左右滑动查看)

| 文件 | 大小 | 性质 | | — | — | — | | Setup.exe | 97.9 MB | 恶意主体 :Bun 1.3.14 编译的单文件可执行程序,内嵌 132 KB 混淆 JS 载荷 | | 根目录 6 个 DLL(nss3/rnp/mozavcodec/gkcodecs/libGLESv2/Microsoft.UI.Input) | ~30 MB | 合法文件(Mozilla Thunderbird 组件等),纯伪装,多数带有效数字签名 | | core/ (Qt6、FFmpeg、icu、d3dcompiler) | ~28 MB | 合法 Qt/FFmpeg 运行库,签名有效,纯伪装 | | Data/ (Windows People Bar 系统 DLL) | ~11 MB | 合法 Windows 系统文件副本,纯伪装 | | scripts/bin/ (edb*.log、edb.chk、*.jrs、DataStore.jfm) | ~18 MB | 从 C:\Windows\SoftwareDistribution\DataStore\Logs\ 复制的 Windows Update ESE 日志,纯伪装 |

恶意行为分析

JS载荷经javascript-obfuscator高强度混淆(字符串数组旋转 + base64解码器 + XOR表),反混淆后还原出4个模块,执行流程如下:

阶段 0 — 调试后门开关

检查自身目录是否存在98765.txt:存在则跳过反沙箱检测并写loader_debug.log(作者调试通道,也可用作排查佐证)。

阶段 1 — 环境检测 / 反沙箱(sysreq.js)

通过bun:ffi直接调用Win32 API(kernel32/advapi32/user32/setupapi),不经过Node库:

  • 硬件指纹:读注册表 HKLM\HARDWARE\DESCRIPTION\System\BIOS(BIOS 厂商、主板厂商/型号)、HKLM\SYSTEM\CurrentControlSet\Services\disk\Enum(磁盘型号);GetSystemFirmwareTable('RSMB') 解析 SMBIOS 内存条;EnumSystemFirmwareTables('ACPI');SetupDi 枚举 PNP 设备总数与总线名称;音频设备计数;磁盘总容量(C:~G:)
  • 虚拟机识别(解码出的特征表):qemu、seabios、bochs、innotek、vbox、vmware、kvm、xen、parallels、virtio、bhyve、”ms_vm_cert”、”virtual machine”、”red hat”、”edk ii”,MAC OUI 00:50:56(VMware)、08:00:27(VBox)、52:54:00(QEMU)、00:15:5D(Hyper-V)、00:16:3E(Xen)、00:1C:42(Parallels),Hyper-V 总线 vmbus
  • 沙箱/分析环境识别:用户名黑名单(sandbox、malware、virus、sample、maltest、currentuser、vmuser、john doe、peter wilson、hapubws、hong lee、joe sandbox、paul jones、WDAGUtilityAccount、defaultuser0);进程数过少;uptime<60 秒;屏幕≤800×600;磁盘 5–20 GB;内存 1–2 GB;单核 CPU;临时目录/桌面/Recent 文件数过少;已装软件<3 个;无浏览器(Chrome/Firefox/Edge/Brave 目录探测);CPU 时序基准检测(process.hrtime 测量指令开销识别模拟器)
  • 两阶段评分制:phaseOne≥25 分直接放弃运行;总分≥100 分放弃运行 —— 不满足条件时静默退出,不释放任何恶意行为(对抗动态沙箱)

阶段 2 — 信息收集与回传

采集:外网 IP(随机请求 checkip.amazonaws.com / icanhazip.com / ifconfig.me)、CPU 型号、内存、系统版本、主机名\用户名、上述全部反检测数据、时间戳。

  • 加密上报:JSON → AES-256-CBC(密钥=SHA256(REPORT_SECRET+”inner”),随机 IV 前置)→ Base64 → 再 AES-256-CBC(密钥=SHA256(REPORT_SECRET+”outer”))→ Base64,双层加密 POST 至 https://un***.cc/api/report
  • 通信伪装:伪造 Chrome 134–135 User-Agent;NODE_TLS_REJECT_UNAUTHORIZED=0 关闭 TLS 证书校验;支持读取系统代理(环境变量 + 注册表 IE 代理设置)走 HTTP CONNECT 隧道,适配企业网络
  • 失败重试 3 次(递增间隔)

阶段 3 — 状态轮询

GET https://un***.cc/api/status?v=ceec64366c40(BUILD_ID),最多 20 次指数退避(1s→30s 封顶),从返回 JSON 取 seed 字段(一次性解密因子)。无 seed 则退出 —— 服务端可按需定向投放,分析人员难以复现。

阶段 4 — 载荷下载与解密

GET https://un***.cc/api/update?v=ceec64366c40(同样 20 次退避重试),得到加密载荷后用 _unwrapAsset 解密:

  • AES-256-GCM;密钥 = SHA256(seed + SALT);IV=载荷前 12 字节;AuthTag=随后 16 字节;密文=剩余部分
  • 解密结果即最终 PE 载荷(全程内存,不落盘);解密失败自动重下 3 次;用完将密文缓冲区填 0

阶段 5 — 内存反射加载执行(memload.js

纯JavaScript通过bun:ffi绑定14个Win32 API(VirtualAlloc、VirtualProtect、LoadLibraryA、GetProcAddress、CreateThread、WaitForSingleObject、GetExitCodeThread、CloseHandle、FlushInstructionCache、RtlAddFunctionTable、SearchPathA、VirtualFree、SleepEx 等),实现完整反射式 PE 加载器:

  1. 校验 MZ/PE 头、机器类型 x64(0x8664),拒绝 .NET 程序集
  2. VirtualAlloc 申请 RWX 内存,复制 PE 头与各节区
  3. 处理基址重定位(HIGHLOW/DIR64)
  4. 解析导入表 + 延迟导入表,LoadLibrary/GetProcAddress 修复 IAT(支持序号导入、SearchPathA 兜底 DLL 搜索)
  5. 按节区属性恢复内存保护;RtlAddFunctionTable 注册 SEH;FlushInstructionCache
  6. 执行 TLS 回调
  7. 篡改 kernel32!ExitProcess 前 14 字节为 jmp ExitThread(FF 25 间接跳转),防止载荷退出时杀死宿主进程;执行完毕用 _restoreEP 恢复原字节
  8. CreateThread 在载荷入口点起线程,WaitForSingleObject 等 90 秒,按退出码判断是否崩溃(0xC* 异常码);失败自动重试 5 次

阶段 6 — 结果回传与清理

将执行成败、加载器日志(阶段/错误码)、外网 IP、主机名\用户名再次加密 POST 到 /api/report,恢复 ExitProcess 字节,填零密钥缓冲区,process.exit(0) 退出。

家族归属分析

符合”银狐”(Silver Fox,常最终投递 Winos 4.0 / ValleyRAT 远控)投递链的典型特征:伪装正常安装包的大体积捆绑包、云端两段式(status→update)按需投放、反沙箱评分制、内存反射加载最终 RAT、中文黑产常用的 Bun/Node 打包 loader 手法。最终载荷由 C2 动态下发,本地不可得(本次审计时 C2 存活状态未验证),因此最终 RAT 家族无法仅凭磁盘样本确证,但 loader 基础设施与 TTP 与银狐系高度一致。

主要网络地址

(下面的表格须左右滑动查看)

| 类型 | 值 | 说明 | | — | — | — | | C2域名 | un***.cc | 解析至 Cloudflare | | URL | https://un***.cc/api/status?v=ceec64366c40 | 状态/下发 seed | | URL | https://un***.cc/api/update?v=ceec64366c40 | 下载加密载荷 | | URL | https://un***.cc/api/report | 指纹与执行结果回传 |

(封面图片由ChatGPT生成,审计工作由Kimi K3完成)


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:和子煦 《[软件审计]某疑似“银狐病毒”的软件分析》

评论:0   参与:  0