Virus计算机病毒与防治重庆电子工程职业学院计算机病毒与防治课程小组教学单元4-4蠕虫病毒防治蠕虫病毒特点蠕虫病毒简介蠕虫病毒发展趋势第一讲Redcode蠕虫病毒剖析计算机病毒与防治课程小组Redcode病毒防治redcode病毒剖析蠕虫病毒简介计算机病毒与防治课程小组近年来,由蠕虫引发的安全事件此起彼伏,且有愈演愈烈之势。从2001年爆发的CodeRed蠕虫、Nimda蠕虫,SQL杀手病毒(SQLSLAMMER蠕虫),到近日肆掠的“冲击波”蠕虫病毒,无不有蠕虫的影子,并且开始与传统病毒相结合了。蠕虫通常会感染Windows2000!XP/Server2003系统,如果不及时预防,它们就可能会在几天内快速传播、大规模感染网络,对网络安全造成严重危害。看来,蠕虫不再是黑暗中隐藏的“黑手”,而是己露出凶相的“狼群”。1988年11月2日,Morris蠕虫发作,几天之内6000台以上的Internet服务器被感染,损失高达数百万美元。蠕虫时代……蠕虫病毒简介计算机病毒与防治课程小组1988年Morris蠕虫爆发后,EugeneH.Spafford为了区分蠕虫和传统病毒,给出了蠕虫的技术角度的定义,“计算机蠕虫可以独立运行,并能把自身的一个包含所有功能的版木传播到另外的计算机上。”蠕虫显示出类似于计算机病毒的一些特征,它同样也具有四个阶段:潜伏阶段传染阶段触发阶段发作阶段什么是蠕虫呢?蠕虫病毒特点计算机病毒与防治课程小组传统病毒蠕虫存在形式寄生独立存在复制机制插入到宿主程序中自身的拷贝传染机制宿主程序运行系统存在漏洞传染目标针对本地文件针对网络上的其他计算机触发传染计算机使用者程序自身影响重点文件系统网络性能、系统性能防止措施从宿主文件中清除为系统打补丁对抗主体计算机使用者、反病毒厂商系统提供商、网络管理人员蠕虫病毒和传统病毒的比较蠕虫病毒主要功能模块计算机病毒与防治课程小组蠕虫程序功能模型基本功能模块扩展功能模块搜索模块信息搜集模块繁殖模块攻击模块传输模块通信模块控制模块隐藏模块破坏模块蠕虫病毒发展趋势计算机病毒与防治课程小组1利用操作系统和应用程序的漏洞主动进行攻击。此类病毒主要是“红色代码”和“尼姆达”,以及至今依然肆虐的“求职信”等.由于IE浏览器的漏洞(IframeExeccomand),使得感染了“尼姆达”病毒的邮件在不去手工打开附件的情况下病毒就能激活。“红色代码”是利用了微软IIS服务器软件的漏洞(idq.dll远程缓存区溢出)来传播。SQL蠕虫王病毒则是利用了微软的数据库系统的一个漏洞进行大肆攻击!2传播方式多样如“尼姆达”病毒和“求职信”病毒,可利用的传播途径包括文件、电子邮件、Web服务器、网络共享等等。蠕虫病毒发展趋势计算机病毒与防治课程小组3病毒制作技术与传统的病毒不同的是,许多新病毒是利用当前最新的编程语言与编程技术实现的,易于修改以产生新的变种,从而逃避反病毒软件的搜索。另外,新病毒利用Java、ActiveX、VBScript等技术,可以潜伏在HTML页面里,在上网浏览时触发。4与黑客技术相结合,潜在的威胁和损失更大!以红色代码为例,感染后的机器的web目录的\scripts下将生成一个root.exe,可以远程执行任何命令,从而使黑客能够再次进入!CodeRed病毒剖析计算机病毒与防治课程小组病毒名称:CodeRed(红色代码)病毒,又名W32/Bady.worm病毒类型:蠕虫病毒危险级别:★★★★★病毒特点:该蠕虫感染运行MicrosoftIndexServer2.0的系统,或是在Windows2000、IIS中启用了IndexingService(索引服务)的系统。CodeRed病毒简介CodeRed病毒爆发过程计算机病毒与防治课程小组红色代码病毒爆发了!!!2001年6月18日微软公司宣布在IIS网络服务器软件中发现一个漏洞,而IIS软件是架设网站最基础的软件之一。7月13日一家名为“左岸系统”的公司称,几台服务器遭到一种新病毒的入侵,利用的正是IIS服务器软件的这个缺陷。7月16日发现微软软件漏洞的软件公司程序员把一种饮料名称赋予了这个病毒,称之为:红色代码(CodeRed)。7月18日午夜红色代码大面积暴发,被攻击的电脑数量达到35.9万台。被攻击的电脑中44%位于美国,11%在韩国,5%在中国,其余分散在世界各地。CodeRed病毒爆发过程计算机病毒与防治课程小组红色代码病毒爆发了!!!7月19日“红色代码”停止猛攻进入休眠期,不再进行大规模的活动。7月20日瑞星公司通过全球病毒监控网获得“红色代码”病毒样本。7月31日格林尼治时间午夜整点,“红色代码”将再度复活,在全球大面积蔓延,由于某些受感染的网站上出现“中国黑客入侵”的字样,国外媒体产生“病毒制造者是否来自中国”的猜测。7月19日这个名为“红色代码”的病毒开始疯狂攻击美国白宫网站,白宫网站管理员将白宫网站从原来的IP地址转移到另外一个地址,才幸免于难。然而灾难并没有结束,这个蠕虫病毒已复制变成10多万个,并且以每4.5小时400MB的速度大量发送垃圾信息。CodeRed病毒剖析计算机病毒与防治课程小组“红色代码”采用了一种叫做“缓存区溢出”的黑客技术,利用网络上使用微软IIS系统的服务器来进行病毒的传播。这个蠕虫病毒使用服务器的端口80进行传播,而这个端口正是Web服务器与浏览器进行信息交流的渠道。“红色代码”主要有如下特征:入侵IIS服务器,codered会将英文站点改写为:“Hello!Welcometo!HackedbyChinese!”;与其它病毒不同的是,CodeRed并不将病毒信息写入被攻击服务器的硬盘。它只是驻留在被攻击服务器的内存中,并借助这个服务器的网络疯狂的传播。缓冲溢出黑客技术CodeRed病毒剖析计算机病毒与防治课程小组每个病毒线程每100毫秒就会向一随机地址的80端口发送一长度为3818字节的病毒传染数据包。CodeRed病毒剖析计算机病毒与防治课程小组作为改进后的版本,“红色代码”可以创建300个线程在网络上查找未感染的计算机。当判断到系统默认的语言是中华人民共和国或中国台湾时,查找线程数猛增到600个,占用大量系统资源和网络资源,造成网络拥堵。病毒采用随机产生IP地址的方式,每个病毒每天能够扫描40万个IP地址,搜索未被感染的计算机。更可怕的是,在感染计算机后,它还从病毒体内释放出一个木马程序,驻留在计算机当中,为入侵者大开方便之门。“红色代码II”是“红色代码”的变种病毒CodeRed病毒剖析计算机病毒与防治课程小组下面我们以第二代“红色代码”为例,分析这个病毒。“红色代码-2”的英文名称为“I-worm.redcode”,该病毒的行为可以分为四部分:初始化、感染、繁殖、安装木马。病毒源码分析CodeRed病毒剖析计算机病毒与防治课程小组当一个Web服务器感染“红色代码”病毒后,将首先进行初始化,步骤如下;1.确定Kernel32.dll动态链接库中IIS服务器的服务进程地址,查找调用API函数GetProcAddress使用以下API函数://加载动态链接库的函数,用来加载Win32系统中的DLL文件,以便程//序能使用其中的函数HMODULELoadl.ibrary(LPCTSTR1pFileName//DLL文件名称);{==========初始化==========}CodeRed病毒剖析计算机病毒与防治课程小组//创建线程,病毒将使用该API函数创建白己的传染和破坏线程。HANDLECreatoThread(LPSECURITYATTRIBUTESIpsa,//线程的安全属性DWORDdwStackSizc,//线程堆栈的大小LPTHREAD_START-ROUTINEpfnThreadProc,//线程所属进程void*pvParam,//传给进程的参数DWORDdwGreationFlags,//创建标志DWORD*pdwTreadld//线程的ID号);CodeRed病毒剖析计算机病毒与防治课程小组//在感染的主机上创建文件或通讯资源、磁盘设备、管道等。HANDLECreateFile(LPCTSTR1pFileName,//文件名称DWORDdwDesiredAccess,//存取模式DWORDdwShareMode,//共享模式LPSECURITY_ATTRIBUTES1pSecurityAttributes,//安全属性DWORDdwCreationDisposition,//创建方式DWORDdwFlagsAndAttributes,//文件属性HANDLEhTemplateVile//文件句柄);CodeRed病毒剖析计算机病毒与防治课程小组//将当前线程阻塞指定的毫秒数。Sleep(intTimeSpan);//获得主机系统的语言,判断是中文还是英文。LANGIDGetSystemDefaultLang3D(void);//改变在调用进程的虚拟地址空间中的存取保护。HOOLVirtualProtect(LPVOID1pAddress,//提交页的区域基地址SIZE一dwSize,//区域大小DWORDINewProtect,//新的存取保护类型PDWORD1pflOldProtect//保存原来的存取保护值);CodeRed病毒剖析计算机病毒与防治课程小组2加载WS232.d11库,使用socket函数,这些函数用来进行网络通讯。//创建服务套接字SOCKETsocket(intaf,//地址类型inttype,//套接字类型(流式套接字或数据报套接字)intprotocol//套接字使用的协议);//连接套接字intconnect(SOCKET,//套接字描述符conststructsockaddrFAR*name,//连接名字intnamelen//名字的长度);CodeRed病毒剖析计算机病毒与防治课程小组//发送数据intsend(SOCKETs,//套接字描述符constcharFAR*buf,//要发送的数据缓冲区intIon,//数据长度intflags//调用标志);//接收数据intrecv(SOCKETs,//套接字描述符constcharFAR*buf,//接收数据缓冲intIon,//数据长度intflags//调用标志);//关闭套接字intclosesocket(SOCKETs,//套接字描述符CodeRed病毒剖析计算机病毒与防治课程小组3从user32.DLL中调用ExitWindowsEx以重新启动系统。//强制关闭计算机BOOT,LxitWindowsLx(DINTuFlags,//关闭操作DWORDdwReason//关闭的原因,Windows2000及以前的版本忽略该参数);CodeRed病毒剖析计算机病毒与防治课程小组病毒感染主机的步骤如下:1)设置一个跳转表“jumptable,以便得到所有需要的函数地址。2)获得当前主机的IP地址,以便在后而的繁殖步骤中处理子网掩码时使用。3)检查系统语言是否为中文,是繁体还是简体。4)检查病毒感染标志“CodeRedⅡ。如果己经有该标志,则进入永久性休眠状态,以确保主机不会被重复感染。如果没有该标志,则增加一个感染标志。5)调整系统工作线程数日,以便病毒本身能创建一些线程。对于非中文系统,将工作线程数目定为300;如果是中文系统,则设置为60006)创建一个新的线程跳到第一步去执行。7)调用木马功能。8)如果是非中文系统,休眠1天:如果是中文系统,休眠2天。9)重新启动系统,以便清除内存中驻留的病毒,只留下后门和木马。{==========感染==========}CodeRed病毒剖析计算机病毒与防治课程小组1)获取本地系统时间。病毒会检查当前时间是不是小于2002年或月份小于10月。如果日期超出了上述条件,病毒会重新启动系统。2)调用socket()函数,产生一个套接字,并设置该套接字为非阻塞模式,以加速连接速度。3)产生h一个要攻击主机的