网络病毒分析_第1页
网络病毒分析_第2页
网络病毒分析_第3页
网络病毒分析_第4页
网络病毒分析_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

网络与信息安全技术计算机病毒分析2/1/202311计算机病毒的状态计算机病毒在传播过程中存在两种状态,即静态和动态静态病毒,是指存在于辅助存储介质中的计算机病毒,一般不能执行病毒的破坏或表现功能,其传播只能通过文件下载(拷贝)实现因为静态病毒尚未被加载、尚未进入内存,不可能获取系统的执行权限病毒之所以处于静态,有两种可能没有用户启动该病毒或运行感染了该病毒的文件该病毒存在于不可执行它的系统中当病毒完成初始引导,进入内存后,便处于动态。动态病毒本身处于运行状态,通过截流盗用系统中断等方式监视系统运行状态或窃取系统控制权。病毒的主动传染和破坏作用,都是动态病毒的“杰作”2/1/202321计算机病毒的状态计算机病毒的基本流程与状态转换病毒由静态转变为动态的过程,称为病毒的启动。实际上,病毒的启动过程就是病毒的首次激活过程内存中的动态病毒又有两种状态:可激活态和激活态。当内存中的病毒代码能够被系统的正常运行机制所执行时,动态病毒就处于可激活态一般而言,动态病毒都是可激活的系统正在执行病毒代码时,动态病毒就处于激活态病毒处于激活态时,不一定进行传染和破坏;但进行传染和破坏时,必然处于激活态对于处于不同状态的病毒,应采用不同的分析、清除手段2/1/202331计算机病毒的状态计算机病毒的基本流程与状态转换2/1/202342计算机病毒的基本环节计算机病毒要完成一次完整的传播破坏过程,必须经过以下几个环节:分发拷贝阶段潜伏繁殖阶段破坏表现阶段在任何一个环节(阶段)都可以抑制病毒的传播、蔓延,或者清除病毒我们应当尽可能地在病毒进行破坏性攻击之前切断病毒传染源、抑制病毒的传播蔓延2/1/20235病毒的目的快速传染隐藏自己变形2/1/20236病毒感染的一般过程

计算机病毒的感染过程与生物学病毒的感染过程非常相似,它寄生在宿主程序中,进入计算机,并借助操作系统和宿主程序的运行,复制自身,大量繁殖。计算机病毒感染的一般过程为:①当计算机运行染毒的宿主程序时,病毒夺取控制权。②寻找感染的突破口。③将病毒程序嵌入感染目标中。2/1/20237文件型病毒传染原理和特征2/1/20238核心态与用户态操作系统代码、设备驱动程序代码使用特权级0(Ring0),工作于系统核心态普通的用户程序使用特权极3(Ring3),工作在用户态Windows2000/XP下普通应用程序对核心态功能的调用示意2/1/20239获取API函数地址Win32程序一般运行在Ring3级,处于保护模式Win32下的系统功能调用,不是通过中断实现,而是通过调用动态连接库中的API函数实现Win32PE病毒和普通Win32PE程序一样需要调用API函数实现某些功能,但是对于Win32PE病毒来说,它只有代码节,并不存在引入函数节病毒就无法象普通PE程序那样直接调用相关API函数,而应该先找出这些API函数在相应DLL中的地址2/1/202310搜索感染目标文件搜索文件是病毒寻找目标文件的非常重要的功能在Win32汇编中,通常采用如下几个API函数进行文件搜索FindFirstFile根据文件名查找文件FindNextFile根据调用FindFirstFile函数时指定的一个文件名查找下一个文件FindClose用来关闭由FindFirstFile函数创建的一个搜索句柄2/1/202311病毒感染技术感染是一个病毒赖以长期存活的根本,所以要大规模的搜索,感染感染再感染!FindFirstFile,FindNextFile,FindClose,除非你hook了某些系统API(参考Win32.Kriz),否则这三个API是Win32病毒必备的、搜索再搜索,感染再感染。目前Win32病毒分为两个主流,一类最常见,覆盖host程序最后一个section的relocation,或者干脆直接缀在最后一个section后面,把它扩大一些。这种技术很简单,例子可参见Funlove,有着复杂的polymorphism引擎,体积比较大的病毒一般也都用这种技术。第二类就是像Elkern那样把自己尽可能地插进host体内,尽可能地插,对于VC编译出来的PE文件,它的filealignment是4K,所以section之间的空隙加起来很可能有4,5K,足可以容下一个Win32病毒。这种技术比较麻烦一些,调试也复杂,主要流行的有Elkern。2/1/202312蠕虫传染原理2/1/202313蠕虫与漏洞网络蠕虫最大特点是利用各种漏洞进行自动传播根据网络蠕虫所利用漏洞的不同,又可以将其细分邮件蠕虫主要是利用MIME(MultipurposeInternetMailExtensionProtocol,多用途的网际邮件扩充协议)漏洞MIME描述漏洞2/1/202314蠕虫与漏洞网页蠕虫(木马)主要是利用IFrame漏洞和MIME漏洞网页蠕虫可以分为两种用一个IFrame插入一个Mail框架,同样利用MIME漏洞执行蠕虫,这是直接沿用邮件蠕虫的方法用IFrame漏洞和浏览器下载文件的漏洞来运作的,首先由一个包含特殊代码的页面去下载放在另一个网站的病毒文件,然后运行它,完成蠕虫传播系统漏洞蠕虫利用RPC溢出漏洞的冲击波、冲击波杀手利用LSASS溢出漏洞的震荡波、震荡波杀手系统漏洞蠕虫一般具备一个小型的溢出系统,它随机产生IP并尝试溢出,然后将自身复制过去它们往往造成被感染系统性能速度迅速降低,甚至系统崩溃,属于最不受欢迎的一类蠕虫2/1/202315蠕虫的工作方式与扫描策略蠕虫的工作方式一般是“扫描→攻击→复制”2/1/202316蠕虫的工作方式与扫描策略蠕虫的扫描策略现在流行的蠕虫采用的传播技术目标,一般是尽快地传播到尽量多的计算机中扫描模块采用的扫描策略是:随机选取某一段IP地址,然后对这一地址段上的主机进行扫描没有优化的扫描程序可能会不断重复上面这一过程,大量蠕虫程序的扫描引起严重的网络拥塞对扫描策略的改进在IP地址段的选择上,可以主要针对当前主机所在的网段进行扫描,对外网段则随机选择几个小的IP地址段进行扫描对扫描次数进行限制,只进行几次扫描把扫描分散在不同的时间段进行2/1/202317蠕虫的工作方式与扫描策略蠕虫常用的扫描策略选择性随机扫描(包括本地优先扫描)可路由地址扫描(RoutableScan)地址分组扫描(Divide-ConquerScan)组合扫描(HybridScan)极端扫描(ExtremeScan)2/1/202318感染的主机数与感染强度示意图2/1/202319木马的传染方式2/1/202320特洛伊木马的定义特洛伊木马(TrojanHorse),简称木马,是一种恶意程序,是一种基于远程控制的黑客工具,一旦侵入用户的计算机,就悄悄地在宿主计算机上运行,在用户毫无察觉的情况下,让攻击者获得远程访问和控制系统的权限,进而在用户的计算机中修改文件、修改注册表、控制鼠标、监视/控制键盘,或窃取用户信息古希腊特洛伊之战中利用木马攻陷特洛伊城;现代网络攻击者利用木马,采用伪装、欺骗(哄骗,Spoofing)等手段进入被攻击的计算机系统中,窃取信息,实施远程监控2/1/202321特洛伊木马的定义木马与病毒一般情况下,病毒是依据其能够进行自我复制即传染性的特点而定义的特洛伊木马主要是根据它的有效载体,或者是其功能来定义的,更多情况下是根据其意图来定义的木马一般不进行自我复制,但具有寄生性,如捆绑在合法程序中得到安装、启动木马的权限,DLL木马甚至采用动态嵌入技术寄生在合法程序的进程中木马一般不具有普通病毒所具有的自我繁殖、主动感染传播等特性,但我们习惯上将其纳入广义病毒,也就是说,木马也是广义病毒的一个子类木马的最终意图是窃取信息、实施远程监控木马与合法远程控制软件(如pcAnyWhere)的主要区别在于是否具有隐蔽性、是否具有非授权性2/1/202322特洛伊木马的结构木马系统软件一般由木马配置程序、控制程序和木马程序(服务器程序)三部分组成2/1/202323特洛伊木马的基本原理运用木马实施网络入侵的基本过程2/1/202324特洛伊木马的基本原理用netstat查看木马打开的端口2/1/202325特洛伊木马的基本原理木马控制端与服务端连接的建立控制端要与服务端建立连接必须知道服务端的木马端口和IP地址由于木马端口是事先设定的,为已知项,所以最重要的是如何获得服务端的IP地址获得服务端的IP地址的方法主要有两种:信息反馈和IP扫描2/1/202326特洛伊木马的基本原理木马控制端与服务端连接的建立2/1/202327特洛伊木马的基本原理木马通道与远程控制木马连接建立后,控制端端口和服务端木马端口之间将会出现一条通道控制端上的控制端程序可藉这条通道与服务端上的木马程序取得联系,并通过木马程序对服务端进行远程控制,实现的远程控制就如同本地操作2/1/202328特洛伊木马的基本原理木马的基本原理特洛伊木马包括客户端和服务器端两个部分,也就是说,木马其实是一个服务器-客户端程序攻击者通常利用一种称为绑定程序(exe-binder)的工具将木马服务器绑定到某个合法软件上,诱使用户运行合法软件。只要用户运行该软件,特洛伊木马的服务器就在用户毫无察觉的情况下完成了安装过程攻击者要利用客户端远程监视、控制服务器,必需先建立木马连接;而建立木马连接,必需先知道网络中哪一台计算机中了木马获取到木马服务器的信息之后,即可建立木马服务器和客户端程序之间的联系通道,攻击者就可以利用客户端程序向服务器程序发送命令,达到操控用户计算机的目的2/1/202329特洛伊木马的传播方式木马常用的传播方式,有以下几种:以邮件附件的形式传播控制端将木马伪装之后添加到附件中,发送给收件人通过OICQ、QQ等聊天工具软件传播在进行聊天时,利用文件传送功能发送伪装过的木马程序给对方通过提供软件下载的网站(Web/FTP/BBS)传播木马程序一般非常小,只有是几K到几十K,如果把木马捆绑到其它正常文件上,用户是很难发现的,所以,有一些网站被人利用,提供的下载软件往往捆绑了木马文件,在用户执行这些下载的文件的同时,也运行了木马通过一般的病毒和蠕虫传播通过带木马的磁盘和光盘进行传播2/1/202330特洛伊木马技术的发展木马的发展及成熟,大致也经历了两个阶段Unix阶段Windows阶段木马技术发展至今,已经经历了4代第一代木马只是进行简单的密码窃取、发送等,没有什么特别之处第二代木马在密码窃取、发送等技术上有了很大的进步,冰河可以说是国内木马的典型代表之一第三代木马在数据传输技术上,又做了不小的改进,出现了ICMP等类型的木马,利用畸形报文传递数据,增加了查杀的难度第四代木马在进程隐藏方面,做了很大的改动,采用了内核插入式的嵌入方式,利用远程插入线程技术,嵌入DLL线程;或者挂接PSAPI(ProcessStatusAPI),实现木马程序的隐藏2/1/202331U盘病毒的特点随着U盘等移动存储介质使用的越来越广泛,它已经成为木马、病毒等传播的主要途径之一。U盘病毒,并不是单指某一种病毒,也不是说只是通过U盘传播的病毒,而是泛指所有通过移动存储介质进行传播的病毒事实上它可以通过系统上所有的分区进行传播,只是因为很多时候它们都表现在U盘上,所以我们才统称这些病毒为U盘病毒

