如何写论文?写好论文?免费论文网提供各类免费论文写作素材!
当前位置:免费论文网 > 美文好词 > 优质好文 > vbs脚本病毒代码

vbs脚本病毒代码

来源:免费论文网 | 时间:2017-05-10 07:38 | 移动端:vbs脚本病毒代码

篇一:vb脚本病毒

一.脚本病毒概述

脚本程序的执行环境需要WSH(Windows Script Host,Windows脚本宿主)环境,WSH为宿主脚本创建环境。即当脚本到达计算机时,WSH充当主机的部分,它使对象和服务可用于脚本,并提供一系列脚本执行指南。

WSH是微软提供的一种基于32位Windows平台的、与语言无关的脚本解释机制,它使得脚本能够直接在Windows桌面或命令提示符下运行。利用WSH用户能够操纵WSH对象、ActiveX对象、注册表和文件系统,还可以访问活动目录服务。WSH依赖于IE提供的Visual BasicScript和JavaScript脚本引擎,所对应的程序“C:\Windows\wscript.exe”是一个脚本语言解释器。 Visual BasicScript和JavaScript作为客户端编程语言,当一个以该语言编制的程序被下载到一个兼容的浏览器中时,浏览器将自动执行该程序。

“爱虫”、“欢乐时光”、“尼姆达”、“求职信”等病毒都是属于这一类的病毒。 脚本病毒的主要特点:

(1)由于脚本是直接解释执行,可以直接通过自我复制的方式感染其它同类文件,并且使异常处理变得非常容易。

(2)脚本病毒通过HTML文档、Email附件或其它方式,可以在很短的时间内传遍世界各地,通常是使用在邮件附件中安置病毒本体的方法,然后利用人们的好奇心,通过邮件主题或邮件内容诱骗人们点击附件中的病毒体而被感染。

(3)新型的邮件病毒邮件正文即为病毒,用户接收到带毒邮件后,即使不将邮件打开,只要将鼠标指向邮件,通过预览功能病毒也会被自动激活。

(4)病毒源码容易被获取,变种多。由于VBS病毒解释执行,其源码可读性好,即使病毒源码经过加密处理后,其源码的获取还是比较简单。因此,这类病毒稍微改变一下病毒的结构或者特征值,很多杀毒软件可能就无能为力了。

(5)欺骗性强。脚本病毒为了得到运行机会,往往会采用各种让用户不太注意的手段,譬如,邮件的附件采用双后缀,如jpg.vbs或txt.vbs,由于系统默认不显示后缀,这样,用户看到此文件时就会认为它是一个jpg图片或文本文件。

二.爱虫病毒分析

1.病毒简介

“爱虫”(VBS.LoveLetter)病毒从2000年5月4日开始在欧洲大陆迅速传播,并向全世界蔓延。该病毒别名叫做LoveLetter、LoveBug、VeryFunny。它采用VBScript编写,其传播原理是通过Microsoft Outlook将名为“LOVE-LETTER-FOR-YOU.TXT.vbs”的邮件发送给用户地址薄里所有的地址。它可以产生Script.ini文件,将包括病毒的LOVE-LETTER-FOR-YOU.HTM文件通过mIRC蔓延到Internet聊天室中。该病毒还有多个发作破坏模块,查找本地驱动器和网络驱动器,在所有目录和子目录中搜索可以感染的目标

如:.vbs、.vbe、.js、.jse、.css、.wsh、.sct、.hta、.jpg、.jpeg、.wav、.txt、.gif、.doc、.htm、 .html、.xls、.ini、.bat、.com、.mp3、.mp2等,它用病毒代码覆盖原有的内容,并在文件名后面添加.vbs的扩展名,从而取代宿主文件。.mp2和.mp3文件被隐藏起来,并未破坏。 当病毒运行后会在系统中留下以下文件:

(1)\windows\Win32DLL.vbs;

(2)\system\MSKernel.vbs;

(3)\system\LOVE-LETTER_FOR_YOU.TXT.vbs。

该病毒还修改注册表中的一些路径以便在启动Windows时运行。它还在\windows\system下搜索名为WINFAT32.exe的文件,如果该文件不存在,则修改IE的默认初始页面下载

WIN-BUGSFIX.exe的文件,并修改注册键值为:

