病毒是脚本吗
A. 脚本、文件感染和宏病毒之间的区别
脚本病毒:脚本病毒通常是javaScript代码编写的恶意代码, 一般带有广告性质,会修改您的IE首页、修改注册表等信息,造成用户使用计算机不方便。
木马病毒:“木马”程序是目前比较流行的病毒文件,与一般的病毒不同,它不会自我繁殖,也并不“刻意”地去感染其他文件,它通过将自身伪装吸引用户下载执行,向施种木马者提供打开被种者电脑的门户,使施种者可以任意毁坏、窃取被种者的文件,甚至远程操控被种者的电脑。
宏病毒:宏病毒是一种寄存在文档或模板的宏中的计算机病毒。一旦打开这样的文档,其中的宏就会被执行,于是宏病毒就会被激活,转移到计算机上,并驻留在Normal模板上。从此以后,所有自动保存的文档都会“感染”上这种宏病毒,而且如果其他用户打开了感染病毒的文档,宏病毒又会转移到他的计算机上。
B. 什么叫脚本病毒
脚本病毒通常是JavaScript代码编写的恶意代码,
一般带有广告性质,会修改您的IE首页、修改注册表等信息,造成用户使用计算机不方便。
http://tech.163.com/04/1125/10/161E2F1L000915E9.html
这个上很详细。
C. 计算机病毒实质上是一种脚本语言吗
计算机病毒
说白了和普通程序一样
只不过他实现的功能
对一般人而言都是恶意的
和语言无关
D. 什么是脚本病毒
脚本病毒通常是JavaScript代码编写的恶意代码,
一般带有广告性质,会修改您的IE首页、修改注册表等信息,造成用户使用计算机不方便。
E. 网页病毒和脚本病毒一样吗
不一样。网页病毒有可能是附带在该网页上的一些外挂木马,脚本病毒是在写程序时里面加入的代码。
F. 脚本病毒什么意思
脚本病毒,其前缀是Script,其共有特性是使用脚本语言编写,通过网页进行传播,如红色代码(Script.Redlof)。
G. 什么叫脚本病毒又何危害
脚本病毒
这类病毒编写最为简单,但造成的危害非常大。我们常见的浏览了xx站点就被改了主页,在收藏夹里被添加上很多无谓的东西,就是拜这类病毒所赐。
病毒描述:这类病毒的本质是利用脚本解释器的检查漏洞和用户权限设置不当进行感染传播;病毒本身是ascii码或者加密的ascii码,通过特定的脚本解释器执行产生规定行为,因其行为对计算机用户造成伤害,因此被定性为恶意程序。最常见的行为就是修改用户主页,搜索页,修改用户收藏夹,在每个文件夹下放置自动执行文件拖慢系统速度等;比较出名的如美利莎邮件病毒、新欢乐时光病毒、office的宏病毒等都属于这类。
病毒浅析:为了完成一些自动化的任务,需要用程序方式来实现。但复杂的程序编写又不是非程序人员能够胜任的。为了提高工作效率,方便用户操作,加强系统特性,于是许多软件/操作系统都预留了接口给用户,用简单的方法编写一些完成一定功能的小程序。程序本身是ascii码的,不编译,直接解释执行,在调试/修改使用上相当简便,虽然牺牲一定效率,但是换来了易用性。这本是一个良好的愿望,但太多的时候,这没有起到积极的作用,反而为脚本病毒编写者提供了良机。
以web病毒为例,由于用户缺乏安全意识用错误的权限登陆,导致ie中的解释器使用wsh可以操作硬盘上的文件和注册表,而javascript和vbscript调用wsh是很容易的事情——于是恶意脚本的作者只需要让你访问该页面,就能在你本地写上一些恶意的脚本,在注册表里修改你的主页/搜索项了。而利用ie的activex检查漏洞,则可以在不提示地情况下从网络上下载文件并自动执行——这就成了木马攻击的前奏曲;利用mime头漏洞,则可以用一个以jpg结尾的url中,指向一个事实上的web页,然后在web页中内嵌图片+恶意代码的方式迷惑计算机用户;利用outlook自动读去eml的特性和mime头检查不严格来执行恶意2进制代码;利用本地硬盘上有执行autorun.inf的特性(这功能本来是光驱用的,我们的光盘之所以放进去就能自动读出程序,就是光盘上有个名为autorun.inf文件起的作用,它是个文本文件,各位可以看看)把一些需要加载的程序写到该文件下导致每次访问该分区的时候就会自动运行;利用windows下会优先读取folder.htt和desktop.ini的特性,将恶意代码写入其中,导致访问任何一个文件夹的时候都会启动该病毒,再配合上锁定注册表的功能,杀除起来异常麻烦——不复杂,但是相当烦琐,一不留意没杀干净一处,又导致死灰复燃,前功尽弃。
病毒自查:上面有提到,这类病毒一般以捣乱居多,所以特别容易发现。而其另一个作用是作为木马进驻系统的先遣部队,利用浏览器漏洞等达到下载木马文件到本地硬盘,并修改启动项,达到下次启机运行的目的。因此一旦发现木马的同时,也可以检查一下是不是有些可疑的脚本文件。
病毒查杀:这类病毒一般来说由于其编写灵活,源代码公开,所以衍生版本格外地多;杀毒软件/木马杀除软件对待这类病毒大多没用。而由于脚本病毒(除宏病毒外)大多是独立文件,只要将这些文件查找出来删除掉就行了。不过这里值得留意的是,利用微软的浏览器的漏洞,在点击选择某些文件的同时就自动执行了,甚至打开浏览器的同时脚本病毒就开始驻留感染——这样是无法杀除干净的。
正确的做法是使用其他第三方的资源浏览器,例如Total Command就是一个非常不错的选择。查杀大致过程如下:首先,在资源浏览器——工具——文件夹选项中,将“使用Windows传统风格的桌面”取消掉,在桌面上点右键,点“属性”——“桌面设置”,将使用活动桌面取消,接着查杀可疑对象;常见查杀对象:各个根分区下的autorun.inf,各个目录下的desktop.ini和folder.htt(有几个是系统自带的,不过删除了也无关系的),这一步最好采用第三方的资源浏览器,例如前面介绍的Total Command来完成。在这一步,最忌讳查杀不净,即使有一个病毒遗漏,很快就又遍布各个文件夹内了。关于邮件病毒的杀除使用专杀工具就行了。
病毒残留:纯粹脚本病毒在杀除后不会有任何残留,但由于目前的病毒大都采用复合形态,捆绑多种传染方式和多种特性,因此不少脚本病毒只是将用户机器的安全防线撕开的前奏——真正的破坏主力木马、蠕虫尾随其后进入系统,因此在杀除掉脚本病毒后,非常有必要连带着检查系统中是否已经有了木马和蠕虫病毒。
病毒防御:脚本病毒的特性之一就是被动触发——因此防御脚本病毒最好的方法是不访问带毒的文件/web网页,在网络时代,脚本病毒更以欺骗的方式引诱人运行居多。由于ie本身存在多个漏洞,特别是执行activex的功能存在相当大的弊端,最近爆出的重大漏洞都和它有关,包括mozilla的windows版本也未能幸免。因此个人推荐使用myie2软件代替ie作为默认浏览器,因为myie2中有个方便的功能是启用/禁用web页面的activex控件,在默认的时候,可以将页面中的activex控件全部禁用,待访问在线电影类等情况下根据自己的需要再启用。关于邮件病毒,大多以eml作为文件后缀的,如果您单机有用outlook取信的习惯,最好准备一个能检测邮件病毒的杀毒软件并及时升级。如果非必要,将word等office软件中的宏选项设置为禁用。脚本病毒是目前网络上最为常见的一类病毒,它编写容易,源代码公开,修改起来相当容易和方便,而且往往给用户造成的巨大危害。
以上4类程序的介绍,为了降低学习难度,我是单态方式来介绍的。事实上目前的病毒大多以具有上面4类程序中的2到3类的特征,因此无论感染,传播,杀除的困难都大大增加。例如发文前夕的mydoom新变种病毒的分析中:它利用系统漏洞/邮件群发/共享漏洞方式传播(具备了蠕虫、脚本病毒和新型病毒的传播特性),进驻用户系统后上载自身并运行(木马特性),获取用户本地outlook中的地址本(木马特性),通过调用google等搜索引擎获取用户email地址本中同后缀的相关选项(调用系统程序,木马功能),再主动给地址本中的每个程序发出email(木马特性)。对待这样一个病毒,无论是系统存在漏洞、共享安全设置不当、或者随意地打开了“朋友”发来的email,都可能导致中毒。关于中毒途径的分析,留待下一站《攻击防御之旅》内一并介绍。
在从第一个病毒出现到现在,已经有整整半个世纪了,病毒的发展日新月异,令查杀的困难大大增加,造成的损失也异常巨大。或许,计算机病毒这个幽灵,从计算机诞生的那一刻起就注定要如影相随的。只要还有用心险恶的人存在,那么病毒就不会消亡。病毒之战,恐怕会在今后的日子里越演越烈……
H. 什么是脚本病毒啊
脚本病毒通常是JavaScript代码编写的恶意代码,
一般带有广告性质,会修改您的IE首页、修改注册表等信息,造成用户使用计算机不方便。
至于你说的那个,只要是杀毒查出来的,不管他,杀了!
I. 什么是“脚本病毒”
网络的流行,让我们的世界变得更加美好,但它也有让人不愉快的时候。当您收到一封主题为“I Love You”的邮件,用兴奋得几乎快发抖的鼠标去点击附件的时候;当您浏览一个信任的网站之后,发现打开每个文件夹的速度非常慢的时候,您是否察觉病毒已经闯进了您的世界呢?2000年5月4日欧美爆发的“爱虫”网络蠕虫病毒。由于通过电子邮件系统传播,爱虫病毒在短短几天内狂袭全球数百万计的电脑。微软、Intel等在内的众多大型企业网络系统瘫痪,全球经济损失达几十亿美元。而去年爆发的新欢乐时光病毒至今都让广大电脑用户更是苦不堪言。
上面提及的两个病毒最大的一个共同特点是:使用VBScript编写。以爱虫和新欢乐时光病毒为典型代表的VBS脚本病毒十分的猖獗,很重要的一个原因就是其编写简单。下面我们就来逐一对VBS脚本病毒的各个方面加以分析:
一、Vbs脚本病毒的特点及发展现状
VBS病毒是用VB Script编写而成,该脚本语言功能非常强大,它们利用Windows系统的开放性特点,通过调用一些现成的Windows对象、组件,可以直接对文件系统、注册表等进行控制,功能非常强大。应该说病毒就是一种思想,但是这种思想在用VBS实现时变得极其容易。VBS脚本病毒具有如下几个特点:
1.编写简单,一个以前对病毒一无所知的病毒爱好者可以在很短的时间里编出一个新型病毒来。
2.破坏力大。其破坏力不仅表现在对用户系统文件及性能的破坏。他还可以使邮件服务器崩溃,网络发生严重阻塞。
3.感染力强。由于脚本是直接解释执行,并且它不需要像PE病毒那样,需要做复杂的PE文件格式处理,因此这类病毒可以直接通过自我复制的方式感染其他同类文件,并且自我的异常处理变得非常容易。
4.传播范围大。这类病毒通过htm文档,Email附件或其它方式,可以在很短时间内传遍世界各地。
5.病毒源码容易被获取,变种多。由于VBS病毒解释执行,其源代码可读性非常强,即使病毒源码经过加密处理后,其源代码的获取还是比较简单。因此,这类病毒变种比较多,稍微改变一下病毒的结构,或者修改一下特征值,很多杀毒软件可能就无能为力。
6.欺骗性强。脚本病毒为了得到运行机会,往往会采用各种让用户不大注意的手段,譬如,邮件的附件名采用双后缀,如.jpg.vbs,由于系统默认不显示后缀,这样,用户看到这个文件的时候,就会认为它是一个jpg图片文件。
7.使得病毒生产机实现起来非常容易。所谓病毒生产机,就是可以按照用户的意愿,生产病毒的机器(当然,这里指的是程序),目前的病毒生产机,之所以大多数都为脚本病毒生产机,其中最重要的一点还是因为脚本是解释执行的,实现起来非常容易,具体将在我们后面谈及。
正因为以上几个特点,脚本病毒发展异常迅猛,特别是病毒生产机的出现,使得生成新型脚本病毒变得非常容易。
J. 什么是脚本病毒WINDOWS下的PE病毒
脚本病毒通常是JavaScript代码编写的恶意代码,
一般带有广告性质,会修改您的IE首页、修改注册表等信息,造成用户使用计算机不方便。
PE病毒是指所有感染Windows下PE文件格式文件的病毒.
PE病毒大多数采用Win32汇编编写.
PE病毒对于一个热衷于病毒技术的人来说,是必须掌握的.
只有在PE病毒中,我们才能真正感受到高超的病毒技术.
编写Win32病毒的几个关键
Api函数的获取
不能直接引用动态链接库
需要自己寻找api函数的地址,然后直接调用该地址
一点背景:在PE Loader装入我们的程序启动后堆栈顶的地址是是程序的返回地址,肯定在Kernel中! 因此我们可以得到这个地址,然后向低地址缩减验证一直到找到模块的起始地址,验证条件为PE头不能大于4096bytes,PE header的ImageBase值应该和当前指针相等.
病毒没有.data段,变量和数据全部放在.code段
编写Win32病毒的几个关键
偏移地址的重定位
Call delta
delta: pop ebp
sub ebp,offset delta
那么变量var1的真正偏移地址为:var1+ebp
对PE文件格式的了解
编写Win32病毒的几个关键
病毒如何感染其他文件
在文件中添加一个新节
该新节中添加病毒代码和病毒执行后的返回Host程序的代吗
修改文件头中代码开始执行位置(AddressOfEntryPoint)指向新添加的节,以便程序运行后先执行病毒代码.
PE病毒感染其他文件的方法还有很多,譬如PE病毒还可以将自己分散插入到每个节的空隙中等等,这里不在一一叙述.
PE文件格式一览
Section n
Section ...
Section 2
Section 1
Section table
PE header
DOS stub
DOS MZ header
PE header
Pe header 由三部分组成
字串 "PE\0\0"(Signature)
映像文件头(FileHeader)
可选映像头(OptionalHeader)
字串 "PE\0\0"
Signature 一dword类型,值为50h, 45h, 00h, 00h(PE\0\0). 本域为PE标记,我们可以此识别给定文件是否为有效PE文件.
这个字串在文件中的位置(e_lfanew),可以在DOS程序头中找到它的指针,它占用四个字节,位于文件开始偏移3CH字节中.
映像文件头
该结构域包含了关于PE文件物理分布的信息, 比如节数目,文件执行机器等.
它实际上是结构IMAGE_FILE_HEADER的简称.
映像文件头结构
IMAGE_FILE_HEADER STRUCT
___ Machine WORD
___ NumberOfSections WORD
___ TimeDateStamp dd
___ PointerToSymbolTable dd
___ NumberOfSymbols dd
___ SizeOfOptionalHeader WORD
___ Characteristics WORD
IMAGE_FILE_HEADER ENDS
映像文件头的基本信息
关于文件信息的标记,比如文件是exe还是dll
2
Characteristics *
7
可选头的大小
2
SizeOfOptionalHeader
6
符号数目
4
NumberOfSymbols
5
COFF符号表的偏移
4
PointerToSymbleTable
4
生成该文件的时间
4
TimeDataStamp
3
文件中节的个数
2
NumberOfSection **
2
机器类型,x86为14ch
2
Machine *
1
描述
大小(字节)
名字
顺序
可选映像头
optional header 结构是 IMAGE_NT_HEADERS 中的最后成员.包含了PE文件的逻辑分布信息.该结构共有31个域,一些是很关键,另一些不太常用.这里只介绍那些真正有用的域.
这儿有个关于PE文件格式的常用术语: RVA
RVA 代表相对虚拟地址.它是相对虚拟空间里的一个地址 .
举例说明,如果PE文件装入虚拟地址(VA)空间的400000h处,且进程从虚址401000h开始执行,我们可以说进程执行起始地址在RVA 1000h.每个RVA都是相对于模块的起始VA的.
可选映像头
文件中节对齐的粒度.
FileAlignment
内存中节对齐的粒度.
SectionAlignment
PE文件的优先装载地址.比如,如果该值是400000h,PE装载器将尝试把文件装到虚拟地址空间的400000h处.若该地址区域已被其他模块占用,那PE装载器会选用其他空闲地址.
ImageBase
PE装载器准备运行的PE文件的第一个指令的RVA.若要改变整个执行的流程,可以将该值指定到新的RVA,这样新RVA处的指令首先被执行.
AddressOfEntryPoint *
描述
名字
可选映像头
NT用来识别PE文件属于哪个子系统.
Subsystem
一IMAGE_DATA_DIRECTORY 结构数组.每个结构给出一个重要数据结构的RVA,比如引入地址表等.
DataDirectory
所有头+节表的大小,也就等于文件尺寸减去文件中所有节的尺寸.可以以此值作为PE文件第一节的文件偏移量.
SizeOfHeaders
内存中整个PE映像体的尺寸.
SizeOfImage
win32子系统版本.若PE文件是专门为Win32设计的,该子系统版本必定是4.0否则对话框不会有3维立体感.
MajorSubsystemVersion
MinorSubsystemVersion
描述
名字
DataDirectory数据目录
一个IMAGE_DATA_DIRECTORY数组,里面放的是这个可执行文件的一些重要部分的RVA和尺寸,目的是使可执行文件的装入更快,数组的项数由上一个域给出.IMAGE_DATA_DIRECTORY包含有两个域,如下:
IMAGE_DATA_DIRECTORY
VitualAddress DD
Size DD
IMAGE_DATA_DIRECTORY ENDS
节表
节表其实就是紧挨着 PE header 的一结构数组.该数组成员的数目由 file header (IMAGE_FILE_HEADER) 结构中 NumberOfSections 域的域值来决定.节表结构又命名为 IMAGE_SECTION_HEADER.
结构中放的是一个节的信息,如名字,地址,长度,属性等.
IMAGE_SECTION_HEADER
本节原始数据在文件中的位置
4
PointerToRawData *
5
本节的原始尺寸
4
SizeOfRawData *
4
这个值+映像基地址=本节在内存中的真正地址.OBJ中无意义.
4
Virtual *
3
OBJ文件用作表示本节物理地址EXE文件中表示节的真实尺寸
4
PhysicalAddress或VirtualSize
2
节名
8
Name *
1
描述
大小(字节)
名字
顺序
IMAGE_SECTION_HEADER
节属性
4
Characteristics *
10
本节在行号表中的行号数目
2
NumberOfLinenumbers
9
本节要重定位的数目
2
NumberOfRelocations
8
行号偏移
4
PointerToLinenumbers
7
OBJ中表示该节重定位信息的偏移EXE文件中无意义
4
PointerToRelocations
6
描述
大小(字节)
名字
顺序
节
"节(Section)"跟在节表之后,一般PE文件都有几个"节".比较常见的有:
代码节
已初始化的数据节
未初始化的数据节
资源节
引入函数节
引出函数节
代码节
代码节一般名为.text或CODE,该节含有程序的可执行代码.
每个PE文件都有代码节
在代码节中,还有一些特别的数据,是作为调用映入函数之用.如:
Call MessageBoxA的调用,反汇编后该指令被换为call 0040101A,而地址0040101A仍在.text中,它放有一个跳转指令jmp dword ptr[0040304c],即这条跳转指令的目的地址处于.idata节中的0040304C处,其中放的才是MessageBoxA的真正地址,如下图:
已初始化的数据节
这个节一般取名为.data或DATA
已初始化的数据节中放的是在编译时刻就已确定的数据.如Hello World 中的字符串"Hello World!".
未初始化的数据节
这个节的名称一般叫.bbs.
这个节里放有未初始化的全局变量和静态变量.
资源节
资源节一般名为.rsrc
这个节放有如图标,对话框等程序要用到的资源.
资源节是树形结构的,它有一个主目录,主目录下又有子目录,子目录下可以是子目录或数据.
都是一个IMAGE_RESOURCE_DIRECTORY结构.结构如下:
IMAGE_RESOURCE_DIRECTORY 结构
以ID标识的资源数
2
NumberOfldEntries
6
以名字标识的资源数
2
NumberOfNamedEntries
5
次版本号
2
MinorVersion
4
主版本号
2
MajorVersion
3
资源生成时间
4
TimeDateStamp
2
通常为0
4
Characteritics
1
描述
大小(字节)
名字
顺序
引入函数节
一个引入函数是被某模块调用的但又不在调用者模块中的函数
这个节一般名为.idata,也叫引入表.
它包含从其它(系统或第三方写的)DLL中引入的函数,例如user32.dll,gdi32.dll等.
它的开始是一个IMAGE_IMPORT_DESCRIPTOR数组.这个数组的长度不定,但他的最后一项是全0,可以以此判断数组的结束.
引出函数节
什么是引出函数节
引出函数节是用来向系统提供导出函数的名称,序号和入口地址等信息,以便Windows装载器通过这些信息来完成动态链接的过程.
了解引出函数节对于学习病毒来说,是极为重要的.
Api函数地址的获取与引出函数节息息相关.
引出函数节
通过Api函数名查找其地址
(1)定位到PE文件头
(2)从PE文件头中的课选文件头中取出数剧目录表的第一个数据目录,得到导出表的地址.
(3)从导出表的NumberOfNames字段得到以命名函数的总数,并以这个数字做微循环的次数来构造一个循环.
(4)从AddressOfNames字段指向的函数名称地址表的第一项开始,在循环中将每一项定义的函数名与要查找的函数名比较,如果没有任何一个函数名符合,说明文件中没有指定名称的函数.
(5)如果某一项定义的函数名与要查找的函数名符合,那么记住这个函数名在字符串地址表中的索引值,然后在AddressOfNameOrdinals指向的数组中以同样的索引值去除数组项的值,假如该值为m.
(6)以m值作为索引值,在AddressOfFunctions字段指向的函数入口地址表中获取的RVA就是函数的入口地址,当函数被装入内存后,这个RVA值加上模块实际装入的基址(ImageBase),就得到了函数真正的入口地址.