目前U盘病毒传播的方式主要有以下几种:1、通过autorun.inf文件进行传播的(目前U盘病毒最普遍的传播方式)2、伪装成其他文件,病毒把U盘下所有文件夹隐藏,并把自己复制成与原文件夹名称相同的具有文件夹图标的文件,当你点击时病毒会执行自身并且打开隐藏的该名称的文件夹。

3、通过可执行文件感染传播,很古老的一种传播手段,但是依然有效。2/1/2023321.关键文件Autorun.infAutorun.inf文件本身并不是病毒,它是自动运行的一个配置文件。这个文件通常在驱动器的根目录下(是一个隐藏的系统文件),文件的内容包含着一些简单的命令,告诉系统这个新插入的光盘或硬件应该自动启动什么程序,也可以告诉系统让系统将它的盘符图标改成某个路径下的图标,它的格式通常是下面这样:[AutoRun]open=auto.exe//自动运行auto.exe程序shellexecute=auto.exe//启动指定的auto.exeshell\Auto\command=auto.exe//定义设备右键菜单执行命令行,右键U盘的时候会出现auto菜单2/1/2023331.关键文件Autorun.inf由于windows系统中的自动播放功能默认情况下是处于未配置的状态。这就使得只要在机器上接入移动的存储介质,就会自动的播放。这个原因也是导致U盘病毒传播的一个最主要的因素。我们只要在U盘的根目录下建立autorun.inf文件和某些特定的执行程序,并把执行程序的路径和名字写到autorun.inf文件中,就可以在U盘插入系统后自动运行该执行文件,而这些执行程序可以是任何我们想要它运行程序(病毒、木马、灰色软件等等)。2/1/202334解决办法

