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)

相关推荐

  • VBS的各种应用的比较实用小代码

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

  • SendTo增强版 批处理实用小工具

    这是我用批处理制作的小软件,其中涉及到的知识点有注册表的查询添加.添加环境变量.动态显示选择提示.以及怎么在批处理中使用配置文件等等的内容.由于功能比较多,我虽然做了很多的测试但仍然不能保证不出问题,有问题.建议.以及代码的讨论欢迎跟贴.由于批处理的功能有限,软件自带两个命令行小工具,单纯的用批处理实现是不可能的,希望有能力并感兴趣的朋友能不能做个 VBS 脚本版的.祝大家节日快乐. 附图一张 帮助: 本软件是用批处理制作的实用小工具,安装后会给"发送到"增加一些实用的特性,如:复制文

  • Kotlin开发的一些实用小技巧总结

    前言 随着Google I/O大会的召开,Google宣布将支持Kotlin作为Android的开发语言,最近关于Kotlin的文章.介绍就异常的活跃. 本文主要给大家介绍了关于Kotlin开发的一些实用小技巧,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 1.Lazy Loading(懒加载) 延迟加载有几个好处.延迟加载能让程序启动时间更快,因为加载被推迟到访问变量时. 这在使用 Kotlin 的 Android 应用程序而不是服务器应用程序中特别有用.对于 Androi

  • JavaScript编程的10个实用小技巧

    在这篇文章中,我将列出10个Javascript实用小技巧,主要面向Javascript新手和中级开发者.希望每个读者都能至少从中学到一个有用的技巧. 1.变量转换 看起来很简单,但据我所看到的,使用构造函数,像Array()或者Number()来进行变量转换是常用的做法.始终使用原始数据类型(有时也称为字面量)来转换变量,这种没有任何额外的影响的做法反而效率更高. 复制代码 代码如下: var myVar   = "3.14159",str     = ""+ m

  • 总结MySQL建表、查询优化的一些实用小技巧

    MySQL建表阶段是非常重要的一个环节,表结构的好坏.优劣直接影响着后续的管理维护,赶在明天上班前分享总结个人MySQL建表.MySQL查询优化积累的一些实用小技巧. 技巧一.数据表冗余记录添加时间与更新时间 我们用到的很多数据表大多情况下都会有表记录的"添加时间(add_time)",我建议大家再新增一个记录"更新时间(update_time)"字段,在我的工作里需要为市场部.运营部等建立各种报表,而很多报表里的数据都是需要到大记录表里去查询的,如果直接查询大表的

  • jQuery实用小技巧_输入框文字获取和失去焦点的简单实例

    jQuery实用小技巧_输入框文字获取和失去焦点的简单实例 <input id="txt" class="text1" type="text" /> <script src="js/jquery-1.7.1.min.js"></script> <script type="text/javascript"> $(function () { $("inp

  • Java Web十条开发实用小知识

     1.${ctx}与 ${pageContext.request.contextPath}这两个为一个意思,都是获取当前根目录. 不同的是${ctx}为${pageContext.request.contextPath}的简写版,经查证之后果真如此,发现在项目的一个文件内有这样一段话 的配置 复制代码 代码如下: <c:setvar="ctx"value="${pageContext.request.contextPath}"/> 注意在使用${ctx的

  • 常用的10个Python实用小技巧

    大家好,都说追女孩方法大于态度,学Python也是,今天就给大家分享的是我在用Python编写程序时常用的一些小技巧. 1.多次打印同一个字符 在Python中,不用特地写一个函数来重复打印同一个字符,直接使用Print就可以 tem = 'I Love Python ' print(tem * 3) I Love Python I Love Python I Love Python 2.在函数内部使用生成器 在写Python程序时,我们可以在函数内部直接使用生成器,这样可以使代码更简洁. su

  • pandas参数设置的实用小技巧

    前言 在日常使用pandas的过程中,由于我们所分析的数据表规模.格式上的差异,使得同样的函数或方法作用在不同数据上的效果存在差异. 而pandas有着自己的一套参数设置系统,可以帮助我们在遇到不同的数据时灵活调节从而达到最好的效果,本文就将介绍pandas中常用的参数设置方面的知识. 图1 1 设置DataFrame最大显示行数 pandas设置参数中的display.max_rows用于控制打印出的数据框的最大显示行数,我们使用pd.set_option()来有针对的设置参数,如下面的例子:

  • 你可能不知道的typescript实用小技巧

    目录 前言 函数重载 映射类型 Partial, Readonly, Nullable, Required Pick, Record Exclude, Omit ReturnType 类型断言 枚举 元组 范型 infer 总结 前言 用了很久的 typescript,用了但感觉又没完全用.因为很多 typescript 的特性没有被使用,查看之前写的代码满屏的 any,这样就容易导致很多 bug,也没有发挥出 typescript 真正的"类型"威力.本文总结了一些使用 typesc

随机推荐