HKLM\Software\Microsoft\Windows\CurrentVersiion\Run\WIN-BUGSFIX。

该病毒已经有很多变种,并被反病毒厂家定为高危险性病毒。所以,提醒用户在接收电子邮件之前,一定要先升级自己的杀毒软件,拦截住这种破坏性很大的病毒。另外,广大用户除了不要冒然打开不明真相的英文邮件及附件外,最好也不要浏览陌生网站和下载其中内容。

2.病毒的杀毒步骤

(1)在Windows下查看进程列表中是否有wscript这个文件,如有此文件说明已经感染。将该文件“结束任务”。

(2)进入C:\Windows\System中,运行MSCONFIG.EXE选择“启动”模板,将所有的后缀为“*.vbs”的文件选择为禁用状态。

(3)在保证内存中无wscript这个文件后,重启计算机。

(4)查找一个叫WIN-BUGFIX.exe的文件并删除它,如果安装了mIRC则删除script.ini文件,删除含LOVE-LETTER-FOR-YOU.TXT附件的Email。

(5)打开注册表编辑器并删除下列键值:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\MSKernel32; HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServer\Win32DLL; HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\WIN-BUGFIX。

3.病毒各模块功能介绍

爱虫病毒的结构化做得很好,各个模块功能非常独立,彼此并不相互依赖,流程也非常清楚,下面对每个函数过程的功能作一简单介绍。

(1)Main

爱虫病毒的主模块,它集成调用其它各个模块。

(2)regruns

该模块主要用来修改注册表Run下面的启动项指向病毒文件、修改下载目录,并负责随机从

给定的4个网址中下载WIN-BUGFIX.exe文件,并使启动项指向该文件。

(3)html

该模块主要用来生成LOVE-LETTER-FOR-YOU.HTM文件,该HTM文件执行后会执行里面的病毒代码,并在系统目录生成一个病毒副本MSKernel32.vbs文件。

(4)spreadtoemail

该模块主要用于将病毒文件作为附件发送给Outlook地址薄中的所有用户,也是破坏性最大的一个模块。

(5)listadriv

该模块主要用于搜索本地磁盘,并对磁盘文件进行感染。它调用了folderlist()函数,该函数主要用来遍历整个磁盘,对目标文件进行感染。folderlist()函数的感染功能实际上是调用了infectfile()函数。infetcfile()可以对十余种文件进行覆盖,并且还会创建script.ini文件,以便于利用IRC通道进行传播。

4.脚本病毒的预防和清除

脚本病毒的运行和传播有如下特点:

(1)VBS代码是通过Windows Script Host来解释执行的。

(2)VBS病毒的运行需要其关联程序Wscript.exe的支持。

(3)大部分VBS病毒运行的时候需要用到一个对象:FileSystemObject。

(4)通过网页传播的脚本病毒需要ActiveX的支持。

(5)通过Email传播的病毒需要OE的自动发送邮件功能支持。

防范脚本病毒措施有:

(1)卸载Windows Scripting Host

打开“控制面板”|“添加/删除程序”|“Windows安装程序”|“附件”|取消“Windows

Scripting Host”一项。

(2)禁用文件系统对象FileSystemObject

用regsvr32 scrrun.dll /u这条命令就可以禁止文件系统对象。其中regsvr32是Windows\System下的可执行文件。或者直接查找scrrun.dll文件删除或者改名。

(3)在Windows目录中,找到WScript.exe,更改名称或者删除。

(4)设置浏览器。首先打开浏览器,单击菜单栏里“Internet选项”安全选项卡里的“自定义级别”按钮。把“ActiveX控件及插件”的一切设为禁用。

(5)禁止OE的自动收发邮件功能。

三.svir病毒专杀设计分析

1.svir.vbs脚本病毒特征

svir.vbs病毒具备爱虫病毒的部分功能,是以爱虫病毒为基础,减弱其破坏性,并将感染范围控制到一定的范围内的模拟病毒。使用记事本打开文件

C:\ExpNIS\AntiVir-Lab\Virus\ScriptVir\svir.vbs根据爱虫病毒原理和源代码中的相关注释了解它的工作原理和感染现象。

2.脚本病毒专杀工具设计

