当前位置: 首页 > 图文教程 > 脚本技术 > VBScript > 关于脚本调用外部对像和类型库

VBScript
NYboy.vbs病毒源代码公布,我来模拟熊猫烧香
vbs脚本病毒生成器 下载
用vbs实现返回 IP 配置数据
mdir.vbs 建立隐藏虚拟目录的vbs
改进后的mkw3site.vbs(创建虚拟目录)
charCodeAt与AscW函数的区别说明
vbs中Empty和Null的区别
用vbs将名称转换为正确的大小写的代码
用vbs实现更改计算机的说明的代码
vbs中使用 ADO 读取所有数据均在一行上的文本文件的代码
用vbs检测Internet Explorer 中是否启用了 ActiveX
在vbs运行命令行工具后让命令窗口保持打开状态的脚本
用vbs读取远程计算机上的文本文件的代码
用vbs从本地 Administrators 组中删除组
用vbs删除前一天创建的备份文件
不错的一篇VBS-JSCRIPT GETOBJECT理解
VBS ArrayList Class vbs中的数组类
如何调试JScript/VBScript的方法
如何通过计划任务调用QuickTest测试脚本
用vbs实现按创建日期的顺序列出一个文件夹中的所有文件

VBScript 中的 关于脚本调用外部对像和类型库


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-11   浏览: 140 ::
收藏到网摘: n/a

先举个例子,最近的flash网马调用:
var Flashver = (new ActiveXObject("ShockwaveFlash.ShockwaveFlash.9")).GetVariable("$version").split(",");
这个ShockwaveFlash.ShockwaveFlash.9从何而来,用exescope打开flash9f.ocx选择typelib,即可看到ShockwaveFlash.ShockwaveFlash.9对像的函数,其中就有GetVariable。这就带来另一个问题,如何知是要打开的是flash9f.ocx呢?如果只是针对这个,可以用IE的组件管理器查看到。
那么我们调用其它的可不可以,像mstsc.exe,3389连接器的组件呢?注册表查找mstsc.exe,找到的HKEY_CLASSES_ROOT\CLSID\{3523c2fb-4031-44e4-9a3b-f1e94986ee7f}\InprocServer32就是C:\WINDOWS\system32\mstscax.dll,然后用exescope打开也可以看到这个组件的函数、属性、方法等。可以简单示例(md,只是能改mstsc.exe的各方面属性值,一直打不开连接界面,谁来改改?):
Sub ExecuteConnection(strServer, strUser, strPW)
' create the client
Dim objMsRdpClient
Set objMsRdpClient = CreateObject("MsTscAx.MsTscAx.3")
objMsRdpClient.Server = strServer
objMsRdpClient.UserName =strUser
objMsRdpClient.FullScreen = false
objMsRdpClient.AdvancedSettings2.RedirectDrives = False
objMsRdpClient.AdvancedSettings2.RedirectPrinters = False
objMsRdpClient.AdvancedSettings2.RedirectPorts = False
objMsRdpClient.AdvancedSettings2.RedirectSmartCards = False
objMsRdpClient.AdvancedSettings2.ClearTextPassword = strPW
objMsRdpClient.StartConnected = True
WScript.echo "Before connecting"
wscript.echo objMsRdpClient.version
dim intResult
intResult = objMsRdpClient.Connect
WScript.echo "After connecting Result: " & intResult
End Sub
调用组件,不仅可以使用注册表中找到的HKEY_CLASSES_ROOT\CLSID\{3523c2fb-4031-44e4-9a3b-f1e94986ee7f}\ProgID(上边的例子就是CreateObject("MsTscAx.MsTscAx.3")
),也可以用HKEY_CLASSES_ROOT\CLSID,这也就是为什么我们在asp木马中也可以用到的classid,像海阳顶端2006+源码中的:
<object runat="server" id = "ws" scope = "page" classid = "clsid:72C24DD5-D70A-438B-8A42-98424B88AFB8"></object>
<object runat="server" id = "fso" scope = "page" classid = "clsid:0D43FE01-F093-11CF-8940-00A0C9054228"></object>
<object runat="server" id = "ws" scope = "page" classid = "clsid:F935DC22-1CF0-11D0-ADB9-00C04FD58A0B"></object>
<object runat="server" id = "sa" scope = "page" classid = "clsid:13709620-C279-11CE-A49E-444553540000"></object>
当然其它别的网马,基本调用的都是CLSID了,你可以随便找一些网马来看。
不过在vbs中好像不可以直接调用classid,放在wsf文件中就可以,当然是html之类的更无所谓了。
这里只是简单说一下,如果你要看图文的教程,可以看一下这个: