TCP UDP端口扫描.docx
- 文档编号:17645130
- 上传时间:2023-04-24
- 格式:DOCX
- 页数:29
- 大小:913.71KB
TCP UDP端口扫描.docx
《TCP UDP端口扫描.docx》由会员分享,可在线阅读,更多相关《TCP UDP端口扫描.docx(29页珍藏版)》请在冰豆网上搜索。
TCPUDP端口扫描
实验二十五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采集RST报文
如果目标端口处于关闭状态,则目标主机会向扫描主机发送RST的响应。
步骤三:
TCPSYN扫描
在PCB上打开数据包发生器,编辑一个TCP的SYN数据包。
首先点击菜单栏“添加”,
如下图所示:
图7-54添加报文
添加一个TCP协议模板,点击确认添加,如下图所示:
图7-55添加TCP协议模板
修改协议模板的每个值:
EthernetII封装:
目标物理地址设置为PCA的MAC地址。
原物理地址设置为PCB的MAC地址
类型:
0800
IP封装:
版本信息:
4
IP头长度:
5
服务类型:
00
总长度:
52
标识:
0
标志:
2
生存时间:
128
协议类型:
6
发送IP地址:
172.16.1.4
目标IP地址:
172.16.1.11
TCP封装:
源端口号:
47792
目标端口号:
80
序号:
46D7EE9E
TCP首部长度:
5
标志位:
02
注意:
在编辑数据时IP的长度应该设置正确,在选择TCP标志位时,可以点右侧的“编
辑数据”进行选择TCP标志,如下图所示:
图7-56添加SYN报文
编辑完成数据包后,需要点击菜单栏的校验和,进行数据检验,如下图所示:
图7-57计算校验和
下图是编辑完成并经过校验的数据包:
图7-58编辑完成的报文
数据编辑完成后,需要发送到PCA,进行TCPSYN扫描。
首先打开网络协议分析仪,
采集服务器的回应。
点击协议数据发器的菜单栏的发送键,如下图所示:
图7-59报文发送数量
计算机网络协议原理实验教程
选择循环发送,发送次数为1,点击“开始”按键开始发送。
发送完成后,结束网络协
议分析仪的采集,找到采集到的数据包,如下图所示:
图7-60采集SYN报文
图7-61采集SYN+ACK报文
图7-62采集RST报文
如上图所示,如果我们发送一个SYN包给服务器,如果收到SYN/ACK包,则说明
端口处于侦听状态,然后马上发送RST包,中止连接。
步骤四:
UDP端口扫描
首先在PCA服务器上使用命令netstat–a命令查看那些UDP端口已打开,如下图所示:
图7-63查看端口
在列表中没有打开DNS服务,编辑一个DNS服务的UDP数据包进行扫描。
打开协议
数据发生器,点击“添加”按键,添加一个UDP协议模板,如下图所示:
图7-64添加UDP协议模板
修改协议模板的每个值:
EthernetII封装:
标物理地址设置为PCA的MAC地址。
原物理地址设置为PCB的MAC地址
类型:
0800
IP封装:
IP头长度:
5
服务类型:
00
总长度:
52
标识:
0
标志:
2
生存时间:
128
协议类型:
17
发送IP地址:
172.16.1.4
目标IP地址:
172.16.1.11
TCP封装:
端口号:
1030
目标端口号:
53
UDP总长度:
32
编辑完成数据包后,需要点击菜单栏的校验和,进行数据检验,如下图所示:
图7-65计算校验和
下图是编辑完成并经过校验的数据包:
图7-66编辑完成报文
数据编辑完成后,需要发送到PCA,进行UDP扫描。
首先打开网络协议分析仪,采集
服务器的回应。
点击协议数据发器的菜单栏的发送键,如下图所示:
图7-67报文发送数量
选择循环发送,发送次数为10,点击“开始”按键开始发送。
发送完成后,结束网络
协议分析仪的采集,找到采集到的数据包,如下图所示:
图7-68采集报文
这时服务器返回一个ICMP目标不可达数据包,这说明服务器的DNS服务没有启动。
服务器上启动了NTP时间服务,其端口号为123,使用UDP扫描NTP服务,编辑UDP
数据包,打开协议数据发生器,添加一个UDP协议模板。
修改协议模板的每个值:
EthernetII封装:
目标物理地址设置为PCA的MAC地址。
原物理地址设置为PCB的MAC地址
计算机网络协议原理实验教程类型:
0800
IP封装:
版本信息:
4
IP头长度:
5
服务类型:
00
总长度:
52
标识:
0
标志:
2
生存时间:
128
协议类型:
17
发送IP地址:
172.16.1.4
目标IP地址:
172.16.1.11
TCP封装:
源端口号:
103
目标端口号:
123
UDP总长度:
32
编辑完成数据包后,需要点击菜单栏的校验和,进行数据检验,如下图所示:
图7-69计算校验和
下图是编辑完成并经过校验的数据包:
图7-70编辑完成报文
数据编辑完成后,需要发送到PCA,进行UDP扫描。
首先打开网络协议分析仪,采集
服务器的回应。
点击协议数据发器的菜单栏的发送键,如下图所示:
图7-71报文发送数量
选择循环发送,发送次数为10,点击“开始”按键开始发送。
发送完成后,结束网络
协议分析仪的采集,找到采集到的数据包,这时服务器不会有任何响应,这说明NTP服务
已经启动。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- TCP UDP端口扫描 UDP 端口扫描