---11、关闭“ShellHardwareDetection”服务,关闭这个服务后再放入光盘或U盘时系统将不再扫描这些移动介质的内容,也就不会运行Autorun.inf中所配置的文件了。关闭服务的方法如下:单击开始菜单的运行,输入“services.msc”(也可以通过点击开始->设置->控制面板->管理工具->服务)来打开服务窗口,在窗口右侧显示的内容中找到“名称”列,在“名称”列里找到“ShellHardwareDetection”(可以随便单击一下“名称”列里的内容,再按键盘上的S键,快速地定位),单击右键,再单击属性弹出属性对话框,先选择停止,然后在常规选项卡里的“启动类型(E)”右边的下拉菜单中选择“已禁用”,最后确定退出,重启计算机即可。2/1/202335解决办法

---22、关闭windows的自动播放功能,方法如下:在开始、运行中输入gpedit.msc后回车。会出现组策略的控制窗口,在该窗口中选择计算机设置->管理模板->系统->关闭自动播放,双击关闭自动播放,然后选择已启用,选择关闭所有驱动器。2/1/202336解决办法

---33、修改注册表来禁止自动播放,方法如下:在开始运行中输入regedit.exe后回车,调出注册表编辑器,定位到[HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Policies/Expolrer]进行修改。"NoDriveTypeAutoRun"指定按设备类型禁止自动播放。1:未知类型,4:可移动磁盘,8:硬盘,10:网络驱动器,20:光驱,40:RAM驱动器,80:未知类型,FF:所有类型。若要禁止某一类型自动播放,直接使用对应的值,若要禁止几种类型,则使用它们数值相加的值,如95=1+4+10+80,91=1+10+80,b5=1+4+10+20+80。"NoDriveAutoRun"指定按盘符禁止自动播放。相关设置可以参考NoDrives值,最大值为hex:ff,ff,ff,03,禁止所有盘自动播放。2/1/2023372.披着各种伪装的U盘病毒

U盘原来存在的文件夹全部被隐藏,取而代之的是一个伪装成文件夹图标的EXE文件。因为操作系统缺省情况下,并不显示已知文件类型的文件扩展名,也就是说类似于“我的工作报告.exe”的程序,缺省情况下我们只看到“我的工作报告”,并且这个文件看上去就是个文件夹,很多人就会去直接双击访问。又是Windows缺省设置在帮助病毒传播者欺骗用户,缺省情况下windows不显示文件扩展名。U盘病毒伪装者利用社会工程学成功的入侵了超过50万台PC。2/1/202338解决办法如果你修改了文件夹选项,配置了显示文件的扩展名,这个文件夹伪装者就会露出真面目2/1/202339病毒高级技术2/1/202340驻留在内存为了生存,病毒要尽可能长时间地驻留在内存中,而不是host程序一结束就完蛋了。有三种种方法,一是象Funlove那样在系统目录里释放一个文件,并修改注册表或者建立一个系统服务。这种方式很普通,也很普遍,大多数病毒包括蠕虫都这么干。另一种方式则是感染所有的已运行进程。在Win2K下很容易实现,CreateRemoteThread,但要想在所有Win32平台下实现,则要比较高的技巧。工作在ring0病毒,内核模式病毒。2/1/202341内核模式病毒WindowsNT/2K环境下第一个以内核模式驱动程序运行,并驻留内存的寄生型病毒是Infis.Infis作为内核模式驱动程序驻留内存,并且挂钩文件操作,它能够在文件打开时立即感染该文件。安装程序把病毒拷贝到系统内存中,并在系统注册表中添加该病毒的注册项。该病毒把自己的可执行代码连同自己的PE文件头一起追加到目标文件的末尾,然后从自己代码中提取出一个名为INF.SYS的独立驱动程序,把这个程序保存在%SystemRoot%\system32\drivers目录下,修改注册表,保证下一次系统启动时病毒也能够进入运行状态。2/1/202342检测方法检查系统驱动程序列表中已经装入的驱动程序的名称,如果在驱动程序列表中发现了病毒驱动程序,说明基本上感染了病毒病毒可能使用隐藏技术避免在驱动程序列表中出现,需要通过计算机管理器中的驱动程序列表。2/1/202343病毒的隐藏技术隐藏是病毒的天性,在业界对病毒的定义里,“隐蔽性”就是病毒的一个最基本特征,任何病毒都希望在被感染的计算机中隐藏起来不被发现,因为病毒都只有在不被发现的情况下,才能实施其破坏行为。为了达到这个目的,许多病毒使用了各种不同的技术来躲避反病毒软件的检验,这样就产生了各种各样令普通用户头痛的病毒隐藏形式。隐藏窗口&隐藏进程&隐藏文件桌面看不到任务管理器中不可见文件中看不到2/1/202344进程隐藏Windows9x中的任务管理器是不会显示服务类进程,结果就被病毒钻了空子,病毒将自身注册为“服务进程”,可以躲避用户的监视。Windows2000/xp/2003等操作系统上已经无效了,直接使用系统自带的任务管理器便能发现和迅速终止进程运行。2/1/202345通过DLL实现进程隐藏Windows系统的另一种“可执行文件”----DLL,DLL文件没有程序逻辑,是由多个功能函数构成,它并不能独立运行,一般都是由进程加载并调用的。运行DLL文件最简单的方法是利用Rundll32.exe,Rundll/Rundll32是Windows自带的动态链接库工具,可以用来在命令行下执行动态链接库中的某个函数,Rundll32的使用方法如下:

