windbg实战-调试js脚本
2023-12-24 20:18:3 Author: 安全狗的自我修养(查看原文) 阅读量:4 收藏

windbg调试js脚本

目录

1.案例1——JS添加外部拓展

js代码与Windows上执行

查找com接口

windbg解析脚本

正则查找符号ShellExecute*

查看调用栈

 2.案例2-实例化创建com方式启动shell

查找Run相关的函数

查看堆栈

3.案例3——WScript XMLHTTP对象

4.案例4 对JS引擎支持的原生函数下断点



 

Windows上执行JavaScript脚本时往往通过API调用com接口来获取js解析引擎不具备的外部功能。下面的代码本质上是实例化com接口对象加载对应的COM DLL然后使用其中的函数功能。ps:powershell一样能做

1、new ActiveXObject("Shell.Application");2、WScript.CreateObject("Wscript.Shell");

写一段js代码进行测试

var oShell = new ActiveXObject("Shell.Application");var commandtoRun = "calc.exe";oShell.ShellExecute(commandtoRun,"","","","1");

使用cmd传入参数

windbg.exe C:\Windows\System32\wscript.exe  C:\Users\XXXX\Desktop\jsTest.js

写一段python脚本,从注册表中查找com接口对应的dll信息

from winreg import *import sys
try: objectName = sys.argv[1]except: sys.exit(1)
try: hReg = ConnectRegistry(None,HKEY_CLASSES_ROOT) hCLSIDKey = OpenKey(hReg, objectName+"\CLSID") CLSID=QueryValue(hCLSIDKey, "") if CLSID: hKey = OpenKey(hReg, "CLSID\\"+CLSID) description = QueryValue(hKey, "") hKey = OpenKey(hReg, "CLSID\\"+CLSID+"\\InProcServer32") dll = QueryValueEx(hKey, "")[0] print("Object Name: "+objectName) print("CLSID: "+CLSID) print("Description: "+description) print("dll: "+dll) else: print("No CLSID")except: print("Error") sys.exit(2)

文章来源: http://mp.weixin.qq.com/s?__biz=MzkwOTE5MDY5NA==&mid=2247490862&idx=1&sn=0093d3ddaac1439c87a9cc4f02e2d308&chksm=c0e9bf5f28f98d2bdb38e2c658714f2ff7fd19d7cba8f7057ba453ba03dd54a8708dc4a57abc&scene=0&xtrack=1#rd
如有侵权请联系:admin#unsafe.sh