调试脚本病毒

1、背景

截获病毒样本时遇到各类脚本病毒样本。

2、调试.wsf脚本

.wsf格式文件是windows脚本文件(Windows Script File)的简称,一个wsf文件中不仅可以同时包含js和vbs脚本,而且可以包含Perl、Object REXX、python、 Kixtart等脚本。这类脚本右键打开则可看见加密后的代码,用Visual Studio可对该类脚本调试。通过VS自带的监视变量功能即可看到病毒期间都在执行了什么操作。

调试.wsf前需要将注册表项进行设置

第一步:将以下注册表路径JITDebug的键值设为1

HKEY_CURRENT_USER\Software\Microsoft\Windows Script\Settings\JITDebug

第二步:用以下方式执行.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的变形就使用以下工具:

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

posted @ 2017-07-17 13:37  17bdw  阅读(951)  评论(0编辑  收藏  举报