19:23:531网络与信息安全技术计算机病毒分析19:23:5321计算机病毒的状态计算机病毒在传播过程中存在两种状态,即静态和动态静态病毒,是指存在于辅助存储介质中的计算机病毒,一般不能执行病毒的破坏或表现功能,其传播只能通过文件下载(拷贝)实现因为静态病毒尚未被加载、尚未进入内存,不可能获取系统的执行权限病毒之所以处于静态,有两种可能没有用户启动该病毒或运行感染了该病毒的文件该病毒存在于不可执行它的系统中当病毒完成初始引导,进入内存后,便处于动态。动态病毒本身处于运行状态,通过截流盗用系统中断等方式监视系统运行状态或窃取系统控制权。病毒的主动传染和破坏作用,都是动态病毒的“杰作”19:23:5331计算机病毒的状态计算机病毒的基本流程与状态转换病毒由静态转变为动态的过程,称为病毒的启动。实际上,病毒的启动过程就是病毒的首次激活过程内存中的动态病毒又有两种状态:可激活态和激活态。当内存中的病毒代码能够被系统的正常运行机制所执行时,动态病毒就处于可激活态一般而言,动态病毒都是可激活的系统正在执行病毒代码时,动态病毒就处于激活态病毒处于激活态时,不一定进行传染和破坏;但进行传染和破坏时,必然处于激活态对于处于不同状态的病毒,应采用不同的分析、清除手段19:23:5341计算机病毒的状态计算机病毒的基本流程与状态转换动态病毒静态病毒引导加载,设置激活、触发条件病毒感染病毒破坏满足激活条件?满足破坏条件?满足满足潜伏或消散不满足可激活态激活态满足感染条件?不满足满足不满足19:23:5352计算机病毒的基本环节计算机病毒要完成一次完整的传播破坏过程,必须经过以下几个环节:分发拷贝阶段潜伏繁殖阶段破坏表现阶段在任何一个环节(阶段)都可以抑制病毒的传播、蔓延,或者清除病毒我们应当尽可能地在病毒进行破坏性攻击之前切断病毒传染源、抑制病毒的传播蔓延19:23:536病毒的目的快速传染隐藏自己变形19:23:537病毒感染的一般过程计算机病毒的感染过程与生物学病毒的感染过程非常相似,它寄生在宿主程序中,进入计算机,并借助操作系统和宿主程序的运行,复制自身,大量繁殖。计算机病毒感染的一般过程为:①当计算机运行染毒的宿主程序时,病毒夺取控制权。②寻找感染的突破口。③将病毒程序嵌入感染目标中。19:23:538文件型病毒传染原理和特征感染方式1感染方式2病毒代码HOST程序代码HOST程序代码头病毒代码HOST程序代码头HOST程序代码HOST程序代码头HOST程序代码感染MZ文件头PE/NE文件头感染前的程序MZ文件头(修改后)PE/NE文件头(修改后)感染前的程序病毒代码19:23:539核心态与用户态操作系统代码、设备驱动程序代码使用特权级0(Ring0),工作于系统核心态普通的用户程序使用特权极3(Ring3),工作在用户态Win32应用程序Win32子系统动态连接库Ntdll.dll内存、进程、线程、IO等管理核心体设备驱动程序硬件抽象层(HAL)用户态(Ring3)核心态(Ring0)Win32应用程序Windows2000/XP下普通应用程序对核心态功能的调用示意19:23:5310获取API函数地址Win32程序一般运行在Ring3级,处于保护模式Win32下的系统功能调用,不是通过中断实现,而是通过调用动态连接库中的API函数实现Win32PE病毒和普通Win32PE程序一样需要调用API函数实现某些功能,但是对于Win32PE病毒来说,它只有代码节,并不存在引入函数节病毒就无法象普通PE程序那样直接调用相关API函数,而应该先找出这些API函数在相应DLL中的地址19:23:5311搜索感染目标文件搜索文件是病毒寻找目标文件的非常重要的功能在Win32汇编中,通常采用如下几个API函数进行文件搜索FindFirstFile根据文件名查找文件FindNextFile根据调用FindFirstFile函数时指定的一个文件名查找下一个文件FindClose用来关闭由FindFirstFile函数创建的一个搜索句柄19:23:5312病毒感染技术感染是一个病毒赖以长期存活的根本,所以要大规模的搜索,感染感染再感染!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。19:23:5313蠕虫传染原理19:23:5314蠕虫与漏洞网络蠕虫最大特点是利用各种漏洞进行自动传播根据网络蠕虫所利用漏洞的不同,又可以将其细分邮件蠕虫主要是利用MIME(MultipurposeInternetMailExtensionProtocol,多用途的网际邮件扩充协议)漏洞包含蠕虫的邮件非法的MIME头部解出的蠕虫程序感染机器Content-Type:audio/x-wav;name=worm.exeContent-Transfer-Encoding:base64TVrozAAAAAYAAQACAHhNVHJrAAAIBQD/AwiT8ZBsgsyOng/AgdLT05BTUkgAP8BD5XSi8iBXorikeORvphZCgD/fwMAAEEA8ApBEEISQAB/AEH3AP9YBAQCGAgA/1kCAAAA/1EDB0Deg2r/UQMHUwCDJP9RAwdiH4Mu/1EDB3F9gy7/UQMHgRuDJP9RAweQ/IMu/1EDB6Eggy7/UQMHsYqDJP9RAwMIME描述漏洞19:23:5315蠕虫与漏洞网页蠕虫(木马)主要是利用IFrame漏洞和MIME漏洞网页蠕虫可以分为两种用一个IFrame插入一个Mail框架,同样利用MIME漏洞执行蠕虫,这是直接沿用邮件蠕虫的方法用IFrame漏洞和浏览器下载文件的漏洞来运作的,首先由一个包含特殊代码的页面去下载放在另一个网站的病毒文件,然后运行它,完成蠕虫传播系统漏洞蠕虫利用RPC溢出漏洞的冲击波、冲击波杀手利用LSASS溢出漏洞的震荡波、震荡波杀手系统漏洞蠕虫一般具备一个小型的溢出系统,它随机产生IP并尝试溢出,然后将自身复制过去它们往往造成被感染系统性能速度迅速降低,甚至系统崩溃,属于最不受欢迎的一类蠕虫19:23:5316蠕虫的工作方式与扫描策略蠕虫的工作方式一般是“扫描→攻击→复制”随机生成IP地址有些蠕虫给出确定的地址范围,还有一些给出倾向性策略,用于产生某个范围内的IP地址地址探测主机是否存在?漏洞是否存在?攻击、传染现场处理虚线框内的所有工作可以在一个数据包内完成是是否否19:23:5317蠕虫的工作方式与扫描策略蠕虫的扫描策略现在流行的蠕虫采用的传播技术目标,一般是尽快地传播到尽量多的计算机中扫描模块采用的扫描策略是:随机选取某一段IP地址,然后对这一地址段上的主机进行扫描没有优化的扫描程序可能会不断重复上面这一过程,大量蠕虫程序的扫描引起严重的网络拥塞对扫描策略的改进在IP地址段的选择上,可以主要针对当前主机所在的网段进行扫描,对外网段则随机选择几个小的IP地址段进行扫描对扫描次数进行限制,只进行几次扫描把扫描分散在不同的时间段进行19:23:5318蠕虫的工作方式与扫描策略蠕虫常用的扫描策略选择性随机扫描(包括本地优先扫描)可路由地址扫描(RoutableScan)地址分组扫描(Divide-ConquerScan)组合扫描(HybridScan)极端扫描(ExtremeScan)19:23:5319感染的主机数与感染强度示意图感染强度感染的主机数慢启动阶段缓消失阶段快速传染阶段19:23:5320木马的传染方式19:23:5321特洛伊木马的定义特洛伊木马(TrojanHorse),简称木马,是一种恶意程序,是一种基于远程控制的黑客工具,一旦侵入用户的计算机,就悄悄地在宿主计算机上运行,在用户毫无察觉的情况下,让攻击者获得远程访问和控制系统的权限,进而在用户的计算机中修改文件、修改注册表、控制鼠标、监视/控制键盘,或窃取用户信息古希腊特洛伊之战中利用木马攻陷特洛伊城;现代网络攻击者利用木马,采用伪装、欺骗(哄骗,Spoofing)等手段进入被攻击的计算机系统中,窃取信息,实施远程监控19:23:5322特洛伊木马的定义木马与病毒一般情况下,病毒是依据其能够进行自我复制即传染性的特点而定义的特洛伊木马主要是根据它的有效载体,或者是其功能来定义的,更多情况下是根据其意图来定义的木马一般不进行自我复制,但具有寄生性,如捆绑在合法程序中得到安装、启动木马的权限,DLL木马甚至采用动态嵌入技术寄生在合法程序的进程中木马一般不具有普通病毒所具有的自我繁殖、主动感染传播等特性,但我们习惯上将其纳入广义病毒,也就是说,木马也是广义病毒的一个子类木马的最终意图是窃取信息、实施远程监控木马与合法远程控制软件(如pcAnyWhere)的主要区别在于是否具有隐蔽性、是否具有非授权性19:23:5323特洛伊木马的结构木马系统软件一般由木马配置程序、控制程序和木马程序(服务器程序)三部分组成配置控制响应木马程序配置程序控制程序木马服务器木马控制端(客户端)19:23:5324特洛伊木马的基本原理运用木马实施网络入侵的基本过程木马信息控制端Internet服务端①配置木马②传播木马③运行木马④信息反馈⑤建立连接⑥远程控制19:23:5325特洛伊木马的基本原理用netstat查看木马打开的端口202.102.47.56202.102.47.5662676267202.96.96.1021096ESTABLISHEDLISTENING:::ProtoLocalAddressForeignAddressState①TCP②TCP0.0.0.0服务端IP地址木马端口控制端IP地址控制端端口连接状态:①连接已建立②等待连接19:23:5326特洛伊木马的基本原理木马控制端与服务端连接的建立控制端要与服务端建立连接必须知道服务端的木马端口和IP地址由于木马端口是事先设定的,为已知项,所以最重要的是如何获得服务端的IP地址获得服务端的IP地址的方法主要有两种:信息反馈和IP扫描19:23:5327特洛伊木马的基本原理木马控制端与服务端连接的建立19:23:5328特洛伊木马的基本原理木马通道与远程控制木马连接建立后,控制端端口和服务端木马端口之间将会出现一条通道控制端上的控制端程序可藉这条通道与服务端上的木马程序取得联系,并通过木马程序对服务端进行远程控制,实现的远程控制就如同本地操作控制端程序木马程序10966267控制端服务端窃取密码文件操作修改注册表系统操作19:23:5329特洛伊木马的基本原理木马的基本原理特洛伊木马包括客户端和服务器端两个部分,也就是说,木马其实是一个服务器-客户端程序攻击者通常利用一种称为绑定程序(exe-binder)的工具将木马服务器绑定到某个合法软件上,诱使用户运行合法软件。只要用户运行该软件,特洛伊木马的服务器就在用户毫无察觉的情况下完成了安装过程攻击者要利用客户端远程监视、控制服务器,必需先建立木马连接;而建立木马连接,必需先知道网络中哪一台计算机中了木马