TCP-UDP端口扫描

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

实验二十五TCP与UDP端口扫描【实验目的】1.了解常用的TCP、UDP端口扫描的原理及其各种手段;2.增强网络安全意识。【实验学时】2学时【实验环境】在本实验中需要1台交换机、1台协议分析仪、2台实验PC,需要所有的主机能够访问互联网,使用协议分析仪采集数据包,对采集到的数据进行分析。将所有的设备都接入到交换机上,并在交换机上配置端口映像功能,具体IP分配如下表:表7-3设备IP地址分配表设备连接如下图所示:图7-41实验拓扑图【实验内容】1、学习TCP和UDP端口扫描的原理;2、实现一次端口扫描;3、了解怎么防范基于端口扫描的攻击。【实验流程】图7-42实验流程图【实验原理】端口的基础知识:为了了解扫描的工作原理,首先简单介绍一下端口的基本知识。端口是TCP协议中所定义的,TCP协议通过套接字(socket)建立起两台计算机之间的网络连接。套接字采用[IP地址:端口号]的形式来定义,通过套接字中不同的端口号可以区别同一台计算机上开启的不同TCP和UDP连接进程。对于两台计算机间的任一个TCP连接,一台计算机的一个[IP地址:端口]套接字会和另一台计算机的一个[IP地址:端口]套接字相对应,彼此标识着源端、目的端上数据包传输的源进程和目标进程。这样网络上传输的数据包就可以由套接字中的IP地址和端口号找到需要传输的主机和连接进程了。由此可见,端口和服务进程一一对应,通过扫描开放的端口,就可以判断出计算机中正在运行的服务进程。TCP/UDP的端口号在0~65535范围之内,其中1024以下的端口保留给常用的网络服务。例如:21端口为FTP服务,23端口为TELNET服务,25端口为SMTP服务,80端口为HTTP服务,110端口为POP3服务等。TCP报文头格式:要进行TCP/UDP端口扫描,必须对TCP和UDP的报文进行全面的了解,下图是TCP的报文格式,图7-43TCP报文源端口:这是源设备发出TCP段的进程的16比特端口号。目的端口:这是目的设备上作为本报文最终希望的接收方进程的16比特端口号。序列号:在正常传输情况下,这是本段数据第一个字节的序列号,在连接请求SYN报文中,该字段携带了源TCP的ISN,数据第一个字节的序列号将被指定为紧跟该字段内容的下一个编号。确认序列号:若ACK比特置位,说明本段充当一个确认,该字段含有源正在期待的目的地将要发送下一个序列号。数据偏移:该项详细说明了TCP首部含有多少个32比特字的数据,换句话说,该值乘以4就等于首部字节数,而后者必须总是4的倍数,该字段称为数据偏移是因为它指明数据起点距TCP段开头偏移了多少个32比特。保留:该字段留给将来使用,发送时置0。URG:紧急指针(urgentpointer)有效,置为1时,说明数据段的优先数据传输特性已经被激活,且紧急指针字段有效。ACK:确认序号有效,置为1时,说明数据段携带一个确认,确认编号字段值有效且携带着期望从数据段目的地收到的下一个序列号。PSH:接收方应该尽快将这个报文段交给应用层,数据段发送方正在使用TCP推特性,请求立即将段中数据推向接收设备上的应用程序。RST:重建连接计算机网络协议原理实验教程SYN:同步序号用来发起一个连接。序列号字段含有发送方的ISN。FIN:发送端正在请求连接关闭。窗口:该字段指出本端的发送方愿意从接收方处一次接受多少个8比特数据。它通常等于分配给该条连接用以接受数据缓冲区的当前长度。校验和:16比特检验和紧急指针:该字段与URG控制比特联合用于优先数据传输,该字段包含了紧急数据最后一个字节的序列号。扫描原理:网络扫描,是对计算机主机或者其它网络设备进行安全性检测,以找出安全隐患和系统漏洞。但是,网络扫描软件事实上也是一把双刃剑:入侵者利用它来寻找对系统发起攻击的途径,而系统管理员则利用它来有效防范黑客入侵。通过网络扫描,扫描者能够发现远端网络或主机的配置信息、TCP/UDP端口的分配、提供的网络服务、服务器的具体信息等。网络扫描可以划分为ping扫描、端口扫描、操作系统探测、弱点探测、防火墙规则探测五种主要技术,运用的原理各不相同。端口扫描是探测主机所开放的端口。因为端口扫描通常只做最简单的端口联通性测试,不进行更进一步的数据分析,因此比较适合进行大范围的扫描:对指定IP地址进行某个端口值段的扫描;或者指定端口值对某个IP地址段进行扫描。然后基于端口扫描的结果,进行操作系统探测和弱点扫描。端口扫描大体上分为TCP扫描和UDP扫描两类。TCP扫描:TCP建立连接分三步,也称三次握手:1、请求端发送一个SYN包,指明客户打算连接的目的端口。2、观察目的端返回的包:返回SYN/ACK包,说明目的端口处于侦听状态;返回RST/ACK包,说明目的端口没有侦听,连接会重置。3、若返回SYN/ACK包,则请求端向目的端口发送ACK包完成3次握手,连接建立。TCP全连接全连接扫描,就是和目的主机建立一个TCP连接,而目的主机的log文件中会生成记录。全连接扫描是TCP端口扫描的基础,现有的全连接扫描有TCPconnect()扫描和TCP反向ident扫描等。其中TCPconnect()扫描的实现原理如下所述:扫描主机通过TCP/IP协议的三次握手与目标主机的指定端口建立一次完整的连接。连接由系统调用connect开始。如果端口开放,则连接将建立成功;否则,若返回-1则表示端口关闭。建立连接成功:响应扫描主机的SYN/ACK连接请求,这一响应表明目标端口处于监听(打开)的状态。如果目标端口处于关闭状态,则目标主机会向扫描主机发送RST的响应。TCP连接扫描技术的一个最大的优点是不需要任何权限,系统中的任何用户都有权利使用这个调用。另一个好处是速度快。如果对每个目标端口以线性的方式,使用单独的“connect()”函数调用,那么将会花费相当长的时间,用户可以同时打开多个套接字,从而加速扫描。使用非阻塞I/O允许用户设置一个低的时间以用尽周期,并同时观察多个套接字。但这种方法的缺点是很容易被发觉,并且很容易被过滤掉。目标计算机的日志文件会显示一连串的连接和连接出错的服务消息,目标计算机用户发现后就能很快使它关闭。半连接扫描半连接扫描,也称为TCPSYN扫描,则违反了TCP三次握手的规则,此扫描发送SYN包开始三次握手并等待目的主机的响应。如果收到SYN/ACK包,则说明端口处于侦听状态,扫描者马上发送RST包,中止连接。因为半连接扫描并没有建立连接,目的主机的log文件中可能不会记录此扫描。现有的半连接扫描有TCPSYN扫描和IPID头dumb扫描等。SYN扫描的优点在于即使日志中对扫描有所记录,但是尝试进行连接的记录也要比全扫描少得多。缺点是在大部分操作系统下,发送主机需要构造适用于这种扫描的IP包,通常情况下,构造SYN数据包需要超级用户或者授权用户访问专门的系统调用。TCP隐蔽扫描。RFC793指出,处于关闭状态的端口,在收到探测包时会响应RST包,而处于侦听状态的端口则忽略此探测包。根据发送探测包的不同,TCP隐蔽扫描又分为SYN/ACK扫描、FIN扫描、XMAS(圣诞树)扫描和NULL扫描四种。SYN/ACK扫描和FIN扫描:这两类扫描均绕过TCP三次握手过程的第一步,直接给目的端口发送SYN/ACK包或者FIN包。因为TCP是有连接的,它知道在第一步中应该发送的SYN包没有送出,从而认为此连接过程出错,发送一个RST包以拆除连接。而这正是我们想要的——只要有响应,就说明目标系统存在,且目标端口处于关闭状态。此扫描方式的优点比前两种都要隐秘,不容易被发现。该方案有两个缺点:首先,要判断对方端口是否开放必须等待超时,增加了探测时间,而且容易得出错误的结论;其次,一些系统并没有遵循规定,最典型的就是Microsoft公司所开发的操作系统。这些系统一旦收到这样的数据报,无论端口是否开放都会回应一个RST连接复位数据报,这样一来,这种扫描方案对于这类操作系统是无效的。XMAS扫描和NULL扫描:这两类扫描正好相反,XMAS扫描设置TCP包中所有标志位(URG,ACK,RST,PSH,SYN,FIN),根据RFC793,对于所有关闭的端口,目标系统应该返回RST标志。根据这一原理就可以判断哪些端口是开放的,而NULL扫描则关闭TCP包中的所有标志位,这种方法与上一方法原理是一样,只是发送的数据包不一样而已。本扫描方案中,是向目标端口发送一个不包含任何标志的分组。根据RFC793,对于所有关闭的端口,目标系统也应该返回RST标志。UDP端口扫描UDP协议是数据包协议,为了要发现正在服务的UDP端口,通常的扫描方式是构造一个内容为空的UDP数据包送往目的端口。若目的端口上有服务正在等待,则目的端口返回错误的消息;若目的端口处于关闭状态,则目的主机返回ICMP端口不可达消息。如果目标端口是以一个“ICMPportUnreachable”(ICMP端口不可到达)消息来作为响应的,那么该端口是关闭的。相反,如果没有收到这个消息那就可以推断该端口打开着。还有就是一些特殊的UDP回馈,比如SQLServer服务器,对其1434号端口发送“x02”或者“x03”就能够探测得到其连接端口。由于UDP是无连接的不可靠协议,因此这种技巧的准确性很大程度上取决于与网络及系统资源的使用率相关的多个因素。另外,当试图扫计算机网络协议原理实验教程描一个大量应用分组过滤功能的设备时,UDP扫描将是一个非常缓慢的过程。如果要在互联网上执行UDP扫描,那么结果就是不可靠的。一般而言,扫描者并不是孤立地、单纯地使用某种扫描技术,而是综合地应用一系列的扫描方法。而如果大范围地进行某种扫描,反复高速地发出特定的连接请求,所造成的结果就是目标主机上存在大量等待的TCP连接,目标网络中充斥着许多无用的数据包,最终导致网络拥塞,主机无法正常使用,这正是DOS的表现。因此若要防范网络扫描要做到以下三点:(1)、在防火墙及过滤设备上采用严格的过滤规则,禁止扫描的数据包进入系统。(2)、主机系统除了必要的网络服务外,禁止其它的网络应用程序。(3)、对于只对内开放的网络服务,更改其提供服务的端口,此外,网络扫描时发送的数据或多或少都会含有扫描者自身相关信息,从而也可以抓取扫描时的数据包,对扫描者进行反向追踪,这也是一个值得研究的方向。【实验步骤】步骤一:设定实验环境在PCA配置IP地址为172.16.1.11/24,并在PCA上搭建一个WEB服务器,并将服务启动起来,如下图所示:图7-44搭建WEB服务在PCB配置IP地址为172.16.1.4/24,并在PCB上安装RG-PATS网络协议分析仪客户端软件,在PCB上模拟攻击者进行扫描。将所有的PC和RG-PATS网络协议分析仪连接到交换机上。步骤二:TCPconnect()扫描在PCB打开RG-PATS网络协议分析仪,点击菜单栏的TCP按钮,如下图所示:图7-45打开TCP连接工具在IP地址栏中输入WEBServer服务器地址,端口为80,如下图所示:图7-46TCP连接工具配置完成后,先打开RG-PATS网络协议分析仪开始采集数据,然后点击“连接”按键,这时客户端就与服务器建立TCP连接,如下图所示:图7-47TCP连接停止RG-PATS网络协议分析仪数据采集,会采集到TCP三次握手的数据包,如下图所示:图7-48采集SYN手报文图7-49采集SYN+ACK报文图7-50采集ACK报文这说明当我们用TCPconnect()扫描时,如果服务启动时,会形成TCP三次握手。使用TCP连接器去连接服务器上的FTP服务(必须确保FTP服务没有启动),将IP地址设置为172.16.1.11,端口为21。如下图所示:图7-51TCP连接工具配置完成后,先打开RG-PATS网络协议分析仪开始采集数据,然后点击“连接”按键,这时客户端就与服务器建立TCP连接,但连接会失败,因为服务器没有开启FTP服务。如下图所示:图7-52TCP连接停止RG-PATS网络协议分析仪数据采集,会采集到RST数据包,如下图所示:图7-53采

1 / 20
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功