frida-wshook 是一个分析和指令注入工具,它使用 frida.re 来钩取恶意脚本文件(通过 WScript/CScript 运行)常用的函数。
该工具拦截 Windows API 函数,而不在目标脚本语言中实现函数桩或代理。这使得它能够支持分析几种不同的脚本类型,例如:
默认情况下,脚本文件使用 cscript.exe 运行,并会输出:
警告!!!请确保在专用的分析系统上运行任何恶意脚本。 理想情况下,使用带有快照的虚拟机,这样如果脚本失控需要重置系统,你可以进行回退。
虽然常见方法已被钩取,但 Windows 提供了大量允许开发者与网络、文件系统交互以及执行命令的 API。因此,完全有可能遇到使用了这些功能中不常用 API 的脚本。
pip install frida
frida-wshook 已在 Windows 10 和 Windows 7 上测试,并且应该能在任何 Windows 7 及以上环境中工作。在 x64 系统上,CScript 从 C:\Windows\SysWow64 目录加载。
它可能能在 Windows XP 上工作,但我怀疑 CScript 可能会使用旧版 API 调用,从而绕过该检测工具。
该脚本支持许多可选的命令行参数,允许你控制脚本宿主可以调用哪些 API。
usage: frida-wshook.py [-h] [--debug] [--disable_dns] [--disable_com_init]
[--enable_shell] [--disable_net]
script
frida-wshook.py 你的友好 WSH 钩子工具
positional arguments:
script 目标 .js/.vbs 文件路径
optional arguments:
-h, --help 显示此帮助信息并退出
--debug 输出调试信息
--disable_dns 禁用 DNS 请求
--disable_com_init 禁用 COM 对象 ID 查找
--enable_shell 启用 Shell 命令
--disable_net 禁用网络请求
使用默认参数分析脚本:
python wshook.py bad.js
启用详细调试:
python wshook.py --debug bad.js
启用 Shell(执行)命令:
python frida-wshook.py --enable_shell bad.vbs
禁用 WSASend:
python frida-wshook.py --disable_net bad.vbs
检查脚本使用了哪些 ProgIds:
python frida-wshook.py --disable_com_init bad.vbs