资源预览内容
第1页 / 共22页
第2页 / 共22页
第3页 / 共22页
第4页 / 共22页
第5页 / 共22页
第6页 / 共22页
第7页 / 共22页
第8页 / 共22页
第9页 / 共22页
第10页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
端口扫描原理端口扫描p 端口扫描是通过与目标系统的TCP/IP端口连接,查看该系统处于监听或运行状态的服务。p 一项自动探测本地和远程系统端口开放情况的策略及方法,它使系统用户了解系统目前向外界提供了哪些服务,从而为管理或攻击提供了一种手段。 端口扫描p 原理1)向目标主机的TCP/IP服务端口发送探测数据包,记录目标主机的响应。2)分析响应,判断服务端口是打开还是关闭,得知端口提供的服务或信息。p 端口扫描也可以通过捕获本地主机或服务器的流入流出IP数据包对本地主机的运行情况进行监视,查找内在弱点。端口扫描1、TCP概述2、TCP扫描1)全连接扫描2)半连接扫描(TCP SYN扫描)3)TCP FIN扫描(秘密扫描)4)TCP Xmas和TCP null5)间接扫描3、UDP扫描4、防范TCP 协议概述源端口和目的端口字段各占2 字节。端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现。序号字段占4 字节。TCP 连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。确认号字段占4 字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。数据偏移占4 bit,它指出TCP 报文段的数据起始处距离TCP 报文段的起始处有多远。“数据偏移”的单位不是字节而是32 bit 字(4 字节为计算单位)。保留字段占6 bit,保留为今后使用,但目前应置为0。紧急比特URG 当URG =1 时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。确认比特ACK 只有当ACK =1 时确认号字段才有效。当ACK =0 时,确认号无效。推送比特PSH (PuSH) 接收TCP 收到推送比特置1 的报文段,就尽快地交付给接收应用进程,而不再等到整个缓存都填满了后再向上交付。复位比特RST (ReSeT) 当RST =1 时,表明TCP 连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。同步比特SYN 同步比特SYN 置为1,就表示这是一个连接请求或连接接受报文。终止比特FIN (FINal) 用来释放一个连接。当FIN =1 时,表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。窗口字段占2 字节。窗口字段用来控制对方发送的数据量,单位为字节。TCP 连接的一端根据设置的缓存空间大小确定自己的接收窗口大小,然后通知对方以确定对方的发送窗口的上限。检验和占2 字节。检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在TCP 报文段的前面加上12 字节的伪首部。紧急指针字段占16 bit。紧急指针指出在本报文段中的紧急数据的最后一个字节的序号。选项字段长度可变。TCP 只规定了一种选项,即最大报文段长度MSS (Maximum Segment Size)。MSS 告诉对方TCP:“我的缓存所能接收的报文段的数据字段的最大长度是MSS 个字节。”MSS 是TCP 报文段中的数据字段的最大长度。数据字段加上TCP 首部才等于整个的TCP 报文段。填充字段这是为了使整个首部长度是4 字节的整数倍。用三次握手建立用三次握手建立TCPTCP连接连接 A A 的的TCP TCP 向向B B 发出连接请求报文段,其首部中的同步发出连接请求报文段,其首部中的同步比特比特SYN SYN 应置为应置为1 1,并选择序号,并选择序号x x,表明传送数据时的,表明传送数据时的第一个数据字节的序号是第一个数据字节的序号是x x。 B B 的的TCP TCP 收到连接请求报文段后,如同意,则发回确收到连接请求报文段后,如同意,则发回确认。认。 B B 在确认报文段中应将在确认报文段中应将SYN SYN 置为置为1 1,其确认号应为,其确认号应为x x +1+1,同时也为自己选择序号,同时也为自己选择序号y y。 A A 收到此报文段后,向收到此报文段后,向B B 给出确认,其确认号应为给出确认,其确认号应为y y +1+1。 A A 的的TCP TCP 通知上层应用进程,连接已经建立。通知上层应用进程,连接已经建立。 当运行服务器进程的主机当运行服务器进程的主机B B 的的TCP TCP 收到主机收到主机A A 的确认的确认后,也通知其上层应用进程,连接已经建立。后,也通知其上层应用进程,连接已经建立。建立建立TCP TCP 连接连接从A 到B 的连接就释放了,连接处于半关闭状态。相当于A 向B 说:“我已经没有数据要发送了。但你如果还发送数据,我仍接收。”释放释放TCPTCP连接连接TCP扫描思路:通过穷举法,依次判断哪些端口在开放。依次判1-1024端口是否开放。客户客户端端服务服务器端器端SYNSYNSYN/ACKSYN/ACKACKACKSYNSYNRST/ACKRST/ACKRSTRST端口开放端口开放客户客户端端服务服务器端器端端口关闭端口关闭TCP扫描1)全连接扫描是TCP端口扫描的基础,通过完整的三次握手与目标主机的指定端口建立一次完整的连接。客户客户端端服务服务器端器端SYNSYNSYN/ACKSYN/ACKACKACKSYNSYNRST/ACKRST/ACKRSTRST端口开放端口开放客户客户端端服务服务器端器端端口关闭端口关闭TCP扫描2)半连接扫描(TCP SYN扫描)两次握手客户客户端端服务服务器端器端SYNSYNSYN/ACKSYN/ACKSYNSYNRST/ACKRST/ACK端口开放端口开放客户客户端端服务服务器端器端端口关闭端口关闭TCP扫描3)TCP FIN(秘密扫描)针对Unix系统客户客户端端服务服务器端器端FINFINFINFINRSTRST端口开放端口开放客户客户端端服务服务器端器端端口关闭端口关闭TCP扫描4)TCP Xmas和TCP null针对Unix系统,是TCP FIN的变种;TCP Xmas扫描打开FIN、URG、PUSH标记NULL扫描则关闭所有标记。目的是防止包被过滤。TCP扫描5)间接扫描攻击主机借用第三方IP(欺骗、伪装主机IP)扫描目标主机。攻攻击击主主机机伪伪装装主主机机第三第三方主方主机机目目标标主主机机使用伪装主机使用伪装主机IP给目标主机发包给目标主机发包根据端口状态,发根据端口状态,发回应包给伪装主机回应包给伪装主机发回应包给目标主机发回应包给目标主机监控伪装主机的监控伪装主机的行为,分析目标行为,分析目标主机状态主机状态UDP扫描UDP概述UDP扫描为何UDP扫描不容易实现? 1)UDP ICMP端口不可达扫描数据包数据包ICMP_PORT_UNREICMP_PORT_UNREACHEDACHED客户客户端端服务服务器端器端端口关闭端口关闭UDP扫描1)UDP ICMP端口不可达扫描问题:丢包、限定ICMP差错分组的发送频率;需root权限数据包数据包ICMP_PORT_UNREICMP_PORT_UNREACHEDACHED客户客户端端服务服务器端器端RFC1812RFC1812UDP扫描2)UDP recvfrom()和write() 扫描对非root用户不能直接读取“端口不可达”错误,Linux能间接地在它们到达时通知用户:对一个关闭的端口的第二次调用write()将失败在非阻塞的UDP套接字上调用recvfrom()时,如果ICMP出错还没有到达时回返回EAGAIN-重试。如果ICMP到达时,返回ECONNREFUSED-连接被拒绝,用来查看端口是否打开。端口扫描的防范1)确定SYN包中伪造IP,通过防火墙、路由器拒绝其进入2)基于状态的防火墙防护3)进行出口过滤,防止有伪造IP的包的流出
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号