1、背景
截获病毒样本时遇到各类脚本病毒样本。
2、调试.wsf脚本
.wsf格式文件是windows脚本文件(Windows Script File)的简称,一个wsf文件中不仅可以同时包含js和vbs脚本,而且可以包含Perl、Object REXX、python、 Kixtart等脚本。这类脚本右键打开则可看见加密后的代码,用Visual Studio可对该类脚本调试。通过VS自带的监视变量功能即可看到病毒期间都在执行了什么操作。
调试.wsf前需要将注册表项进行设置
第一步:将以下注册表路径JITDebug的键值设为1
HKEY_CURRENT_USERSoftwareMicrosoftWindows ScriptSettingsJITDebug
第二步:用以下方式执行.wsf脚本,加 /x 参数会弹出使用vs调试的窗口
wscript.exe /x myScript.wsf
运行以上病例后会抛出一个即时异常,脚本开始运行后自动启动VS调试器。
图1
图2 F10,F11调试
3、调试js脚本
有两种方式,一种是借助VS直接调试,一种是借助浏览器调试。
借助Visual Studio调试
用Visual Studio调试js与.wsf方法差不多,运行
wscript.exe /x myScript.js
借助浏览器调试
打开控制台把eval函数替换成alert()或console.log()。
chrome 单步调试JS也可,开启 debugger ,代码在第三行前停止执行。。
4、调试office脚本
alt+shift11,调出脚本窗口,在调试的代码处下断点。通过观察变量变化得到C&C域名或是行为。
5、调试HTA
在分析office cve-2017-0199漏洞类样本的时候,会访问一个hta。通过抓包可以看到域名连接,想要看vbs的变形就使用以下工具:
- htaedit
http://www.htaedit.com/
6、查看SWF
- 闪客精灵
- as3
- JPEXS Free Flash Decompiler
7、关注重点
脚本类的样本主要关注3点:判断下载的样本是否可用,样本是否可以联网,联网是否存活。
9、OD调试
新建【wscript.exe xxx.js】的快捷方式,拖进OD。然后查看是否有网络模块【WS32_32.dll】被加载。如果有就断点加载的位置,在模块里的联网函数下断点。
快捷方式运行 wscript.exe XXX.js
E查看模块,找kernel32.dll createfile,ws2_32.dll getaddrinfo
M查看内存状态
L查看日志
8、参考文章
《How to Debug Visual Basic Script with Visual Studio - CodeProject》
https://www.codeproject.com/Tips/864659/How-to-Debug-Visual-Basic-Script-with-Visual-Studi
《How to debug Windows Script Host, VBScript, and JScript files》
https://support.microsoft.com/en-us/help/308364/how-to-debug-windows-script-host,-vbscript,-and-jscript-files
Wscript
https://technet.microsoft.com/en-us/library/hh875526.aspx