vjw0rm JavaScript恶意软件样本分析,如何提取隐藏IOC?
问题解答
解码乱码原因
你所贴代码段中的Nd数组并非存储标准Base64编码内容,属于VjWorm家族常用的自定义编码结构:所有字符串都加入了固定冗余混淆字符、内置了自定义位移规则,直接用通用Base64解码工具处理自然会输出无意义乱码。
下一步操作建议
静态分析路径
- 先定位配套解码函数:这类字符串数组必然存在对应的解码逻辑,通常在
t()函数的相邻代码段,通用逻辑为:先移除每个字符串中固定的冗余前缀/后缀(你这个样本里的冗余字符多为无意义的W开头字符片段),再做自定义字符映射替换,最后才调用标准Base64解码。你可以在完整脱混淆代码中搜索所有引用Nd数组下标的代码,顺着调用路径就能快速找到解码函数。 - 批量脱字符串混淆:找到解码函数后,在完全隔离的本地Node.js环境中单独运行这段解码逻辑,批量处理
Nd数组的所有元素,即可直接拿到明文的函数名、C2地址、payload下载链接等核心信息,无需手动逐个解码。 - 定位关键执行逻辑:VjWorm这类JS恶意软件最终通常会拼接出PowerShell命令执行下一阶段载荷,你可以直接搜索完整代码中调用
powershell.exe的相关片段,提取命令参数即可直接看到C2相关信息,无需解析全部字符串数组。
动态分析路径(效率更高)
- 将样本放入隔离的Windows沙箱环境运行,同时开启Wireshark抓包、Process Monitor监控进程行为,VjWorm启动后会主动发起HTTP请求拉取后续载荷,直接就能捕获到域名、IP等所需IOC,比逆向代码效率更高。
- 注意运行样本时必须配置完全隔离的虚拟网络,或设置断网环境,避免样本扩散到实际网络。
内容的提问来源于stack exchange,提问作者Swedish ubuntugeek
相关产品推荐
相关产品推荐

