互联网端口扫描技术分析与研究.doc_第1页
互联网端口扫描技术分析与研究.doc_第2页
互联网端口扫描技术分析与研究.doc_第3页
互联网端口扫描技术分析与研究.doc_第4页
互联网端口扫描技术分析与研究.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

本科生毕业论文(设计)题目 端口扫描技术分析与研究 姓名 * 学号 * 院系 计算机科学学院 专业 网络工程 指导教师 刘效武 职称 讲师 年 月 日曲阜师范大学教务处制目 录摘要4关键词4引言4Abstract4Keywords41 TCP实现原理41.1 TCP协议简介41.1.1 TCP首部简介41.1.2 TCP的连接建立过程:51.1.3 TCP的数据传输过程:51.1.4 TCP连接释放:51.1.5 TCP的一些实现的细节描述62端口62.1 端口概念62.2 端口与攻击63 端口扫描的概念74 端口扫描原理75 端口扫描的目的76 端口扫描的历史86.1 手工扫描阶段86.2 通用扫描器阶段86.3 专用扫描器阶段87 端口扫描技术87.1 开放式扫描方法97.1.1 TCP connect()扫描97.1.2 反向ident扫描97.2 半开放式扫描方法97.2.1SYN扫描97.3 秘密扫描107.3.1 TCP FIN扫描107.3.2 TCP ACK扫描107.3.3 TCP NULL扫描107.3.4 FIN+URG+PUSH扫描107.4 UDP扫描117.4.1 普通UDP扫描117.4.2 UDP recvfrom() 和 write() 扫描117.4.3 高级UDP扫描技术117.5 ICMP扫描117.5.1 ICMP echo扫描117.5.2 高级ICMP扫描技术118 网络安全扫描技术的发展趋势129小结13致谢13参考文献13端口扫描技术分析与研究网络工程专业*指导老师刘效武摘要:随着网络技术和设备的发展,黑客攻击技术也在不断的提高,端口扫描技术作为进行网络攻击的第一道工序,在网络入侵活动中占有重要地位。本文首先从简单介绍TCP协议出发,详细介绍了TCP建立连接时的“三次握手”过程、TCP协议的传输过程以及TCP协议的断开过程等必要的基础知识,然后结合TCP协议的实现特点和各个关键字的作用介绍了端口扫描的三个阶段以及不同用户使用端口扫描技术的相应目的,重点介绍了端口扫描技术的实现原理,以及各种端口扫描技术如开放式端口扫描、半开放式扫描,秘密扫描的研究与分析,最后介绍了UDP的扫描和ICMP扫描,讨论了防止网络入侵的最有效的方法就是关闭不必要的端口以及为打开的端口不断的更新补丁程序。关键词:网络安全 端口扫描 TCP协议Analysis and Research of Port Scan MethodsStudent majoring in Network EngineeringZhang ZhipingTutorLiu XiaowuAbstract:With the development of Network Technologies and network devices,the attack level of hackers is increasing as well. Port scan methods is developing as well and it is playing a important role in the network inception courses.This paper firstly gives a simple introduction of the TCP protocol,and describes the TCP details,Then it introduces the history of port scanning and the ambitions of three kinds of people. Specially, it give the theories of port scan methods,including TCP connect() Scan, Half-Scan and NULL-Scan, finally it gives UDP scan and ICMP scan,and the methods to defend attacks.Key words:Network Security; Port Scan; TCP protocol 端口扫描作为网络入侵的第一道工序,在网络入侵过程中占有重要地位,为了有效的防止网络入侵,对网络端口扫描技术进行分析研究是非常必要的。网络端口扫描是目前较为流行的技术,所有的连接到局域网(LAN)或者Internet的系统运行着一些熟悉或不熟悉的端口,通过端口扫描,攻击者可以获得目标主机的以下信息:哪种服务正在运行,哪类用户拥有这些服务,是否有可以匿名登录的端口,是否某些服务需要身份认证。端口扫描是通过对每个端口一次发送一条信息,根据返回的消息类型表明是否服务端口可以利用或者存在可以进一步利用的弱点。1TCP实现原理1.1TCP协议简介TCP是一种面向连接的、可靠的字节流服务。面向连接意味着两个使用此协议的机器必须先行建立连接。在一个TCP连接里,仅有两方彼此进行通信,并且TCP一端收到发自TCP连接另一端的数据,它将发送一个确认。1.1.1TCP首部简介TCP虽然是面向字节流的,但TCP传送的数据单元却是报文段。一个TCP报文段分为首部和数据两部分,而TCP的全部功能都在于它首部的各字段的作用。 TCP首部有6个标志位:(1) URG 紧急指针有效;(2) ACK 确认序号有效(3) PSH 接收端将尽快将这个报文段交给应用层(4) RST 重建连接(5) SYN 同步序号用来发起一个连接(6) FIN 发端完成发送任务1.1.2TCP的连接建立过程:TCP的连接是通过三次握手实现的,具体的建立过程如下所述:(1)服务器进程首先创建传输控制块TCB,准备接受客户进程的连接请求。然后服务器进程就处于LISTEN状态,等待客户的连接请求。如有,即做出响应。(2)TCP客户进程也是首先创建传输控制块TCB,然后向B发出连接请求报文段,这是首部中的同步位SYN=1, 同时选择一个初始序号seq=x。TCP规定,SYN报文段不能携带数据,但要消耗一个序号。这时,TCP客户进程进入SYN-SENT(同步已发送)状态。(3)服务器进程收到连接请求报文段后,如同意建立连接,则向客户端发送确认。 在确认报文段中应把SYN位和ACK位都只为1,确认号是ack=x+1,同时也为自己选择一个初始序号seq=y.请注意,这个报文段也不能携带数据,但同样也要消耗一个序号。这时,TCP服务器进程进入SYN-RCVD(同步已收到)状态。(4)TCP客户端接收到服务器端的确认后,还要向服务器端给出确认。确认报文段的ACK置1,确认号ack=y+1,而自己的序号seq=x+1.TCP规定,ACK报文段能携带数据。但如果不携带数据则不会消耗序列号,这时,下一个数据报文段的序号仍是seq=x+1.这时,TCP连接已经建立,客户端进入ESTABLISHED状态。1.1.3TCP的数据传输过程:(1)在TCP连接完全建立起来后,就可以进行数据通信了。(2)每次TCP模块接收到一个包以后,取出的序号加1来确认该报文。在建立数据连接后的数据传输中,每一个数据包都要包含序列号,为了建立可靠的连接,TCP中规定在任何一方收到数据包后都要向对方做出应答,以便发送方知道该数据已经安全到达了,如果发送方在一段时间内没有收到应答就认为该包在传输过程中丢失了,重新发送该包。TCP传输过程中提供的子服务有:全双向(连接的两端可以同时发送数据),时间线(用计时器保证数据在合理的时间内传输),按序(从一个应用程序中发送的数据可以在另一端以同样的顺序接收),流量控制(TCP通过滑动窗口技术来动态调节流量),错误更正(校验和保证数据没有错误)。1.1.4TCP连接释放:(1)客户端的应用进程首先向服务器端发送连接释放报文段,并停止再发送数据,主动关闭TCP连接。客户端把连接释放报文段首部的FIN置1,其序号为seq=u,它等于前面已传送过的数据的最后一个序号加1。这时,客户端进入FIN-WAIT-1(终止等待1)状态,等待服务器端的确认。TCP规定,FIN报文段即使不携带数据,它也要消耗一个序号。(2)服务器端收到连接释放报文后发出确认,确认号是ack=u+1,而这个报文段自己的序号是y,等于服务器端前面传送过的数据的最后一个字节的序号加1,然后服务器端进入CLOSED-WAIT(关闭等待)状态。TCP服务器进程这时候应通知高层应用进程,因而从客户端到服务器端这个方向的连接就释放了。这时的TCP连接处于半关闭状态,即客户端已经没有数据要发送了,但服务器端若要发送数据,客户端仍要接受,也就是说,从服务器端到客户端这个方向的连接并未关闭。这个状态可能就持续一些时间。(3)客户端收到来自服务器端的确认后,就进入FIN-WAIT-2(终止等待2)状态,等待服务器端发出的连接释放报文段。(4)若服务器端已经没有要向客户端发送的数据,其应用进程就通知TCP释放连接。这是服务器端发出的连接释放报文段必须使用FIN =1.现假定服务器端的序号为w(在半关闭状态服务器端可能又发送了一些数据)。服务器端还必须重复上次已发送过的确认号ack=u+1.这时B就进入LAST-ACK(最后确认状态),等待客户端的确认。(5)客户端在收到服务器端的连接释放之后,必须对此发送确认。在确认报文中把ACK置1,确认号ack=w+1,而自己的序号seq=u+1,然后将进入TIME-WAIT状态。请注意,现在的TCP连接还没有释放掉。必须经过时间等待计时器设置的时间2MSL后,客户端才进入到CLOSED状态。1.1.5TCP的一些实现的细节描述在TCP的具体实现中,一般都遵守如下规则:(1)当包含RST置位的包到达一个关闭的端口的时候,TCP会简单的丢掉这个包。(2)当包含RST置位的包到达一个正在侦听的端口的时候,TCP端口简单的丢弃这个包,应用程序一般也相应的中止。(3)当包含SYN置位的包到达一个关闭的端口的时候,TCP端口则会丢掉该包并且返回一个RST置位的包。(4)当包含SYN置位的包到达一个打开的端口的时候,TCP端口则会进行三次握手返回一个SYN|ACK的包。(5)当FIN置位的包到达一个关闭的端口的时候,TCP丢掉该包并且返回一个包含RST置位的包。(6)当FIN置位的包到达一个打开的端口的时候,TCP一般简单的丢掉该包。但这也不是绝对的,对于Windows NT/95系列的系统来说,TCP也会返回一个RST置位的包,相应的应用程序在大多数情况下也会通过TCP模块发送FIN置位包,表明他这个方向的数据发送也要关闭。2端口2.1端口概念端口就是服务,每个服务对应一个或多个端口,是主机与外界进行通信的数据出入口。端口分为硬件端口和软件端口,硬件端口就是USB,串行端口,并行端口等,软件端口一般就是网络中面向连接的(TCP)或者无连接服务的(UDP)等通信协议的端口。常用的端口列表如表1所示。2.2端口与攻击端口直接与服务的对应关系,使端口越来越成为人们关注的目标,打开一种服务就意味着打开了一个或几个端口,同时也打开了一个“大门”,这个大门对正常用户来说是多了一项方便,用户多了一项访问系统的方式,而对黑客来说,却是多了一种攻击途径。因此作为一名网络管理人员,完全有理由对端口进行详细地了解,并利用端口扫描技术扫描出系统的开放的端口,对没有实质性作用的端口则关掉,对于必须开放的端口则尽可能地安装漏洞补丁程序。表1 常见的端口及服务端口号名字作用80WWWWeb端口15Netstat网络状态20FTP(Data)文件传输协议(数据口)21FTP(Ctl)文件传输协议(控制口)23Telnet远程登录25SMTP简单邮件传输协议53DNS域名服务79Finger系统用户信息111Rpc远程进程调用139NetbiosNetbios协议3端口扫描的概念端口扫描即对所有的或特定的一段或一个端口进行扫描,鉴别出其是否处于开放状态。当然对于特别常用的端口则尽可能扫描出其服务程序版本,并指出该版本存在的漏洞,以此给网络管理员一个提示。4端口扫描原理端口扫描,顾名思义,就是逐个对一段端口或指定的端口进行扫描。通过扫描结果可以知道一台计算机上都提供了哪些服务,然后通过所提供的这些服务的已知漏洞进行攻击。其原理就是当一个主机向远端一个服务器的某一个端口提出建立一个连接的请求,若对方有此项服务,就会应答,如果对方未安装此服务,即使你向相应端口发出请求,对方仍无应答。利用这个原理如果所有的熟知端口或自己选定的某个范围内的熟知端口已经打开,就可以分别建立连接,并记录下远端服务器端口所给予的应答,通过查看记录就可以知道目标服务器上都安装了哪些服务,这就是端口扫描。通过端口扫描就可以搜集关于目标主机的诸多信息。如,对方是否提供FTP服务,WWW服务或其它服务。5端口扫描的目的端口扫描主要是为三大类用户服务,一类是网络管理员,一类是黑客,还有一类是普通用户,他们对网络使用的角度不同,所以进行端口扫描的目的也就不同,如表2所示。6端口扫描的历史如果一个端口通过任何方法都无法访问,那它将是没有任何用处,因为端口的目的就是向正常用户提供服务,因此任何一个端口都应该响应从外界提出的服务请求,而由对提出的请求的回应,我们至少可以断定端口是否打开。表2 端口扫描用户与目的端口扫描用户扫描目的网络管理员关掉不用的端口,安装漏洞端口补丁程序黑客利用打开的端口获得信息,为攻击做准备普通用户查找服务器是否提供某项服务6.1手工扫描阶段一个最简单的扫描方法就是手工试验,所谓手工实验就是拿一个能提出服务请求的程序对服务器进行连接,如果程序正常运行就表示该服务器提供此项服务,比如运行ftp 后,对方让你输入用户名和密码则表示服务器的端口21处于打开状态,如果你是非法用户,输入错误的用户名和密码将无法登录,如果输入ftp 后,输入相应的用户名和密码,对方却回复10065(对方主机无法连接的出错代码),而此服务器一切运行正常,则表明此时的端口21处于关闭状态。用同样的方法还可以用测试其80 端口是否处于打开状态。6.2通用扫描器阶段当前Internet上主要采用TCP(Transmission Control Protocol:传输控制协议)和UDP(User Datagram Protocol:用户数据报协议)作为传输层协议,虽然除此之外还有很多协议,但这些协议一般都是传输层以上各层的协议,这些协议靠TCP或UDP协议进行网际传送。而端口的概念是处于传输层上的概念,所以这里在扫描端口时,我们可以说我们扫描的是TCP或UDP端口而不是别的协议的端口,那些协议端口只是通过TCP或UDP端口体现出来而已,因此,通用扫描器就是只需要用TCP或UDP协议向对应端口发送数据就行了,而不是非得用哪一个协议。比如,139端口是NetBIOS协议端口,我们扫描139端口是否处于打开状态只需向目的主机139端口发送信息然后根据返回的信息进行判断就可以了。通用扫描器就是向指定的一段端口分别发送建立连接的请求,如果对方存在对应的服务,连接就可以成功建立,否则就无法建立,利用这个特点,我们可以判断对方的端口是否打开,这种扫描器一般只能扫描出对方某一端口是否开放,然后检索端口数据库,给出这一端口提供的服务。6.3专用扫描器阶段通用扫描器有一个不准确和不精确的毛病。比如,某人的服务器并没有NetBIOS服务,而正好有一个服务器应用软件却使用了139端口进行通信,此时由于扫描器在139建立连接成功而通过查端口数据库而认为139端口处于打开状态而且提供了NetBIOS服务。专用扫描器不求多,而且只扫描特定的一个或几个端口,扫描后,不仅给出是否处于打开状态,指出其提供的服务,而且会拿对应的服务和目的主机进行连接,从而获得对方服务器的版本号、用户列表、共享目录、漏洞等信息。7端口扫描技术根据扫描所采用的类型可以分为TCP扫描、UDP扫描、ICMP扫描等扫描。根据所采用的算法又可以分为告诉扫描、分布式扫描、智能扫描、指纹识别技术、漏洞数据标准化与扫描代码分离等技术。不同的扫描目的,对扫描器的要求也不一样,有些用户只需要知道某个端口是开或是关就行了,而有些用户则不但要知道某一端口是否开,而且还要知道对方系统的服务器软件版本号以及其它信息。端口扫描按端口的连接情况主要可分为全连接扫描、半连接扫描、秘密扫描和其他扫描。每种技术都可以使攻击者明确目标主机上的打开和关闭的端口。但是如何使用哪个端口取决于相应的待攻击环境。如网络拓扑,入侵检测系统,远程主机的登录记录特点。虽然开放式扫描很容易被远程主机记录并且很容易被发现,但是得出的结果是很准确和详细的。同样,秘密扫描可能会避开某些入侵检测系统或者绕过防火墙的规则。但是用于表示端口情况的那些标志位可能会被丢弃的包抵消掉。7.1开放式扫描方法7.1.1TCP connect()扫描开放式扫描很容易被检测到或被过滤掉,这种扫描方式通过和目标主机以典型的“三次握手”的方式建立全连接。一个典型的交互如图1所示。Client - SYNServer- SYN|ACKClient - ACK图1 TCP connect()扫描(服务器打开)上述例子表明一个端口已经用SYN|ACK回复了来自客户进程的请求。这种回复表明目标端口处于监听状态。一旦“三次握手”建立全连接,则客户机中止与此端口的连接并再次和下一个端口进行连接,直到最大的端口被检测过。同样,关闭的端口将返回以下情况,如图2所示。Client -SYNServer -RST|ACKClient -RST图2 TCP connect()扫描(服务器关闭)从服务器返回的RST|ACK标签项告诉客户端切断连接企图,因为服务器相应端口是关闭的。也就知道当前端口是关闭的。这种方法是通过调用系统的connect()函数来实现的。如果函数返回真,则证明端口打开,否则端口关闭。由于这种方法是通过“三次握手”的方式与目标主机进行连接,这就使得攻击者无法操纵源IP,无法进行IP欺骗。因为“三次握手的方式”需要提供一个正确的序列号,并且需要正确设置标志位以进行数据交换。很显然这种连接方式很容易被发现,因为“三次握手”建立的完整连接很容易被防火墙以及入侵检测系统发现,但是由于采用的是系统调用函数connect(),所以攻击者可以很全面的获取想要获得的端口信息。7.1.2反向ident扫描这种技术通过向ident/auth守护进程发送响应,通常是113端口,以获得当前进程的拥有者。这样做的最主要的原因是找到以root(超级管理员)运行的进程。很显然,这种结果可能会使得入侵者获得一个溢出点或其它关于这个端口的可疑活动信息。另外,一般的守护进程像httpd可能由于有限的访问权限并不怎么具有吸引力,但并不为大多数人所知道的是,identd进程可能会泄漏某些秘密信息如:用户信息、实体、对象、进程等。7.2半开放式扫描方法半开放式扫描是有客户机在“三次握手”连接建立之前中断与服务器的连接而完成的,这种扫描方法一般并不会被IDS入侵检测系统记录,并且会返回有价值的信息。7.2.1SYN扫描这种扫描方式与“三次握手”十分相似,只是最后的“一次握手”不是发送ACK响应而是立即切断连接如图3所示。Client - SYNServer -SYN|ACKClient -RST图 3 SYN扫描(端口打开)这个实例表明目标主机的相应端口是打开的,因为服务器端已经返回了SYN|ACK包。相应的如果该端口关闭,将会返回RST|ACK,如图4所示。Client -SYNServer-RST|ACK图4 SYN扫描(端口关闭)RST|ACK意味着一个关闭的端口,因为Denial of Service(DoS)工具以发送SYN包为基本技术手段,这种扫描方法已经被大多数的IDS入侵检测系统所检测。需要指明的是,这种SYN扫描方法最初被用于SATAN(一种躲开IDS系统的工具)。7.3秘密扫描由于这种技术不包含标准的TCP三次握手协议的任何部分,所以无法被记录下来,从而比SYN扫描隐蔽得多。另外,FIN数据包能够通过只监测SYN包的包过滤器。秘密扫描技术使用FIN数据包来探听端口。当一个FIN数据包到达一个关闭的端口,数据包会被丢掉,并且返回一个RST数据包。否则,当一个FIN数据包到达一个打开的端口,数据包只是被简单的丢掉(不返回RST)。XMAS扫描打开FIN,URG和PUSH标记,而NULL扫描关闭所有标记。这些组合的目的是为了通过所谓的FIN标记监测器的过滤。秘密扫描通常适用于UNIX目标主机,除过少量的应当丢弃数据包却发送reset信号的操作系统(包括CISCO,BSDI,HP/UX,MVS和IRIX)。在Windows95/NT环境下,该方法无效,因为不论目标端口是否打开,操作系统都发送RST。7.3.1TCP FIN扫描有的时候有可能SYN扫描都不够秘密。一些防火墙和包过滤器会对一些指定的端口进行监视,有的程序能检测到这些扫描。相反,FIN数据包可能会没有任何麻烦的通过。这种扫描方法的思想是关闭的端口会用适当的RST来回复FIN数据包。另一方面,打开的端口会忽略对FIN数据包的回复。这种方法和系统的实现有一定的关系。有的系统不管端口是否打开,都回复RST,这样,这种扫描方法就不适用了。并且这种方法在区分Unix和NT时,是十分有用的。7.3.2TCP ACK扫描和TCP SYN扫描差不多,当利用ACK方式向目的主机一个端口发送一个只有ACK标志的TCP数据包给目标主机,如果主机反馈一个TCP RST数据报回来,那么这个主机端口是打开的。7.3.3TCP NULL扫描该方法是关闭TCP包中的所有标志位,向目标主机的端口发送一个TCP数据包,根据RFC793(/rfc/rfc0793.txt),如果该端口是关闭的,则目标主机应当发回一个RST信号。7.3.4FIN+URG+PUSH扫描这种方法又叫XMAS扫描,其原理是向目标主机对应端口发送一个FIN、URG和PUSH三个标志位都置位的分组,根据RFC793,如果目标主机的相应端口是关闭的,那么应该返回一个RST标志。7.4UDP 扫描UDP是无连接的协议,不需要建立连接过程,但这个协议不能保证数据安全到达,由于其使用灵活,因而常被黑客利用来编制各种程序。7.4.1普通UDP扫描这种方法与上面几种方法的不同之处在于使用的是UDP协议。由于这个协议很简单,所以扫描变得相对比较困难。这是由于打开的端口对扫描探测并不发送一个确认,关闭的端口也并不需要发送一个错误数据包。幸运的是,许多主机在你向一个未打开的UDP端口发送一个数据包时,会返回一个ICMP_PORT_UNREACH错误。这样你就能发现哪个端口是关闭的。UDP和ICMP错误都不保证能到达,因此这种扫描器必须还实现在一个包看上去是丢失的时候能重新传输的功能。这种扫描方法是很慢的,因为RFC对ICMP错误消息的产生速率做了规定。同样,这种扫描方法需要具有root权限。7.4.2UDP recvfrom() 和 write() 扫描当非root用户不能直接读到端口不能到达错误时,Linux能间接地在它们到达时通知用户。比如,对一个关闭的端口的第二个write()调用将失败。在非阻塞UDP套接字上调用recvfrom()时,如果ICMP出错还没有到达时返回EAGAIN-重试。如果ICMP到达时,返回ECONNREFUSED连接被拒绝。这就是用来查看端口是否打开的技术。7.4.3高级UDP扫描技术在UDP实现的扫描中,多是利用和ICMP进行的组合进行。还有一些特殊的就是利用UDP回馈,比如SQLServer,对其1434端口发送“x02”或者“x03”就能够探测得到其连接端口。这种扫描主要是针对应用程序的扫描,通过扫描应用程序常打开的端口得到该应用程序的信息。7.5ICMP扫描ICMP是控制报文协议的简写( Internet Control Message Protocol),它是IP层的协议。它的作用主要是报告错误信息和信息查询,利用ICMP协议也可以进行扫描。7.5.1ICMP echo扫描这并不是真正意义上的扫描。但有时通过ping,在判断在一个网络上主机是否开机时非常有用。7.5.2高级ICMP扫描技术Ping就是利用ICMP协议走的,我们在这里主要是利用ICMP协议最基本的用途:报错。根据网络协议,如果按照协议出现了错误,那么接收端将产生一个ICMP的错误报文。这些错误报文并不是主动发送的,而是由于错误,根据协议自动产生。当IP数据报出现Checksum和版本的错误的时候,目标主机将抛弃这个数据报,如果是checksum出现错误,那么路由器就直接丢弃这个数据报了。有些主机比如AIX、HP-UX等,是不会发送ICMP的Unreachable数据报的。我们利用下面这些特性:(1)向目标主机发送一个只有IP头的1P数据包,目标将返回DestinationUnreachable的ICMP错误报文。(2)向目标主机发送一个坏IP数据报,比如,不正确的IP头长度,目标主机将返回Parameter Problem的ICMP错误报文。(3)当数据包分片但是却没有给接收端足够的分片,接收端分片组装超时会发送分片组装超时的ICMP数据报。向目标主机发送一个IP数据报,但是协议项是错误的,比如协议项不可用,那么目标将返回Destination Unreachable的ICMP报文,但是如果是在目标主机前有一个防火墙或者一个其他的过滤装置,可能过滤掉所提出的要求,从而接收不到任何回应。可以使用一个非常大的协议数字来作为IP头部的协议内容,而且这个协议数字至少在今天还没有被使用,应该主机一定会返回Unreachable,如果没有Unreachable的ICMP数据报返回错误提示,那么就说明被防火墙或者其他设备过滤了,我们也可以用这个办法来探测是否有防火墙或者其它过滤设备存在。利用IP的协议项来探测主机正在使用哪些协议,我们可以把IP头的协议项改变,因为是8位的,有256种可能。通过目标返回的ICMP错误报文,来判断哪些协议在使用。如果返回Destination Unreachable,那么主机是没有使用这个协议的,相反,如果什么都没有返回的话,主机可能使用这个协议,但也可能是防火墙等过滤掉了。NMAP的IP Protocol scan也就是利用这个原理。利用IP分片造成组装超时ICMP错误消息,同样可以来达到我们的探测目的。当主机接收到丢失分片的数据报,并且在一定时间内没有接收到丢失的数据报,就会丢弃整个包,并且发送ICMP分片组装超时错误给源发送端。我们可以利用这个特性制造分片的数据包,然后等待ICMP组装超时错误消息。可以对UDP分片,也可以对TCP甚至ICMP数据包进行分片,只要不让目标主机获得完整的数据包就行了,当然,对于UDP这种非连接的不可靠协议来说,如果我们没有接收到超时错误的ICMP返回报文,也有可能是由于线路或者其它问题在传输过程中丢失了。我们能够利用上面这些特性来得到防火墙的ACL(access list),甚至用这些特性来获得整个网络拓扑结构。如果我们不能从目标得到Unreachable报文或者分片组装超时错误报文,可以作下面的判断:(1)防火墙过滤了我们发送的协议类型(2)防火墙过滤了我们指定的端口(3)防火墙阻塞ICMP的Destination Unreachable或者protocol Unreachable错误消息。(4)防火墙对我们指定的主机进行了ICMP错误报文的阻塞。8网络安全扫描技术的发展趋势目前的网络安全扫描技术仍然有许多不完善的地方,随着这种技术的不断发展,它应普遍具有以下3个方向。 (1)高速化。网络的迅速发展带来系统内部网络系统规模的扩大,为系统管理员保障本系统的安全提出了更高的要求。面对大规模的网络系统要实施全面的扫描,使用高速的网络扫描技术非常重要。如目前存在的并行扫描以及 KB (Knowledge Base)等技术都有助于提高网络扫描的速度。(2)智能化。目前的网络扫描技术尚不具有扫描任意端口 任意服务的能力;而且在检测系统漏洞时所用的漏洞库

温馨提示

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

评论

0/150

提交评论