Rundll32DllFileName

FuncName

例如我们编写了一个MyDll.dll,这个动态链接库中定义了一个MyFunc的函数,那么,我们通过Rundll32.exeMyDll.dll

MyFunc就可以执行MyFunc函数的功能。

假设我们在MyFunc函数中实现了病毒的功能,那么我们不就可以通过Rundll32来运行这个病毒了么?在系统管理员看来,进程列表中增加的是Rundll32.exe而并不是病毒文件,这样也算是病毒的一种简易欺骗和自我保护方法2/1/202346特洛伊DLL特洛伊DLL的工作原理是使用木马DLL替换常用的DLL文件,通过函数转发器将正常的调用转发给原DLL,截获并处理特定的消息。例如,我们知道WINDOWS的Socket1.x的函数都是存放在wsock32.dll中的,那么我们自己写一个wsock32.dll文件,替换掉原先的wsock32.dll(将原先的DLL文件重命名为wsockold.dll)我们的wsock32.dll只做两件事,一是如果遇到不认识的调用,就直接转发给wsockold.dll(使用函数转发器forward);二是遇到特殊的请求(事先约定的)就解码并处理。这样理论上只要木马编写者通过SOCKET远程输入一定的暗号,就可以控制wsock32.dll(木马DLL)做任何操作2/1/202347动态嵌入技术DLL木马的最高境界是动态嵌入技术,动态嵌入技术指的是将自己的代码嵌入正在运行的进程中的技术。理论上来说,在Windows中的每个进程都有自己的私有内存空间,别的进程是不允许对这个私有空间进行操作的,但是实际上,我们仍然可以利用种种方法进入并操作进程的私有内存存在多种动态嵌入技术中:窗口Hook、挂接API、远程线程2/1/202348远程线程技术远程线程技术指的是通过在另一个进程中创建远程线程的方法进入那个进程的内存地址空间。在进程中,可以通过CreateThread函数创建线程,被创建的新线程与主线程(就是进程启动时被同时自动建立的那个线程)共享地址空间以及其他的资源通过CreateRemoteThread也同样可以在另一个进程内创建新线程,被创建的远程线程同样可以共享远程进程的地址空间,所以,实际上,我们通过一个远程线程,进入了远程进程的内存地址空间,也就拥有了那个远程进程相当的权限。这种病毒难以处理。2/1/202349文件隐藏早期,把病毒文件属性设为隐藏,修改文件不显示隐藏文件。高级阶段通过HOOK文件读取函数,自动隐藏病毒文件。公开的主流检测隐藏文件主要有两种方法:第一种是文件系统层的检测,属于这一类的有Icesword,darkspy,gmer等。第二种便是磁盘级别的低级检测(DiskLow-LevelScanning),属于这一类的ark也很多,典型代表为rootkit

unhooker,filereg(is的插件),rootkitrevealer,blacklight等。2/1/202350加壳木马再狡猾,可是一旦被杀毒软件定义了特征码,在运行前就被拦截了。要躲过杀毒软件的追杀,很多木马就被加了壳,相当于给木马穿了件衣服,这样杀毒软件就认不出来了,但有部分杀毒软件会尝试对常用壳进行脱壳,然后再查杀。除了被动的隐藏外,最近还发现了能够主动和杀毒软件对着干的壳,木马在加了这种壳之后,一旦运行,则外壳先得到程序控制权,由其通过各种手段对系统中安装的杀毒软件进行破坏,最后在确认安全(杀毒软件的保护已被瓦解)后由壳释放包裹在自己"体内"的木马体并执行之。2/1/202351AV终结者Autorun.inf

一个暗藏杀机的文本格式,以至于有些杀软都加入病毒库,传播U盘病毒的罪魁祸首,很多情况下我们把它视为敌人,如果配合系统默认的"自动播放"功能,那激活病毒的机率将会是100%。线程插入全名叫“远程创建

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论