版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
网络分析技术原理、实践与WinPcap深入解析目录\h第1章揭开网络分析的神秘面纱\h1.1网络分析概述\h1.2网络分析的主要用途\h1.3黑客使用嗅探器的方法\h1.4被嗅探数据的真面目\h1.4.1使用嗅探器获得FTP的用户名和密码\h1.4.2使用嗅探器分析冲击波蠕虫(BlasterWorm)\h1.5常见的网络分析器\h1.6网络分析器的工作原理\h1.6.1以太网简介\h1.6.2理解开放系统互连(OSI)模型\h1.6.3了解CSMA/CD协议\h1.6.4IP、ICMP、TCP与UDP协议\h1.6.5硬件\h1.6.6欺骗交换机\h1.7嗅探器的检测\h1.7.1检测嗅探器的原理\h1.7.2防止网络嗅探可采取的安全措施\h1.8网络分析工具的主要功能组成\h1.9Wireshark的概述、安装与使用\h1.9.1Wireshark的概述\h1.9.2Wireshark的安装\h1.9.3Wireshark的使用\h1.10小结\h第2章初识网络分析基础库WinPcap\h2.1WinPcap概述\h2.2WinPcap的优点\h2.3WinPcap的使用者\h2.4WinPcap的体系架构\h2.4.1WinPcap的主要组成\h2.4.2数据包捕获的基本过程\h2.4.3WinPcap的驱动程序\h2.4.4WinPcap内核驱动的主要功能\h2.5用户空间库接口函数\h2.5.1wpcap.dll库中的重要函数\h2.5.2Packet.dll库中的重要函数\h2.6小结\h第3章网络分析工具的内核驱动基础知识\h3.1Windows驱动程序基础知识\h3.1.1驱动对象(DRIVER_OBJECT)\h3.1.2设备对象(DEVICE_OBJECT)\h3.1.3设备扩展(_DEVICE_EXTENSION)\h3.1.4IRP与派遣函数\h3.1.5同步处理\h3.1.6内核的内存操作\h3.1.7内存操作的运行时函数\h3.1.8内核的注册表操作\h3.2NDIS协议驱动程序\h3.2.1三种类型的网络驱动程序\h3.2.2协议驱动程序的特征结构体\h3.3小结\h第4章编译与使用WinPcap\h4.1源代码目录结构\h4.2构建驱动程序NPF\h4.3构建Packet.dll库\h4.4构建wpcap.dll库\h4.5安装NPF驱动程序与各库文件\h4.6使用WinPcap库进行程序开发的实例\h4.7小结\h第5章WinPcap驱动程序的初始化与清除\h5.1驱动程序中的初始化函数DriverEntry\h5.1.1DriverEntry函数的工作流程\h5.1.2DriverEntry函数的具体实现\h5.2驱动程序中的卸载函数DriverUnload\h5.3小结\h第6章获得与释放网络适配器设备列表\h6.1使用WinPcap选择合适的适配器\h6.1.1wpcap.dll库导出的相应函数\h6.1.2获得与释放网络适配器列表的实例\h6.1.3获取已安装设备高级信息的实例\h6.2获得网络适配器列表的幕后\h6.2.1wpcap.dll库中获得网络适配器列表的实现\h6.2.2Packet.dll库中获得网络适配器列表的实现\h6.2.3内核空间中获得网络适配器列表的实现\h6.3释放网络适配器列表的实现\h6.4小结\h第7章打开与关闭适配器\h7.1使用WinPcap打开与关闭适配器\h7.1.1wpcap.dll库导出的相应函数\h7.1.2关键数据结构pcap_t\h7.1.3打开与关闭网络适配器的实例\h7.2打开与关闭适配器的幕后\h7.2.1打开适配器的实现\h7.2.2关闭适配器的实现\h7.3小结\h第8章数据包的发送\h8.1使用WinPcap发送数据包\h8.1.1wpcap.dll库导出的相应函数\h8.1.2数据包发送实例\h8.2数据包发送的幕后\h8.2.1发送单个数据包的实现\h8.2.2单个数据包发送多次的实现\h8.2.3发送队列方式的实现\h8.3小结\h第9章数据包的内核过滤\h9.1基础知识\h9.1.1flex和bison简介\h9.1.2#line宏\h9.1.3以太网的典型帧结构\h9.1.4数据包过滤的原理简介\h9.1.5BPF虚拟机\h9.1.6Tcpdump与WinDump\h9.1.7BPF指令集实例\h9.1.8BPF过滤器的优化研究\h9.1.9BPF系统架构\h9.2WinPcap数据包过滤基础\h9.2.1数据包过滤过程\h9.2.2过滤表达式\h9.2.3编译过滤表达式生成过滤器的字节码\h9.2.4把过滤器字节码传递给内核\h9.3使用WinPcap过滤数据包\h9.3.1wpcap.dll库导出的相应函数\h9.3.2使用过滤器的实例\h9.4数据包过滤的幕后\h9.4.1wpcap.dll库中相应函数的实现\h9.4.2Packet.dll库对应的函数\h9.4.3驱动程序中对应的函数\h9.4.4NPF_tap函数的数据包过滤部分\h9.5小结\h第10章数据包的接收\h10.1使用WinPcap接收数据包\h10.1.1wpcap.dll库导出的相应函数\h10.1.2数据包接收的实例\h10.2数据接收的幕后\h10.2.1wpcap.dll库中相应函数的实现\h10.2.2Packet.dll库中相应函数的实现\h10.2.3内核空间部分的实现\h10.3小结\h第11章统计网络流量与网络状态\h11.1使用WinPcap进行网络统计的方法\h11.1.1wpcap.dll库导出的相应函数\h11.1.2统计实例\h11.2网络统计的幕后11.2.1工作模式\h11.2.2模式设置函数\h11.2.3网络流量统计的实现\h11.2.4网络状态统计的实现\h11.3小结\h第12章文件的存储与读取\h12.1libpcap文件存储格式\h12.1.1转储文件的头信息\h12.1.2每个数据包的头信息\h12.2使用WinPcap进行文件存储与读取\h12.2.1wpcap.dll导出的相应函数\h12.2.2文件存储与读取的实例\h12.3数据包文件存储的幕后\h12.3.1pcap_dump_open函数\h12.3.2pcap_dump函数\h12.3.3pcap_dump_flush函数\h12.3.4pcap_dump_close函数\h12.4数据包文件读取的幕后\h12.5内核文件转储的实现\h12.5.1wpcap.dll库中相应函数的实现\h12.5.2Packet.dll库中相应函数的实现\h12.5.3驱动程序中对应的函数\h12.6小结\h第13章修改源代码\h13.1给wpcap.dll增加设置重复发送次数的函数\h13.1.1修改步骤\h13.1.2测试结果\h13.2修改WinPcap的内核驱动代码\h13.2.1支持内核转储功能\h13.2.2测试内核统计与转储模式\h13.2.3支持大量数据包的转储\h13.2.4内核驱动程序修改后的源文件\h13.3小结\h第14章性能测试与分析\h14.1测试环境\h14.2测试实例\h14.2.1不同发送方式的比较\h14.2.2发送不同数据包长度的比较\h14.2.3不同接收方式的比较\h14.3小结\h附录A源语法规范\h附录B过滤表达式规范\h附录CSYN洪泛攻击的详细资料\hC.1SYN洪泛攻击原理\hC.2使用WinPcap实现SYN洪泛攻击的方法\hC.3SYN洪泛攻击的防御\h附录DARP欺骗资料\hD.1ARP简介\hD.2ARP工作原理\hD.3常见ARP攻击类型\hD.3.1ARP扫描\hD.3.2ARP欺骗\hD.4局域网ARP欺骗的应对\hD.4.1ARP欺骗的常见情况\hD.4.2故障诊断\hD.4.3故障处理\hD.4.4使用网络分析工具找出ARP病毒源\hD.5常用的防护方法\hD.5.1静态绑定IP地址与MAC地址\hD.5.2使用ARP防护软件\hD.5.3使用具有防御ARP欺骗功能的路由器\hD.6ARP欺骗的正当用途注:原文档电子版(非扫描),需要的请下载本文档后留言谢谢。第1章揭开网络分析的神秘面纱计算机网络的迅速发展,给我们的生活、工作与学习带来了巨大的改变。网络缩短了信息传递的时间,扩大了信息传递的空间。我们通过网络来获得信息、共享资源,同时也开阔了视野,还可以及时了解时事新闻并获取各种最新的知识和信息。随着网络的普及与发展,我们越来越依赖网络。与此同时,相关的网络问题也就随之凸显。网络安全、网络性能、网络软件质量等问题,越来越受人们的关注,并逐渐成为网络应用所面临的严重问题。正是在这种局势下,网络分析逐渐发展成为一门独立的、专门的学科。网络分析是一把双刃剑。当网络、系统与安全的专业人员使用它处理网络故障或监视网络时,或许也正有网络入侵者为了达到非法目的在使用它。网络分析仅仅是一种技术,就像所有的技术一样,它可以被用在好的目的之上,也可以被用在坏的目的之上。从技术角度来说,网络分析(networkanalysis)与网络嗅探(networksniff)没什么实质区别,其区别仅存在于人们心理与情感层面。网络分析的词性更偏向褒义与正义,而网络嗅探更偏向贬义与邪恶。由于本书重点是讨论技术层面上的内容,因此后续将不再对两者进行严格区分,除非有特别说明。为了便于深入理解网络分析技术,本章将对网络分析(网络嗅探)相关的网络模型、网络硬件等基础知识进行介绍。同时为了让读者能够使用Wireshark工具来完成本书后续各章节的相关演示实例,我们还会对Wireshark网络分析器的安装与使用做简要说明。1.1网络分析概述网络分析(又称网络嗅探、网络流量分析、协议分析、数据包分析、网络窃听等)就是通过捕获网络流量并进行深入检查,了解网络中发生了什么情况的过程。从定义来看,网络分析主要指在网络上,通过某台主机捕获其他主机之间的数据包实现对网络流量的监视、分析或记录。不过在本书中,还包含了数据包的发送技术。网络分析器(networkanalyzer)通常用于通用协议数据包的解码,并以人可读的格式来显示网络流量的内容。而嗅探器(sniffer)则是监视网络上所传输数据的一种工具。未经授权的嗅探器会对网络安全构成威胁,因为它们具有难被发现并且可插入在任何地方的特性,使其成为黑客最喜欢使用的一种工具。本书后面不会对网络分析器与嗅探器做严格区分,除非有特别说明。历史上,网络分析器曾经专注于通过昂贵的、并难以使用的硬件设备来实现。而新出现的先进技术使得基于软件的网络分析器的开发成为可行方案,其为有效进行网络分析提供了一种更为便捷与廉价的工具,同时具备很强的网络分析能力。一个网络分析器由硬件与软件两部分共同组成。它可以是一个带有特定软件的单独硬件设备,也可以是直接安装在台式电脑或笔记本电脑上的一个软件。尽管每种产品之间具有差别,但基本都是由下列五个基本部分组成的。❑硬件:多数网络分析器是基于软件的,并工作于标准的操作系统与网卡之上。不过有一些硬件网络分析器会提供额外的功能,诸如硬件故障分析(比如循环冗余纠错(CRC)错误、电压问题、网线问题、抖动(jitter)、逾限(jabber)、协商错误等)。除了部分网络分析器仅支持以太网或无线网适配器以外,其他的均可支持多重适配器,并允许用户定制它们的配置。依据实际使用情况来看,网络分析器可能也需要一个集线器或一个网线探针(cabletap)连接已有的网线。❑捕获驱动器:这是网络分析器中负责从网线上捕获原始网络数据包的组件。它会过滤出需要捕获的网络数据,并把所捕获的数据保存在一个缓冲区中。这是网络分析器的核心,没有它就无法捕获网络数据包。❑缓冲区:该组件用于保存所捕获的数据,直到该缓冲区被填满为止。不过,如果采用循环缓冲区的方式,那么最新的数据将会替换最老的数据。❑实时分析:该组件可对实时数据包进行分析,也就是说数据包一离开网线就可启用此组件。部分网络分析器还用该组件监测网络性能问题,比如网络入侵检测系统利用它寻找非法的入侵活动。❑解码(器):该组件用于显示网络数据包的内容。它以更便于人们理解的方式来描述数据包,是可读的。解码特定于每个协议,因此网络分析器当前支持的可解码的协议数是变化的,网络分析器可能需要经常加入新的解码协议。另外,典型的网络分析器通常会采用如下格式来显示所捕获网络流量的信息。❑概要:该窗格显示所捕获内容的概要信息,包含时间、源地址、目标地址、最高层协议的名称、信息等内容。❑详情:该窗格提供捕获数据包所包含的每层内容的细节信息(采用树形结构)。❑数据:该窗格用十六进制与文本格式显示捕获数据包的原始数据。图1-1所示为Wireshark网络分析器的主窗口。图1-1Wireshark网络分析器的主窗口各种网络分析器之间的主要差别在于所支持的解码的协议数量、用户接口、图形化与统计能力等的不同。其他的差别则包括推理能力(比如专家分析特性)与数据包解码的质量等的不同。尽管不同的网络分析器可能会针对同一个协议进行解码,但实际工作质量可能并不相同。1.2网络分析的主要用途通过网络分析可以监测网络运行状况、帮助排除网络故障、分析与测试网络性能瓶颈等,同时还可帮助解决系统配置问题与应用程序瓶颈方面的问题。所以系统管理员、网络工程师、安全工程师、系统操作员、软件测试工程师与程序员都会经常使用到网络分析技术,对他们而言,网络分析器是极具价值的分析工具。例如,黑客可使用网络扫描来识别可利用的网络资源(比如,网络上可利用的主机、端口或资源)。一旦一个易受攻击的资源被探测到,它就可以被利用,这将危及设备的安全。很多时候,一个入侵者就藏在这些扫描的背后。安全专家可使用网络分析技术来识别这些非法的攻击,从而改善网络安全。近年来我们不仅看到蠕虫活动的激增,更是看到蠕虫攻击系统与网络带来的严重危害。互联网上蠕虫的传播越来越快,也更智能与隐蔽。安全专家可以通过网络分析工具来识别蠕虫的踪迹。具体来说,网络分析器的主要用途如下:❑将数据包中的二进制数据转换成易读的格式。❑处理网络故障。❑分析网络性能以发现瓶颈。❑网络入侵检测。❑出于辩护与收集证据的目的记录网络流量。❑分析应用程序的操作。❑发现有问题的网卡。❑发现病毒爆发的源头或拒绝服务(DoS)的攻击。❑发现间谍软件。❑在开发阶段对网络编程进行调试。❑发现泄密的计算机。❑确认网络通信是否符合公司的政策。❑作为学习协议的资源。1.3黑客使用嗅探器的方法如果嗅探器被心怀恶意的人使用,那么将会对网络安全构成严重威胁。比如,网络入侵者会使用嗅探的方式获取用户的秘密信息。以非法的方式使用嗅探器攻击他人称为被动的攻击,因为嗅探器并不会直接与网络上任何其他系统相互作用或连接,它的这种被动特性使其很难被检测出来。同时,嗅探器也能被安装在网络中的某台计算机上,来达到主动攻击的泄密目的。入侵者在网络上使用嗅探器可以实现如下目的:❑取得明文的用户名和密码。❑发现网络用户的使用模式(usagepattern)。❑泄露私有信息。❑捕获与回放VoIP电话通话。❑映射网络的部署。❑被动操作系统指纹(passiveOSfingerprinting)。上述都是嗅探器的非法使用形式。当然,若作为一个渗透测试人员,以此找出并报告这些类型的弱点,那么这就成了对嗅探器的合法使用了。为了嗅探,入侵者首先会获取感兴趣的系统的通信网线的访问权,这意味着要在同一共享网段上或在通信路径之间的网线某处接入探针。即使入侵者不与目标系统或通信访问点物理接触,其仍然有方法嗅探到网络流量,具体方式如下:❑闯入一台目标计算机中且安装远程嗅探器。❑闯入一个通信访问点,比如一个因特网服务提供商(ISP)系统中,安装嗅探软件。❑在已经装入嗅探软件的ISP上定位一个系统。❑使用社会工程学\h[1]获得对一个ISP的直接访问权,安装一个数据包嗅探器。❑在目标计算机组织或ISP内部有一个同谋者,并且其在那儿已经安装了嗅探器。❑重定向或复制通信,使通信路径中包含入侵者的计算机。入侵者通常会把嗅探程序配置成能检测特定事情(如输入密码)的状态,在其嗅探到相关信息后,或发送给入侵者,或储存起来,供入侵者稍后取回。易受该类程序攻击的协议包括远程登录协议(Telnet)、文件传送协议(FTP)、第3版邮局协议(POP3)、网际报文存取协议(IMAP)、简单邮件传输协议(SMTP)、超文本传输协议(HTTP)、远程登录(rlogin)、简单网络管理协议(SNMP)等。大多数嗅探程序都包含了类似rootkit的工具。该工具在泄密系统中极具代表性,是一种奇特的程序,具有隐身功能:无论静止时(作为文件存在),还是活动时(作为进程存在),都不会被察觉。换句话说,这种程序可能一直存在于我们的计算机中,但我们却浑然不知,这一功能正是许多人梦寐以求的——不论是黑客,还是取证人员。黑客可以在入侵后植入rootkit,秘密地窥探敏感信息,或伺机而动;取证人员也可以利用rootkit实时监控嫌疑人员的不法行为,搜集证据,以便及时采取行动。实际上rootkit是一个特洛伊程序集,在一个受控的系统上它会替换一些合法的命令(例如ps、ifconfig、ls等就是一些常被替换的命令),以避免被检测到。同时rootkit还会安装一些额外的软件,如sniffers等。rootkit就是通过替换命令和使用、清除日志条目等来掩盖入侵者的踪迹的。同时入侵者还可安装其他的程序,像嗅探器、键盘记录器等后门软件。木马、病毒与蠕虫之间的区别究竟什么是木马、病毒和蠕虫,它们之间存在着什么区别?大多数人并没有一个清晰的了解。这几个术语很多时候被混用了。事实上,它们三者之间有着非常显著的不同。它们各自用不同的方式来感染计算机,并且每个都有各自不同的使用动机。一个病毒是一段程序,它通过附加到文件上或替换文件来感染用户的计算机,且用户并不知情。病毒能够执行它自己,并复制自己到系统中其他的文件上,通常的方式是把自己附加到可执行文件(也就是主机文件)上。当用户传递受感染的文件或共享存储介质(如U盘)时,病毒就会从一台计算机传染到另一台计算机上。一个良性的病毒不会具有太多破坏性的行为,不过会有一些令人讨厌的或导致人们不方便的行为,比如在一个特定的时间里在主机上显示一些消息。但是即使是一个良性的病毒也会消耗掉一些有用的内存、CPU处理时间和磁盘空间。有恶意的病毒具有很大的危险性,因为它们能导致大量的毁坏活动产生,比如修改软件与数据、删除文件或擦除整个系统。目前已存在的病毒类型较多,下面列举一些:❑文件(Fileinfector)病毒:它把自己附加到可执行文件上。❑开机型(Bootsector)病毒:它把病毒代码放在计算机的磁盘启动扇区上,所以每次计算机被启动时就执行该病毒。❑主引导记录(Masterbootrecord)病毒:它感染磁盘的第一个物理扇区。❑复合型(Multi-partite)病毒:它通常具有多种感染方法。❑宏(Macro)病毒:它把自己附加到文档或模板的宏中。一个木马也是一段程序,不过它隐藏在从表面上看来是有趣的或有益的软件中,比如是一个游戏或有用的工具。然而,当用户执行这个程序时,隐藏的恶意程序在用户不知情的情况下也会被执行。接着该恶意程序就在内存中运行,入侵者通过后门来操控它,或该恶意程序对系统文件或数据进行破坏性的活动。一旦中了木马,系统可能就会门户大开,毫无秘密可言。木马与病毒的最大区别是木马不具传染性,它并不能像病毒那样复制自身,也并不刻意地去感染其他文件。它主要通过将自身伪装起来,吸引用户执行。比如,它们通常的传递方式是:对此不清楚的用户打开一份从互联网上收到的电子邮件,并对邮件附件执行一个文件下载的操作。现在的木马一般以窃取用户相关信息为主要目的,相对病毒而言,可以简单地说,病毒破坏信息,而木马窃取信息。但是一个木马也能包含一个病毒或一个蠕虫。一个蠕虫则是一段像病毒的程序,但是添加了不使用主机文件就能复制自己的功能。对于蠕虫,并不需要接收一个受感染的文件或者使用一个受感染的存储介质才会被传染,蠕虫自己就可以完成传染的工作。蠕虫通过计算机网络主动地复制和繁殖自己。当蠕虫正在繁殖或试图繁殖时,它不仅消耗有用的系统资源,还消耗网络带宽。从破坏性的角度看,蠕虫不是普通病毒所能比拟的,网络的发展使蠕虫可以在很短的时间内蔓延整个网络,从而造成网络瘫痪。\h[1]社会工程学(socialengineering):准确来说,它不是一门科学,社会工程学是一种利用人性的弱点(如人的本能反应、好奇心、信任、贪便宜等)进行诸如欺骗、伤害等行为,从而获取自身利益的手段。说它不是科学,是因为它不是总能重复和成功,而且在信息充分多的情况下,会自动失效。社会工程学的窍门也蕴涵了各式各样的、灵活的构思与变化因素。1.4被嗅探数据的真面目要想详细了解嗅探的概念,最简单的方法就是在实际应用中看一看具体的实例。1.4.1使用嗅探器获得FTP的用户名和密码图1-2展示的是从一台计算机连接到一台FTP服务器的服务请求,以及通过Wireshark嗅探所传输的数据包。从第一个和第二个数据包的内容可以看出,采用网络分析器获得用户名与密码是非常容易的事情(从数据包的内容可以很直接地知道用户名(USER)为lxf,密码(PASS)为lxf)。图1-2嗅探一个连接1.4.2使用嗅探器分析冲击波蠕虫(BlasterWorm)1.问题每次启动计算机,就接收到一个消息,告诉你60s内要重启计算机。只要时间超过60s,计算机就会自动关机。这将导致你每次使用计算机不会超过60s。2.嗅探数据包出现上述问题,很有可能是蠕虫或病毒造成的。任何时候,如果你怀疑一个病毒或蠕虫可能就是导致计算机出现某问题的原因,就直接在问题计算机上安装嗅探器,这不是一个明智的选择。恶意软件经常会干扰嗅探器的正常工作,最好的办法是使用端口映射。数据包捕获的时机为:从问题计算机刚刚启动开始到将要自己关机时结束。3.数据包分析所捕获的数据包如图1-3所示。此截图中记录了问题计算机与另一台计算机之间传输的几个TCP数据包。可在进行数据包捕获时网络上并没有其他计算机活动,所以这里的网络行为是可疑的。图1-3所捕获的数据包识别病毒或蠕虫网络流量的一个较好方法是查看网络间的原始数据。我们来分析一下所捕获的每个数据包。第一个数据包看不出有什么特别的,没有多少有用的信息,如图1-4所示。图1-4第一个数据包的内容接着看第二个数据包,发现其中有对C:\WINNT\System32目录的引用。这是一个很重要的系统目录,包含了许多加载和运行操作系统的文件。如果看见一个网络数据包引用这个目录,则通常是存在问题的一个提示(见图1-5)。图1-5引用C:\WINNT\System32意味着可能访问系统文件再来看第三个数据包,它没有提供什么有用的信息,但是第四个数据包显示的信息值得关注,如图1-6所示。图1-6第四个数据包引用了msblast.exe其中,msblast.exe就是冲击波蠕虫,这就是计算机出现问题的根源所在。冲击波蠕虫资料冲击波蠕虫是一种利用WindowsDCOMRPC漏洞进行传播的蠕虫,传播能力很强。蠕虫传播时破坏了系统的核心进程svchost.exe,从而导致了系统不稳定,并可能造成系统崩溃。它扫描的端口号是TCP135,攻击成功后会利用TCP4444和UDP69端口下载并运行它的代码程序msblast.exe。这个蠕虫还将在某个时间(如8月16日)对进行拒绝服务攻击,目的是为了使用户不能及时地得到这个漏洞的补丁。冲击波蠕虫攻击系统成功时,表现为如下特征:❑系统被频繁地重启。❑用netstat命令可以看到大量TCP135端口的扫描。❑系统中出现文件:%Windir%\system32\msblast.exe。❑注册表中出现键值:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\"windowsautoupdate"="msblast.exe"。检测和删除冲击波蠕虫如果你的计算机感染了冲击波蠕虫,可以用下面办法手动删除:(a)打开任务管理器,停止进程msblast.exe。(b)检查并删除文件:%Windir%\system32\msblast.exe。(c)进入注册表(开始→运行:regedit),找到键值:KEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run在右边的栏目,删除下面的键值:"windowsautoupdate"="msblast.exe"(d)给系统打RPC漏洞补丁(否则很快会被再次感染)。防御冲击波蠕虫如果用户不需要使用下面的端口,可以在防火墙或路由器上暂时关闭它们:(a)TCP4444:蠕虫开设的后门端口,用于远程命令控制。(b)UDP69:用于文件下载。蠕虫用以下端口发现有漏洞的系统:TCP135,TCP137,TCP139。蠕虫感染途径(a)蠕虫感染系统后首先会检测是否有名为"BILLY"的互斥体存在,如果检测到该互斥体,蠕虫就会退出;如果没有,就会创建。(b)在注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run中添加以下键值:"windowsautoupdate"="msblast.exe"。通过该键值可以实现每次用户登录时的蠕虫自动运行。蠕虫还会在本地的UDP69端口上建立一个TFTP服务器,以便向其他受侵害的系统传送蠕虫的二进制程序msblast.exe。(c)蠕虫选择目标IP地址的时候会首先选择受感染系统所在子网的IP,然后再按照一定算法随机在互联网上选择攻击目标。(d)蠕虫会向目标的TCP135端口发送攻击数据。如果攻击成功,则会监听目标系统的TCP4444端口以此作为后门,并绑定cmd.exe。然后蠕虫会连接到这个端口,发送tftp命令,回连到发起进攻的主机(UDP69端口),将msblast.exe传到目标系统上,然后运行它。(e)每当蠕虫检测到当前系统月份是8月之后或者日期是15日之后,也就是说,在1~8月的16日至此月最后一天,以及9~12月的任意一天,其就会向微软的更新站点""发动拒绝服务攻击。若攻击失败,则可能造成没有打补丁的Windows系统RPC服务崩溃,WindowsXP系统可能会自动重启。该蠕虫不能成功侵入Windows2003,但是可以造成Windows2003系统的RPC服务崩溃,默认情况下,这将使系统重启。蠕虫代码中还包含以下文本数据:IjustwanttosayLOVEYOUSAN!!billygateswhydoyoumakethispossible?Stopmakingmoneyandfxyoursoftware!!1.5常见的网络分析器现在已经有大量、各种各样的网络分析软件可以使用了。下面将列出一些较优秀、常见的网络分析器。❑Wireshark:目前最好的网络分析器之一,它是作为一个使用自由、质量达到商业化工具的网络分析器被开发的。Wireshark有很多特征,比如,拥有友好的用户图形界面、可解码超过400个的协议等,同时它也被积极地开发与维护着。Wireshark可在UNIX、Linux、MacOSX与Windows系统上运行,其可从网站上获取。❑Tcpdump:最古老的、最常用的网络分析器。它基于命令行模式运行在UNIX、类UNIX及MacOSX系统上。此分析通过网站进行开发与维护。❑WinDump:是Windows版本的Tcpdump,它使用WinPcap库,可从/windump网站上获取。❑NetworkGeneralSniffer:目前最流行的商业网络分析器,现在有一个企业网络捕获工具套件,在网站上有其完整的产品描述。❑Windows2000and2003ServerNetworkMonitor:通过一个内建程序来执行的网络分析器。该程序在操作系统安装盘的"AdministrativeTools"文件夹中,但它不是默认安装的,因此需要从安装盘中添加安装。❑EtherPeek:WildPackets开发的一个商业化的网络分析器。从网站上可以了解其详细的信息。❑Snoop:一个基于命令行模式运行的网络分析器,包含在SunSolaris操作系统中。❑Snort:一个网络入侵检测系统(NIDS),可用作网络分析,目前在网站上开发与维护着。❑Dsniff:一个非常流行的网络嗅探软件包。它是一个用来嗅探感兴趣的数据(如密码),并使嗅探过程更便利(如规避交换机)的程序集。它在/~dugsong/dsniff网站上被积极地维护着。❑Ettercap:专门用来嗅探一个基于交换的网络,可在Linux、Windows和Solaris平台上运行。它内建了诸多特征,比如密码收集、操作系统指纹识别(OSfingerprinting)和字符注入等。它在网站上被积极地维护着。❑Analyzer:Windows操作系统下使用的一个自由的网络分析器。WinPcap和Win-Dump的开发者仍在继续积极地进行相关开发。可从http://analyzer.polito.it网站下载此工具。❑Packetyzer:一个在Windows操作系统下自由使用的网络分析器。它使用的是Wire-shark的核心逻辑,目前被NetworkChemistry在/open_source_tools网站上积极地维护着。❑MacSniffer:专门为MacOSX操作系统设计,且作为Tcpdump的一个前端软件被构建。该软件是共享软件,可从/brianhill/macsniffer.html网站上下载。1.6网络分析器的工作原理本节将简要介绍一下网络分析器工作的背景知识,并给出相关的网络与协议的背景信息。如果还需了解更多的信息,可参阅其他优秀的资源,如RichardStevens的《TCP/IP详解》1~3卷就是其中之一。1.6.1以太网简介以太网是计算机之间通信的最常用的协议标准。它是基于共享介质构建的,所以在局域网同一网段内所有的计算机会共享相同的网络流量。事实上,它就是众所周知的一种广播传输方式,也就是说,同一数据将会传送给同一网段中的所有其他的计算机。信息一般会被分解成易管理的数据块,这些数据块称为数据包。每个数据包有一个头,包含目的计算机地址与源计算机地址。即使该信息会发送给一个网段上所有的计算机,也只有与目标地址匹配的计算机才会产生回应。虽然网络上的其他所有计算机仍然可收到该数据包,但是如果该数据包不是它们想接收的就会被丢弃,除非某台计算机上正运行着一个嗅探器。通常计算机运行在非混杂模式下,只能监听派发给自己的信息。当运行一个嗅探器时,数据包捕获驱动器会把计算机网络接口卡(NetworkInterfaceCard,NIC)设置为混杂模式。这意味着,嗅探的计算机能在该网段上见到所有的网络流量,而不管数据包是发送给谁的。在这种情况下,它就能见到全部邻居的会话。因为许多计算机可能会共享一个以太网段,所以每台计算机一定要有唯一的一个标识符且要硬件编码到NIC上。以太网网址,也就是传输介质访问控制协议(MAC)的地址,就是这样一个标识符。在WindowsNT、Windows2000、WindowsXP与Windows2003操作系统中都可在命令行下输入ipconfig/all查看MAC地址,MAC地址将会列在"PhysicalAddress"字段后。1.6.2理解开放系统互连(OSI)模型国际标准化组织(InternationalOrganizationforStandardization,ISO)在20世纪80年代早期开发了开放系统互连(OSI)模型。此模型描述了网络协议和组件在一起工作的形式。OSI模型把网络功能分为七层,每层表现为一群相关的规格、功能和活动。虽然看起来很复杂,但这些术语已被广泛地应用在网络、系统和开发社区中。图1-7所示为OSI模型的层次结构,在后续的章节中将会简要介绍这些层次。图1-7OSI模型的七层结构1.物理层OSI模型的第一层为物理层,该层规范了传输介质(如网线)的电气与机械特性。它包括发送与接收介质上的数据流,载体可使用电(网线)、光(光纤)、无线、红外、激光等信号。物理层的规范主要包括下列内容:❑电压变化;❑电压变化的时间;❑数据率;❑最大传输距离;❑连接传输介质的物理连接器(接头);❑网络的拓扑与部署。有许多复杂的问题要在物理层中进行研讨,包括是使用数字的还是模拟的信号,使用的是基带还是宽带信号,是数据同步还是异步传输,以及信号如何被分配到信道上(如多路复用)等问题。物理层上的设备包括NIC上的收发器、中继器、基本集线器(basichub)与连接器等。物理层的数据由0与1组成,以光脉冲或电压变化脉冲的状态(通常on代表1,off代表0)表示。这些比特位的安排与管理,是OSI模型数据链路层要实现的功能。2.数据链路层既然物理层只负责网络介质中数据的物理传输,那么接收并管理与数据包物理传输相关错误信息的工作就交给OSI模型的数据链路层了。数据链路层负责维护两台计算机(典型的说法为主机或结点)之间的数据链接。它定义并管理接收、发送的数据帧中比特位的顺序。数据帧是一个按特定组织方式安排好的数据序列,其为接收方与发送方在介质间有顺序、一致地传输数据提供了一个方法。如果没有这样的控制,数据将会以随机的大小与配置方式发送,这样的数据在另一端(接收端)是无法解码的。数据链路层管理物理地址与数据包的同步,也对物理层的流量控制与错误提示负责。流量控制是指管理发送与接收数据的时间,使数据传输的相关指标不超过物理连接的容量(包括速度、内存等)。数据链路层所涉及的网络设备为两层交换机与网桥。两层交换机通过只发送数据到与目标计算机相关的端口而不是发送到交换机的所有端口上来降低网络拥塞。网桥则把网络划分为两部分并过滤流量,它会基于MAC地址建立一个表,从而定义哪台计算机在网桥的哪一边。数据链路层又分为两个子层:介质访问控制(MAC)子层与逻辑链路控制(LLC)子层。(1)MAC子层MAC子层提供对访问传输介质的控制。它负责把在一个共享传输介质(如以太网线或光纤线)上的数据包从一个NIC移动到另一个NIC上。物理地址是MAC子层的地址。每一个NIC有一个唯一的MAC地址(又称物理地址),此地址用于标识网络上特定的NIC。注意在以太网的NIC中,物理或MAC地址被表示为12个十六进制的数字,每两个一组且用“:”分隔开(又称12:3A:4D:66:3A:1C)。开始的三组为制造商编号,后三组代表该制造商制造的唯一NIC的编号。一个NIC的MAC地址通常会烧录到一个只读内存(ROM)的芯片中。制造商为每一个网卡提供了一个唯一的MAC地址,所以从理论上说,每个被制造的NIC具有唯一的MAC地址。为了避免混乱,MAC地址被永久地烧录到NIC的只读内存中。有一些方法会使用MAC地址来分配网络访问的计算机,防止它们在同一时间传输从而致使数据冲突。比如采用MAC地址的方法包括以太网使用的载波监听多点接入/冲突检测(CSMA/CD)方法、AppleTalk网络使用的载波监听多点接入/冲突避免(CSMA/CA)方法、令牌环网与光纤分布式数据接口(FDDI)网络使用的令牌传递方法等。(2)LLC子层LLC子层为数据链路层提供逻辑控制,它用于实现数据链路层的同步、流量控制与错误检查等功能。该层主要管理面向连接的传输,不过,它也能提供非连接的服务。LLC定义了三种数据通信操作类型:❑无连接。该方式不保证发送的信息一定可以收到。❑面向连接。该方式提供了四种服务:连接的建立、确认和数据到达响应、差错恢复(通过请求重发接收到的错误数据实现)、滑动窗口(系数:128)。滑动窗口用来提高数据传输速率。❑无连接应答响应服务。在面向连接的通信方式中,每一个LLC帧发送的内容都会被确认。LLC子层在接收LLC帧(又称协议数据单元,PDU)结束时需要检测在传输时是否有帧丢失了,如果丢失,则会给发送端发送一个请求,请求重新开始传输,此次传输将从没有到达的PDU开始。LLC子层位于MAC子层的上面,它在上层与MAC子层的协议(如以太网、令牌环网等)之间扮演着一个联络人的角色。3.网络层接下来的一层为网络层,在这一层数据包会被顺序化,同时会被赋予逻辑地址。逻辑地址是通过软件赋予的地址,不是永久性的。TCP/IP协议在互联网上使用的IP地址就是逻辑地址。网络层也负责在点或结点之间创建一个虚拟链路(这里指的一个逻辑连接,而不是一个物理连接)。其中结点是具有MAC地址的设备,包含计算机、打印机或路由器等。这一层也负责路由与推进数据包。路由是指从一个网络或子网推进数据包到另一个网络或子网。如果没有路由器,计算机只能与同一网段中的计算机通信。对于互联网来说,路由是一个关键,同时也是网络层最重要的任务。网络层还提供流量控制与差错控制功能。在该层操作的设备是路由器与三层交换机。从这一层开始,实现OSI模型的基本方法将与软件密切关联,而不再是硬件。4.传输层OSI模型的第四层为传输层,这一层负责从一个结点传输数据到另一个结点上。它在结点间提供透明的数据传输,并管理端到端的流量控制、错误检测与错误恢复。首先,传输层协议在不同计算机的特定端口之间发起联系,并设置虚拟的链路。每台主机的传输协议确认应用程序发送的数据是否是被授权访问的,并且两个端点是否都准备好开始数据传输了。当该同步完成时,数据将被发送。在数据传送的过程中,每台主机上的传输协议会监控数据流并监视传输错误。如果传输检测到错误,传输协议将提供错误恢复。对网络通信而言,传输层所提供的功能非常重要。前面提到数据链路层提供了底层可靠性与面向连接或非连接的通信,传输层做了同样的工作,只不过是在更高的层次上。面向连接的传输控制协议(TCP)与面向非连接的用户数据包协议(UDP)是传输层常见的两种协议。传输层也管理端口的逻辑地址,比如,决定所接收的数据属于哪个应用程序,一台计算机上可能会同时运行几个网络应用程序。传输层还会处理域名解析,如使用域名系统(DomainNameSystem,DNS)就是处理该问题的一种方法。5.会话层在传输层建立了一个虚拟的连接后,两台不同计算机上的进程之间就会建立一个通信会话。会话层负责建立、监视与终止会话,同时会使用传输层建立的虚拟链路。会话层也负责给数据包添加协议头信息,指明一个消息的起点与终点。一旦该头信息被添加到数据包上,会话层就会在发送者会话层与接收者会话层之间执行同步,利用确认(ACKnowledgment,ACK)标识协调会话层的数据传输。会话层的另一个重要功能是决定在一个会话中的通信是采用全双工还是半双工通信方式。传输层是在两台计算机之间建立一个连接,而会话层则在两个进程之间建立一个连接。传输层在两台计算机之间建立连接后,会话层就会在一台计算机上的一个进程与另一台计算机上的一个进程之间建立连接。一个应用程序可同时运行多个进程来完成相应的工作。6.表示层数据传输是表示层的基本活动,协议转换就是在这一层进行的。当数据从发送者传送到接收者处时,它就会在表示层上进行转换(比如,发送者的应用程序把数据向下传送到表示层时,会在表示层将数据转换为一种通用格式)。待数据被另一端接收时,表示层又会把它从通用格式转回为应用程序使用的格式。表示层也是网关服务操作的地方。网关是不同平台或应用的网络之间的连接点,通常通过软件实现网关的功能。软件重定向器也是在该层进行操作的,同时该层也是数据压缩发生的地方,它会最小化网络介质需要传送到接收器的比特数量。另外,数据加密与解密也在表示层进行。7.应用层应用层是用户应用程序与网络交互的位置。不要把网络模型与应用程序本身混淆了。应用程序的进程是在一个用户应用程序中开始的,进程所创建的数据会被递交到网络软件的应用层中。在该层所发生的所有事情都是特定于应用的。OSI模型是通用的,可被用来解释所有的网络协议。为了达到此目的,各种协议簇经常被映射到OSI模型上。对OSI模型深入的理解可帮助网络分析和比较,以及问题的解决。注意,不是所有的协议都能很好地映射到OSI模型上。比如TCP/IP协议簇在OSI模型之前就已经开发了,TCP/IP协议簇被设计为映射到美国国防部(DoD)的模型上,因此TCP/IP协议簇的层次无法与OSI模型准确地对应。TCP/IP协议簇由五层组成:物理层、数据链路层、网络层、运输层和应用层。前四层与OSI模型的前四层对应,提供物理标准、网络接口、网际互连和传输功能。不过,OSI模型的最高三层在TCP/IP中则是用第五层“应用层”表示的。1.6.3了解CSMA/CD协议为了让设备在网络上交换数据,以太网使用载波监听多点接入/冲突检测(CSMA/CD)协议。多点接入是指许多网络设备连接到同一个网段上,并且都赋予等同的发送机会,没有任何设备优先于其他设备。载波监听描述了一个网络设备的以太网接口在传送之前如何监听传输介质。网络接口在传送之前和传送的过程中都会监听,以确保在同一时刻没有其他网络设备传送数据。如果两个网络设备同一时刻传送数据,将会发生冲突。由于以太网接口会在传送过程中监听介质,所以如果发生冲突,冲突检测将会被标识出来。这时,正在传送的设备就会在重新传送之前等待一个小的、随机的时间量,这就是随机时间补偿(backofftime)功能。传统模式下,以太网操作是半双工的,这就意味着一个接口只能传送或接收数据,两者不能同时进行。如果一个网段中有不止一个的网络接口试图在同一时刻传送数据,将会导致冲突发生。如果以太网操作是全双工模式,则将允许网络设备在同一时刻传送与接收数据,这样可提高性能。如连接两个设备的是对连网线,或者是单个设备连接到交换机的一个端口,该网段中仅有两个接口需要进行传送或接收操作,这时是不会发生冲突的。因为设备A的传送连接的是设备B的接收,而设备B的接收连接的是设备A的传送,所以这里也就不需要检测冲突了。1.6.4IP、ICMP、TCP与UDP协议与网络嗅探有关的协议主要包括IP(网际互连协议)、ICMP(网际控制报文协议)、TCP(传输控制协议)与UDP(用户数据包协议)。这四个协议是现今互联网工作的核心,下面对它们分别作简要的介绍。1.IPIP是一个非连接协议,其管理寻址数据从一个点递送到另一个点,并把大数据包分割成小的、能传输的数据包。IP数据包的主要组成如下:❑IP标识(IPID):试图唯一标识IP数据包。❑协议:描述使用IP层服务的高层协议。❑生存时间(TTL):数据包在通过互联网时必须具有的受限寿命,当TTL为0时,数据包被丢弃。❑源IP地址:源点的IP地址,数据包被创建的地方。❑目的IP地址:终点的IP地址,数据包应该送到的地方。2.ICMP网际控制报文协议(ICMP)用于管理网络之间在IP上出现的错误。下面是ICMP常用的报文:❑回送请求/回答:为诊断目的而设计,可以用来确定在IP级别能否正常通信。例如ping程序使用回送请求与回答报文来计算两个结点之间的网络延时。❑终点不可达:网络不可达与端口不可达。当一个网络或端口不可达(比如,一个防火墙拒绝了一个数据包或存在网络问题)时,该报文会发送给数据包的源IP地址。终点不可达报文有一些子类型,有助于诊断通信问题。❑超时:当一个数据包的TTL为0时就会发生超时情况。3.TCPTCP是面向连接的协议,通常用来传输数据。TCP面向连接的特性使得选用它进行源IP地址欺骗的可能性很小。下面是TCP的几个重要概念:❑TCP握手:TCP的一个重要概念是握手。任何数据在两台主机之间交换之前,它们必须同意进行通信。主机A先发送一个带同步序号(SYNchronous,SYN)标识的数据包到主机B上。如果主机B愿意并能通信,它返回SYN数据包并添加确认(ACKnowledgment,ACK)标识。然后主机A开始发送数据,并向主机B指明它接收到了ACK。当主机间的通信结束时,就会发送一个带结束(FINish,FIN)标识的数据包,接下来是一个类似确认的过程。❑TCP序列:TCP的另一个重要组成是序列标识,每个发送的数据包都是一个序列的一部分。通过这些序列,TCP能控制复杂的任务,诸如重发、确认与排序。4.UDP相对于TCP,UDP数据包是面向非连接的,它具有多种用途,用于DNS就是其中一个重要的应用。1.6.5硬件与网络嗅探有关的硬件主要包括网卡、网线探针、集线器与交换机,下面分别对它们进行简要介绍。1.网卡一般情况下,网卡有下列四种接收模式:❑广播方式:该模式下的网卡能够接收网络中的广播信息。❑组播方式:该模式下的网卡能够接收组播数据。❑直播方式:在这种模式下,只有目的网卡才能接收该数据。❑混杂模式:在这种模式下,网卡能够接收一切通过它的数据,不管该数据是否是传送给它的。网卡默认的工作模式是广播模式或直播模式,即只能接收发送给自己或广播的数据。正常情况下,接收数据的主机网卡会根据数据包中所包含的目标MAC地址或广播MAC地址进行判断,若为自己的MAC地址或是广播MAC地址,则接收该数据包,并提交给上层处理程序,否则丢弃该数据包。当网卡处于混杂模式时,则不做任何判断直接把接收到的所有数据包交给上层处理程序。网络分析技术就是基于这个原理来捕获网络中所有的数据包的。2.网线探针网线探针(cabletaps)是帮助连接到网线的硬件设备。使用网线探针可以访问计算机、集线器、交换机、路由器及其他设备之间网线上的任意点。网线探针可用于全双工或半双工的10Mbps、100Mbps与1000Mbps速度的以太网,甚至是几十Gbps的网络。在、等网站可获得网线探针的相关信息。3.集线器集线器(hub)的主要功能是对接收到的信号进行再生整形放大,从而扩大网络传输距离,并把所有结点集中在以它为中心的结点上。它工作在OSI参考模型的数据链路层上。集线器是在一个共享介质(比如以太网)上把多台主机连接起来的一个设备。当一台计算机发送信息时,该信息会行走到集线器上,集线器接着把信息推向所有与之相连接的计算机上,而该信息的目标计算机将会根据自己的MAC地址与数据包头部所含的目标MAC地址进行判断,如果一致就接收该数据包。集线器推进所有信息的区域,称为冲突域,又称广播域。一个集线器只有一个冲突域。图1-8所示为一个带有集线器冲突域的网络架构。大量的冲突会使得嗅探更容易,而且会导致性能问题,比如集线器的带宽占用或流量过载。图1-8带有集线器冲突域的网络架构4.交换机交换机(switch)也是把共享介质上的计算机连接到一起的设备。交换机维护着与交换机所连接计算机的MAC地址和交换机本身对应端口的一个关系列表。当一台交换机接收到数据包时,它不会盲目地发送给所有的计算机,而是先查找数据包的头部来获得目标MAC地址,接着把数据包推进到该MAC地址对应的特定端口,这样就把冲突域缩小为一个单独的端口了,如图1-9所示。该类型的冲突域为每个连接提供了一个明确的带宽量,而集线器提供的是一个共享带宽量。图1-9交换机冲突域因为交换机的价格近年来急剧下降,故现在常采用交换机替换集线器,或者在选购新设备时选择交换机。一些价格更贵的交换机包含了更好的技术,这使其对嗅探的攻击抵挡力更强。如图1-8与图1-9所示,集线器使嗅探较容易,而交换机会使嗅探困难得多,但是交换机也是能被欺骗的(详见1.6.6节)。如果工作在使用交换机的网络上,那么该如何执行正当的网络分析呢?很幸运的是,大部分交换机与路由器提供了端口映射机制。为了映射端口,必须配置交换机,使其可以从一个希望映射的端口复制网络流量到所连接的端口。例如在图1-10所示中,就映射了交换机端口1的所有网络流量到端口5,这样,网络分析器就可以在端口5查看发送到计算机A与计算机A发送出去的所有网络流量了。有时候,管理员会将交换机的上行端口进行端口映射,以查看出/入交换机所有端口的网络流量。图1-10交换机端口映射1.6.6欺骗交换机正如前面介绍的,在网络中使用交换机会使嗅探更困难。从理论上说,连接到交换机上的计算机应该只能看见发给自己的网络流量,不过,却有一些技术可绕过该技术限定。下面简要列举攻破交换机防守的几种方式。1.交换洪泛(switchflooding)部分交换机可以像集线器一样运行,也就是说所有的数据包被广播给了所有的计算机。通过这种方式就可以发送大量假MAC地址的数据包使交换机地址表溢出,进而攻破交换机所有的安全防备。2.ARP重定向(ARPredirect)当一台计算机需要其他计算机的MAC地址时,它会发送一个地址解析协议(ARP)请求。每台计算机也维护一个ARP表来存储与其会话的计算机的MAC地址。只要ARP在一个交换机上广播,所有与该交换机连接的计算机都能看到该请求与回应。这就导致可利用ARP来欺骗一台交换机。入侵者通过发送一个假的ARP声明,使交换机误认为入侵者是另外一个角色,从而扰乱了交换机的正常工作,并发送网络流量到它不应该发送的地方。比如,入侵者可以发送一个ARP声明,把入侵者的计算机作为一个路由器,在这种情况下,其他计算机将试图发送它们的数据包通过入侵者的计算机进行路由。或者,入侵者只给一个用户发送一个ARP请求,声明自己为路由器,这样,此用户就会开始推进数据包给入侵者。3.ICMP重定向(ICMPredirect)有时候几台计算机处在同一个物理网段与交换机上,但是它们不在同一个逻辑网段上,这意味着它们在不同的IP子网中。当计算机A想与计算机B会话时,可通过一个路由器发送它的请求。路由器知道它们在同一个物理网段上,因此发送一个ICMP重定向给计算机A,使它知道可以直接发送数据包给计算机B。此功能使得入侵者(计算机X)可以发送一个假的ICMP重定向给计算机A,告诉它把发送给计算机B的数据包发送给计算机X。4.ICMP路由广播(ICMProuteradvertisement)这些广播告诉计算机使用哪一个路由器。如果入侵者发送一个广播,声明它就是那个路由器,那么此计算机就会向该入侵者推进所有的数据包。5.MAC地址欺骗(MACaddressspoofing)入侵者可以利用伪装计算机MAC地址的方式,将自己伪装成另外一台计算机。首先,它会发送带有受害者源MAC地址的数据包欺骗交换机,交换机把该欺骗信息放进它的地址表中,并开始发送数据包给入侵者。但是因为受害者仍在交换机上,如果交换机进行MAC地址表更新就会导致交换机把地址表改回来,故入侵者常通过一些拒绝服务(DoS)类型的攻击使受害者离线,然后重定向交换机并继续通信。部分交换机具有允许静态赋予每个端口一个MAC地址的防范措施。但是如果网络规模很大此防范措施的效用就有限了,虽然仍可减少MAC欺骗,但降低了可维护性。还有部分交换机允许端口锁定它所遇到的第一个MAC地址,该配置在物理端口访问受限的环境中,提出了在可维护性与安全性之间的强制性平衡。要想在Linux上欺骗计算机的MAC地址,可使用下列的ifconfig命令:ifconfigeth0down//关闭网卡ifconfigeth0hwether00:02:b3:00:00:AA//设置MAC地址ifconfigeth0up//打开网卡然后通过广播ping命令向各主机登记该MAC地址:ping-c1-b55现在就可以嗅探实际拥有该MAC地址的计算机的所有网络流量了。6.重新配置交换机的端口映射正如前面所提及的,交换机的端口能被配置成可以查看到其他端口网络流量的端口。这可通过Telnet或其他一些默认的后门连接交换机来实现。如果网络管理协议(SNMP)没有受到保护,还可以通过它来实现端口映射的配置。7.网线探针正如之前所述,网线探针能够用来实现网线的物理窥探。在一台交换机的上行网线上布下网线探针可以显示所有出入交换机的网络流量。1.7嗅探器的检测在了解了网络分析器的工作原理之后,大家应该认识到网络分析器(嗅探器)并不是专为网络攻击、黑客入侵而开发的。事实上,由于网络分析器具有检查低层传输数据包的能力,因此我们可以很方便地使用其来对网络进行诊断,当然这种能力同时也对网络安全具有很大威胁性。例如大多数情况下,用户账号和安全密码在验证的过程中要随着数据包在网络上传输,它们在数据包内的位置存在着一定的规律性。网络黑客可通过嗅探器来捕获每个数据包的特定字节,从而截获用户账号和安全密码。有了这些重要信息,就可以很容易地进行下一步的攻击入侵了,这令网络管理员防不胜防。如果某网络被未经授权者设置了嗅探器,那么该网络的安全实际上已遭到了严重破坏,任何主机与存有嗅探器的网络系统连接都将有用户账户与安全密码被截获的危险。网络安全分析统计也表明,嗅探器是网络安全存在的第二大隐患。1.7.1检测嗅探器的原理如上所述,嗅探器可能会带来很严重的安全问题。因此检测网络是否存在嗅探器,对网络管理员或网络安全管理员来讲是非常重要的。然而,嗅探器很难被发现,因为它们是被动的程序,并不会留下让别人发现的踪迹。但是,由于嗅探器必须将网卡设为混杂模式才能正常工作,而一般正常服务的网卡都不在该模式下,因此检测嗅探器就等同于检测网络内是否存在网卡被设为混杂模式的计算机。对于Linux与Windows操作系统来说,嗅探器的检测方法并不一样,具体如下所示。1.Linux操作系统下的检测方法在正常模式下,网卡会过滤和丢弃那些MAC地址不是广播地址且不是该网卡MAC地址的数据包。可以通过该特性检测该计算机是否处在混杂模式下。如果发送非法目的MAC地址(例如66:66:66:66:66:66的数据帧),在正常模式下网卡将丢弃该数据帧。但是如果处在混杂模式下,网卡则会将该数据帧提交给相应的协议栈,系统将会对该数据包做出相应的响应动作。这时就可通过检测计算机是否发回了响应数据包,来确认该计算机是否存在嗅探器。2.Windows操作系统下的检测方法在正常模式(非混杂模式)下,网卡只将目标地址为自己或是以太网广播地址(FF:FF:FF:FF:FF:FF)的数据包传递给内核。当处在混杂模式下时,驱动程序就会只检测以太网地址的第一个字节是否是广播地址,如果是FF,则认为是发往FF:FF:FF:FF:FF:FF的广播包。我们可以借用这个特性发送目标地址为FF:00:00:00:00:00的数据包,当Windows操作系统的驱动程序收到该数据帧,并对该数据帧做出了响应时,就表明它处在混杂模式下。如果没处在混杂模式下,将丢弃该数据帧。1.7.2防止网络嗅探可采取的安全措施防止网络嗅探器攻击并不是一件很困难的事情,通常可采取加密和网络分割的办法来实现。1.加密如果仅需要防止远程登录时用户账号和安全密码被截取,则可以在主机上安装动态密码(OneTimePassword,OTP)系统。在使用OTP的系统中,用户在登录时会根据主机提出的一个迭代值和一个种子值计算出本次登录的密码。如果需要保护电子邮件免遭窃取,可以对邮件使用PGP(PrettyGoodPrivacy)加密软件,对该算法目前还没有找到比穷尽算法更有效的破解办法。这两种办法实现起来较简单,可它们不能完全阻止监听者从网络上截取各种数据包的相关信息后,通过分析或是脱壳解密得到其想要的东西。更加安全的方法是利用SNP和SSH系统。SNP系统可以运行在很多操作系统上,其提供了一种安全的验证协议,使TELNET、FTP、RLOGIN等应用的用户账号和安全密码不再是以明文的方式传输。SNP系统中所有的传输数据都是采用DES加密的,监听者只能看到一些乱码。SSH是基于C/S模型的,标准的SSH服务端口为22,SSH采用RSA加密算法建立连接,验证过程结束后,所有的信息都采用IDEA技术加密,这是一种典型的强加密方式,适合于所有的通信。SSH曾一度为加密安全通信的主要协议。如果网络系统中使用了SSH,那么用户账号和安全密码被捕获的概率将大大降低。2.网络分割通常人们所能接受的防止嗅探器攻击的办法是使用安全的网络拓扑结构。我们知道,网络广播的时候,信息包只能被同一网络地址段中的嗅探器捕获。所以可以利用网络分割的技术,进一步划分网络,减小嗅探器能够监听的范围,这样网络的其余部分就可免受嗅探器的攻击了。一般可以采用交换机来划分网段,并使用网桥或网络路由器来划分子网。实际上PC(个人计算机)和工作站都可以配置成网桥或路由器,同一个网络地址段内最好都是互相可以信任的计算机。通过网络分割,安装了嗅探器的计算机仅能够捕获有限范围内计算机的信息流。如果发现了在某一网络地址段有嗅探器,也很容易确定是哪些人设置的。1.8网络分析工具的主要功能组成网络分析工具一般由图1-11所示的基本功能组成,当然对于要求较高的网络分析工具还要添加复杂的协议解析功能,有的还要添加专家诊断功能。这些功能都是在图1-11所示的基本功能之上所进行的扩展,本书中就不重点介绍了。图1-11网络分析工具的重要功能框图由图1-11所示可知,一个网络分析工具首先需要从系统网络适配器列表中选择合适的网络适配器,接着需要打开所选的网络适配器。这样就可以在该网络适配器上执行数据包发送、对过滤后的数据包执行数据捕获或统计工作了,同时,还可以对捕获的数据包进行文件存储。执行结束后即可关闭对应的网络适配器。对于存储的数据包文件可单独执行文件打开操作。如果需要把文件中的数据包发送到网络上,也需要执行网络适配器的相关操作。在上述功能的实现上,对于一个优异的网络分析工具来说,性能是关键。通常,类似于Wireshark之类的网络分析器,都会直接调用底层库(Windows平台下为WinPcap库,Linux平台下为libpcap库)来实现这些功能。这样,性能问题就由底层库来负责处理了,而Wireshark主要负责协议解析与图形界面显示等相关的工作。图1-12所示为在Windows平台上Wireshark与WinPcap的依赖关系。图1-12Windows平台上Wireshark与WinPcap的依赖关系我们将在后续的章节中围绕图1-11所示的这些重要功能,来分析网络分析器中这些功能的设计难点、实现难点,并讲解具体的实现与实际使用方法。1.9Wireshark的概述、安装与使用在本书中将采用Wireshark进行辅助的网络分析,所以要求读者能够简单地使用该工具软件,下面将对Wireshark进行简要介绍。详细的信息请参见Wireshark网站。1.9.1Wireshark的概述Wireshark是一款网络分析器,用来捕获数据包,并尽可能详细地显示数据包的内容。Wireshark是一款较好的开源的网络分析器。以下是一些使用Wireshark的例子:❑网络管理员使用Wireshark来检测网络问题。❑网络安全工程师使用Wireshark来检查网络安全问题。❑开发者使用Wireshark为新的通信协议除错。❑普通使用者使用Wireshark来学习网络协议的相关知识。除了上述例子外,Wireshark还能对其他一些应用提供帮助。Wireshark的主要特性如下:❑支持UNIX、Linux与Windows平台。❑从网络接口上捕获数据包。❑显示数据包详细的协议信息。❑可以存储与打开所获得的数据包。❑可在大量其他的捕获软件之间导入与导出数据包。❑使用许多标准过滤数据包。❑使用许多标准查找数据包。❑基于过滤器着色显示数据包。❑创建各种统计信息。Wireshark不支持以下功能:❑Wireshark不是入侵检测软件。对于网络上的异常流量行为,Wireshark不会产生警示或任何提示。不过,仔细分析Wireshark捕获的数据包,可以帮助使用者更清楚地了解网络行为。如果发生了异常事件,Wireshark可以帮助找出具体发生了什么事。❑Wireshark不会操控网络上的事情,它只会“度量”网络上的事情。Wireshark本身也不会发送数据包到网络上。1.9.2Wireshark的安装在Windows平台上安装Wireshark非常容易,基本上是直接不停单击Next>按钮即可。在安装Wireshark的过程中,正确选择并安装WinPcap库非常重要,若出错,则Wireshark无法正常使用。从Wireshark软件的官方网站下载Wireshark安装包。单击可执行文件,弹出启动安装的界面。选择典型组件及安装路径,开始安装Wireshark。这时,软件会提示"InstallWinPcap4.0.2"等信息,选择该复选框,如图1-13所示。图1-13选择安装WinPcap4.0.2库的界面单击Install按钮开始安装WinPcap,如图1-14所示。图1-14开始安装WinPcap的界面安装完毕,即可看到相关的提示。现在,就可以使用Wireshark了。1.9.3Wireshark的使用1.启动Wireshark安装结束后可以直接从桌面(双击Wireshark的快捷方式)或“开始程序”菜单(单击[开始]→[所有程序]→[Wireshark]→[Wireshark]菜单命令)中启动Wireshark。图1-15所示为Wireshark的主窗口界面。图1-15Wireshark的主窗口界面2.捕获数据包执行[Capture]→[Interfaces...]菜单命令,弹出网络接口的选择界面,如图1-16所示。图1-16网络接口的选择界面此时单击第二个接口右边的Start按钮,即可开始捕获数据包了。图1-17所示为捕获数据包的界面。图1-17数据包捕获界面执行[Capture]→[Stop]菜单命令,将停止数据包捕获。3.数据包统计执行[Statistics]→[Summary]菜单命令,弹出数据包统计界面,如图1-18所示。图1-18数据包统计界面4.保存与打开数据包文件执行[File]→[SaveAs...]菜单命令可将捕获的数据包存储到一个文件中。执行[File]→[Open...]菜单命令可将存储到文件中的数据包回放、显示出来。5.数据包过滤在主界面的过滤器(Filter)设置栏中可设置数据包显示与捕获的过滤条件,如图1-19所示。图1-19数据包过滤器设置栏单击图1-19中所示的Expression...按钮,弹出过滤器设置对话框,如图1-20所示。图1-20过滤器设置对话框在此以捕获与显示IP源地址为5的数据包为例,设置过滤器,如图
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人教版四年级上册数学第六单元《除数是两位数的除法》测试卷带答案(精练)
- 2024年度航空航天科技合伙人退出与资产处置合同2篇
- 2024年新能源充电桩安装施工合同范本2篇
- 沪教版三年级下册数学第二单元 用两位数乘除 测试卷附完整答案【有一套】
- 2024年度环保工程合同标的及服务内容详细3篇
- 2024儒房地产购房合同协议书-养老社区入住保障3篇
- 2024年度三方电子商务三方询价报价单合同模板3篇
- 2024版企业财务信息安全协议及高管离职保密条款3篇
- 2024年商铺租赁合同附带法律咨询与知识产权保护服务协议3篇
- 2024年宾馆特色主题房住宿合同范本3篇
- 学生干部培训2024年学生干部培训方案
- 大学实训室虚拟仿真平台网络VR实训室方案(建筑学科)
- 静脉治疗护理技术操作标准
- 教育心理学-形考作业4(第十至十一章)-国开-参考资料
- 银行零星装饰维修投标方案(技术方案)
- 厂区快餐配送方案
- 2025届高三地理二轮复习课件土壤中的循环与收支平衡
- 2024二十届三中全会知识竞赛题库及答案
- 湘科版小学二年级上册科学全册教案
- 消化系统常见疾病课件(完美版)
- ISO13485质量手册+全套程序文件
评论
0/150
提交评论