VBS是一种较为常用的脚本语言,它语法简单而且功能强大,我们下面介绍如何使用VBS脚本语言编程实现脚本病毒专杀工具。

为了使程序更清晰易懂,我们应使用模块化设计,也易于为程序扩展新功能。我们将专杀工具分为四个功能模块,各模块的作用分别是删除病毒文件、删除病毒添加的自启动项、查杀指定目录下的病毒文件和结束病毒进程。

3.结束病毒进程

在查杀病毒时应该首先结束病毒的进程再进行其它操作,但我们现在查杀的是脚本病毒,使

篇二:脚本病毒实验

桂林电子科技大学

数学与计算科学学院实验报告

实验室:06303实验日期:2014年 10月 21日

篇三:常用vbs脚本

1 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") ’创建一个能与操作系统沟通的对象WSHShellDim 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()

2 VBS

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脚本病毒的目的。

3 如何确定哪些 USB 设备已连接到计算机上?

strComputer = "."

Set objWMIService = GetObject("winmgmts://" & strComputer & "/root/cimv2")

Set colDevices = objWMIService.ExecQuery _

("Select * From Win32_USBControllerDevice")

For Each objDevice in colDevices

strDeviceName = objDevice.Dependent

strQuotes = Chr(34)

strDeviceName = Replace(strDeviceName, strQuotes, "")

arrDeviceNames = Split(strDeviceName, "=")

strDeviceName = arrDeviceNames(1)

Set colUSBDevices = objWMIService.ExecQuery _

("Select * From Win32_PnPEntity Where DeviceID = '" & strDeviceName & "'")

For Each objUSBDevice in colUSBDevices

Wscript.Echo objUSBDevice.Description

Next

Next

4 如何在指定的一段时间后自动消除消息框?

Const wshYes = 6

Const wshNo = 7

Const wshYesNoDialog = 4

Const wshQuestionMark = 32

Set objShell = CreateObject("Wscript.Shell")

intReturn = objShell.Popup("Do you want to delete this file?", _

10, "Delete File", wshYesNoDialog + wshQuestionMark)

If intReturn = wshYes Then

Wscript.Echo "You clicked the Yes button."

ElseIf intReturn = wshNo Then

Wscript.Echo "You clicked the No button."

Else

Wscript.Echo "The popup timed out."

End If

5 回复 4:如何在指定的一段时间后自动消除消息框?

Const wshYes = 6

Const wshNo = 7

Const wshYesNoDialog = 4

Const wshQuestionMark = 32

Set objShell = CreateObject("Wscript.Shell")

Set objFSO = CreateObject("Scripting.FileSystemObject")

intReturn = objShell.Popup("Do you want to delete this file?", _

10, "Delete File", wshYesNoDialog + wshQuestionMark)

If intReturn = wshNo Then

Wscript.Quit

End If

objFSO.DeleteFile("c:/scripts/test.vbs")

6 回复:VBS

/china/technet/community/scriptcenter/resources/qanda/default.mspx

7 如何在脚本中使用多选对话框?

Set objDialog = CreateObject("UserAccounts.CommonDialog")

objDialog.Filter = "VBScript Scripts|*.vbs|All Files|*.*"

objDialog.Flags = &H0200

objDialog.FilterIndex = 1

objDialog.InitialDir = "C:/Scripts"

intResult = objDialog.ShowOpen

If intResult = 0 Then

Wscript.Quit

Else

arrFiles = Split(objDialog.FileName, " ")

For i = 1 to Ubound(arrFiles)

strFile = arrFiles(0) & arrFiles(i)

Wscript.Echo strFile

Next

End If

8 如何确定计算机上是否存在某个文件夹?

Set objNetwork = CreateObject("Wscript.Network")

strUser = objNetwork.UserName

strPath = "C:/Documents and Settings/" & strUser & "/Application Data/Microsoft/Templates" Set objFSO = CreateObject("Scripting.FileSystemObject")

If objFSO.FolderExists(strPath) Then

Wscript.Echo "The folder exists."

Else

Wscript.Echo "The folder does not exist."

End If


vbs脚本病毒代码》由:免费论文网互联网用户整理提供;
链接地址:http://www.csmayi.cn/meiwen/35984.html
转载请保留,谢谢!
相关文章