欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-07-04 20:50:17
先举个例子,最近的flash网马调用: var flashver = (new activexobject("shockwavefl...
先举个例子,最近的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之类的更无所谓了。
这里只是简单说一下,如果你要看图文的教程,可以看一下这个: