《网络攻击与防御》课件第六章 恶意代码攻击与防御.pptx
《《网络攻击与防御》课件第六章 恶意代码攻击与防御.pptx》由会员分享,可在线阅读,更多相关《《网络攻击与防御》课件第六章 恶意代码攻击与防御.pptx(190页珍藏版)》请在文库网上搜索。
1、第六章 恶意代码攻击与防御第六章 恶意代码攻击与防御6.1 概述概述6.2 木马技术木马技术6.3 Rootkit技术技术6.4 病毒技术病毒技术6.5 蠕虫技术蠕虫技术6.6 网页恶意网页恶意代码代码第六章 恶意代码攻击与防御6.1 概概 述述恶意代码是指独立的程序或者嵌入其他程序中的代码,它在不被用户察觉的情况下启动,达到破坏电脑安全性和完整性的目的。恶意代码一般分为五类:木马、Rootkit、病毒、蠕虫和网页恶意代码。现在恶意代码之间的界限越来越模糊,比如木马可以采用Rootkit技术,蠕虫可以采用病毒技术。这是恶意代码发展的必然结果,但这并不是说它们发展到最后就没有区别了,毕竟它们的实
2、现原理和最后的目的是有差异的。我们在这里会详细分析它们的基本原理以及相互间的联系。第六章 恶意代码攻击与防御恶意代码一般通过三种方式传播:(1)利用操作系统漏洞或者软件漏洞;(2)通过浏览器;(3)利用用户的信任关系。第六章 恶意代码攻击与防御6.2 木木 马马 技技 术术6.2.1 木马的发展木马的发展“木马”这一名词来自荷马史诗中记载的特洛伊战争。在计算机领域,木马就是指隐藏在系统里的一段具有特殊功能的恶意代码。第六章 恶意代码攻击与防御最早的木马名叫PC-write,出现在1986年,它伪装成共享软件PC-write的2.72版本,而事实上编写PC-write的公司并没有发行过2.72版
3、本。用户一旦执行了该程序,硬盘将立刻被格式化,所有数据都会丢失。1989年出现了AIDS木马,这个木马是通过现实的邮件来传播的,它给目标寄去一封含有木马程序的软盘,软盘里面包含了AIDS和HIV的相关信息。软盘中的木马运行后,并不会破坏用户的数据,而是将硬盘加密锁死,然后提示用户花钱购买解密口令。随着Internet的普及与发展,木马技术有了长足的发展,隐蔽得更深,功能更强大。下面我们主要从木马的启动、通信和隐藏这三个方面来了解木马的“成长”过程。第六章 恶意代码攻击与防御 第一代木马:利用目标的安全意识不强来运行,在启动、通信和隐藏方面都没有特别之处,功能上只是简单地实现了密码的获取、发送,
4、或者是进行一些恶意的行为,比如实现机器的重启、删除文件等。第二代木马:以文件关联的方式启动,通过电子邮件传播,实现了木马发展质的跨越。为什么这样说呢?以前的木马就是一个简单的程序,毫无隐蔽性可言,而这恰恰是木马最重要的缺陷。第二代木马通过文件关联的方式启动,隐蔽性比较强,大大提高了木马的存活率。第三代木马:通过修改注册表或者修改系统文件启动,使用ICMP、UDP等协议,利用隐蔽通道技术进行通信,隐蔽性更强。第六章 恶意代码攻击与防御 第四代木马:采用线程注入的方式实现进程的隐藏,通信上使用反弹端口技术和代理技术来突破主机防火墙的限制。目前很多木马都属于这一类。第五代木马:这一代木马的特点是与系
5、统内核紧密结合,结合了Rootkit技术。通过修改系统内核的相关信息来实现文件、进程和通信的隐藏。普通的安全工具根本就查看不到这种木马,因为它工作在更底层,这种木马必须使用内核级的安全工具才能彻底查杀。木马技术与Rootkit技术的结合从某种意义上说代表了当前木马的发展方向,因为随着人们安全意识的提高,对木马的要求也在不断提高,而目前只有通过修改内核的信息才能实现真正意义上的隐藏。第六章 恶意代码攻击与防御6.2.2 启动技术启动技术1.注册表启动注册表启动注册表是Windows系统保存系统配置信息的数据库,它包括了系统运行时需要调用的运行方式的设置。注册表保存在硬盘中的几个文件中,但只能通过
6、注册表编辑器才能访问它。注册表是以树的结构形式来组织的,由根键、项、子项、配置单元和值组成。这里我们主要介绍Windows NT及其以后的版本。Windows系统的注册表分五个根键,分别如下:HKEY_CLASSES_ROOT:包含了启动应用程序所需的全部信息,包括扩展名和与之对应的应用程序、应用程序和文档使用的图标、类标识CLSID和驱动程序名字等。第六章 恶意代码攻击与防御HKEY_CURRENT_USER:用于管理当前登录用户的信息,包括用户的桌面配置、网络设备资源和安全权限等。HKEY_LOCAL_MACHINE:保存了控制系统和软件的相关设置,包括硬件信息、驱动程序和应用程序等。其中
7、的设置是公共配置信息,与具体的登录用户无关。HKEY_USER:包含了所有用户配置文件的当前活动用户信息,包括用户的环境信息、键盘配置信息、系统中安装的软件信息等。HKEY_CURRENT_CONFIG:存放的是当前配置文件的所有信息,其实就是HKEY_LOCAL_MACHINE中内容的映射。系统启动时,系统会从HKEY_LOCAL_ MACHINE中选择一种配置文件映射到HKEY_CURRENT_CONFIG中去。第六章 恶意代码攻击与防御下面我们就仔细看看如何通过修改注册表来启动程序。Run键。这是最常用的注册表启动方法,Run键下面的所有程序在用户每次登录后都会自动执行,其键位置如下:H
8、KEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun;HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRun;RunOnce键。RunOnce键只在用户首次登录时才运行,其键位置如下:HKEY_LOCAL_MACHINE SOFTWARE MicrosoftWindowsCurrentVersionRunOnce;RunOnceEx键。这个键值只有Windows XP和Windows 2003才有,也可以实现自启动,键位置如下:HKEY_ LOCAL _MACHINES
9、oftwareMicrosoftWindowsCurrentVersionRunOnceEx;第六章 恶意代码攻击与防御 RunServices键。RunServices键指定的程序紧接RunServicesOnce指定的程序之后运行,键位置如下:HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRunServices;HKEY_ CURRENT_ USER SoftwareMicrosoftWindowsCurrentVersionRunServices;Winlogon键。利用这个键可以实现多个程序的自启动,键位置如下:HKEY
10、_LOCAL_MACHINESOFTWAREMicrosoftWindowsNTCurrentVersionWinlogon;HKEY_CURRENT_ USER SoftwareMicrosoftWindowsNTCurrentVersionWinlogon;Load键。Load键也可以实现自启动,键位置如下:HKEY_CURRENT_USERSoftwareMicrosoftWindowsNTCurrentVersionWindows;第六章 恶意代码攻击与防御 其他键值HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionShel
11、lServiceObjectDelayLoad;HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorer SharedTaskScheduler;第六章 恶意代码攻击与防御这几个键也能实现自启动,但不是很常用。利用注册表启动的优点是方便,但也有许多不足的地方:(1)权限受限,只能以当前登录的用户权限运行,如果用户是使用guest账户或者受限账户登录,那么需要管理员权限才能运行的工具就不能运行;(2)很多用户都知道这些启动项,通过这些位置启动的程序隐蔽性不强,容易被发现;(3)某些启动项下的程序只能执行一次,如果用户注销再登
12、录就不会再执行;(4)某些启动项下的程序只能在用户登录后才会执行。第六章 恶意代码攻击与防御2.系统服务Windows服务是指实现系统功能的一段程序。它在后台运行,为本地系统和远程网络提供特定的服务。Windows服务包括四个部分:服务控制管理器、服务控制程序、服务程序和服务配置程序。各自的功能如下:服务控制管理器:是系统中的一个RPC服务器,包括了已安装服务数据库、自动启动服务、服务记录列表和服务控制管理器句柄等信息。服务控制程序:用于实现服务的开启、控制和查询。第六章 恶意代码攻击与防御服务程序:指明了服务的执行代码,一个服务程序可以有多个执行代码,这由服务的类型决定(SERVICE_WI
13、N32_OWN_PROCESS类型和SERVICE_WIN32_SHARE_PROCESS类型)。服务配置程序:用于修改、查询已经安装了的服务信息。通过系统服务来启动木马相对注册表启动而言,隐蔽性更强。添加服务通常有三种方法:利用现成的工具,调用服务相关的API编程实现,手动修改注册表。前面两种方法其实是一种方法,都是通过调用API函数来实现的。这里我们主要介绍比较简单的方法手动修改注册表添加服务。第六章 恶意代码攻击与防御系统服务与以下几个注册表项相关:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesHKEY_LOCAL_MACHINESYS
14、TEMControlSet001ServicesHKEY_LOCAL_MACHINESYSTEM ControlSet002Services这三个注册表项对应了Windows 启动过程的三个控件组:CurrentControlSet、ControlSet001和ControlSet002。它们有相同的子项结构,CurrentControlSet是ControlSet001的副本,操作系统每成功启动一次,就把CurrentControlSet和ControlSet001中的数据复制到ControlSet002中。在对配置进行更改后,所作的更改会被写入CurrentControlSet和Contr
15、olSet001中。第六章 恶意代码攻击与防御在上面任一项中添加一个子项,它的名字就是要添加的服务,比如TestService。然后在TestService项下新建一系列字符串,具体如下:Type=dword:00000010 Start=dword:00000002 ErrorControl=dword:00000001 ImagePath=c:windowstest.exe DisplayName=test ObjectName=LocalSystem Description=just for test这样就成功地添加了一个系统服务。第六章 恶意代码攻击与防御利用系统服务启动木马的思路就是
16、把木马程序注册成为一个自动运行的服务,这样在系统启动时都会加载木马。利用系统服务启动木马相比较用注册表启动木马而言有很多好处:(1)没有权限限制,因为以系统服务启动的程序其权限都是LocalSystem;(2)运行相对隐蔽,不易被发现;(3)用户启动机器后就可以运行,不必等待用户登录。第六章 恶意代码攻击与防御3.自启动目录自启动目录自启动目录是用来启动一些应用软件的,它是Windows系统中最基本的启动方式。Windows系统有两个启动目录,分别是第一启动目录和第二启动目录。第一启动目录默认位置为:C:Documents and Setttings用户名开始菜单程序启动对应的注册表位置为:H
17、KEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerShellFolders;第六章 恶意代码攻击与防御“startup”=“要启动的程序的路径”;第二启动目录默认位置为:C:Documents and SettingsAll Users开始菜单程序启动对应的注册表位置为:HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionexplorerUser Shell Folders;“Common Startup”=“要启动的程序的路径”;如果利用默认的自启动路径来启动
18、木马,很容易就会被用户发现。我们可以修改注册表中自启动目录的路径,把自启动目录路径修改为木马的路径,这样就可以减少被发现的几率。第六章 恶意代码攻击与防御4.系统配置文件系统配置文件系统配置文件其实是系统留给用户的一个接口,用户可以通过修改系统配置文件达到更改系统相关设置的目的。Windows系统中可以利用的系统配置文件主要有 win.ini、system.ini、wininit.ini、winstart.bat、autoexec.bat、AutoRun.inf。下面举例介绍这几种配置文件的格式,其中test.exe是指要运行的木马程序。win.int的启动win.ini文件记录了Window
19、s系统启动后加载用户界面的相关信息,包括程序的启动、用户桌面设置和文件关联等信息,主要完成GUI下相关的环境配置。它的内容是分节的,各节由一组相关的设定组成。在Windows节中,可以设置要运行的程序,格式如下:第六章 恶意代码攻击与防御WindowsRun=test.exeLoad=test.exe system.ini的启动system.ini最初是win 16的系统配置文件,后来又增加了一些新的设置,通过system.ini也可以启动文件,格式如下:bootShell=Explorer.exe test.exe第六章 恶意代码攻击与防御 wininit.ini的启动wininit.ini
20、主要用于在Windows图形界面启动后不能更新、重命名或删除的文件(比如:某些系统补丁程序在更新某些系统文件时,由于系统文件一直在使用,因此只有在进入图形界面前对其进行更新)。当系统重启后会在进入Windows前查找windows.ini文件,再按照文件中指定的命令格式更新或者删除文件,在完成这些工作后,windows.ini文件本身也会被自动删除,因此正常情况下在Windows系统目录下没有wininit.ini这个文件,格式如下:rename c:windowsorig.exe=c:test.exe这个命令的意思是用test.exe更新orig.exe,然后删除test.exe文件,之后加
21、载orig.exe这个程序,这样就达到了启动的目的。需要注意的是必须使用完整路径,而且不能使用长文件名。第六章 恶意代码攻击与防御 winstart.bat的启动winstart.bat是一个系统自启动的批处理文件,也用于系统重启后的复制、删除等任务。它也是在系统启动时运行。autoexec.bat的启动和winstart.bat一样,autoexec.bat批处理文件也会在系统启动时执行。AutoRun.inf的启动第六章 恶意代码攻击与防御 Autorun.inf文件是Windows系统提供的,主要用来帮助驱动器启动某些程序,比如光盘自动运行时的图标显示。Autorun.inf不仅支持光盘
22、,也支持硬盘和U盘等各类存储设备。我们可以把木马路径写入autorun.inf文件,在用户打开驱动器时,autorun.inf就会运行,从而加载木马程序。文件格式如下:AutoRun open=test.exe第六章 恶意代码攻击与防御5.其他木马启动方法其他木马启动方法1)BHOBHO(Browser Helper Objects)即浏览器辅助对象,这是IE的一种插件技术。它能探测到IE的很多事件,比如浏览器地址、生成的新窗口、工具栏的改变等,并通过对这些事件的响应与浏览器进行交互。当打开基于IE的浏览器时系统就会启动BHO所指向的程序,BHO插件在注册表里保存,注册表里可以保存多个插件,也
23、就是说可以指向多个程序。我们可以利用BHO随浏览器启动的特点,把木马程序注册成BHO插件,这样木马就可以在浏览器启动时加载到浏览器进程中了。这种方法不仅解决了木马的启动问题,而且还能有效地绕过防火墙的检测。第六章 恶意代码攻击与防御2)Winsock 2 SPISPI(Service Provider Interface)即服务提供者接口,它是由Winsock 2提供的,层次结构如图6-1所示。从图中可以看出,最上层是应用程序,中间是ws2_32.dll,最底层是SPI。SPI是以dll的形式存在的,它只有一个入口函数WSPStartup,这是SPI的初始化函数。由图6-1可以看出ws2_32
24、.dll是依靠于SPI的,实际上ws2_32.dll就是使用标准的动态库来加载SPI的dll到系统中去,并调用WSPStartup来初始化它。第六章 恶意代码攻击与防御图6-1 Winsock 2层次关系图第六章 恶意代码攻击与防御3)文件绑定这也是木马启动的一种方法,如果把木马程序绑定到系统文件中,那么Windows在运行这个系统文件时,木马程序也会被加载。第六章 恶意代码攻击与防御4)文件关联在Windows系统中,每种格式的文件都会对应一个打开它的应用程序(如果没有注册某个文件类型关联,系统会提示让用户选择用什么软件打开)。这些对应关系的信息是保存在注册表里的,如果把木马程序注册为某一种
25、格式的默认打开程序,则当用户打开这种格式的文件时就会运行木马程序,这就是文件关联启动木马的思想。最早的木马“冰河”就是通过这种方式启动的。第六章 恶意代码攻击与防御5)其他方式这里的方法都是通过替换Windows系统本身的一些可执行文件来实现启动的。(1)explorer.exe启动。explorer.exe是Windows系统的桌面程序,用户登录后,系统会自动加载这个程序。(2)屏幕保护启动。Windows系统的屏幕保护程序是pe格式的可执行文件,如果把屏幕保护程序的文件替换成木马,把屏幕保护的时间设置为10分钟,那么木马每10分钟就会加载一次。(3)计划任务启动。Windows系统提供计划
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络攻击与防御 网络攻击与防御课件第六章 恶意代码攻击与防御 网络 攻击 防御 课件 第六 恶意代码