首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >为什么UDP端口扫描比TCP端口扫描更复杂?

为什么UDP端口扫描比TCP端口扫描更复杂?
EN

Network Engineering用户
提问于 2020-11-15 07:22:39
回答 3查看 442关注 0票数 3

当我浏览时,我发现端口扫描UDP端口比TCP端口要复杂一些,为什么?

EN

回答 3

Network Engineering用户

回答已采纳

发布于 2020-11-15 07:39:56

实际上,您不能真正进行UDP端口扫描。虽然打开的TCP端口通常响应简单的SYN探测,但UDP没有套接字连接的概念。简单地说,没有单独的探测消息来查看UDP端口是否在监听。

因此,您可能不会从打开的UDP端口获得任何答复,除非您猜到它背后的正确应用程序协议,并且它选择回复( DNS服务器回复DNS请求,SNTP服务器回复SNTP请求,等等)。如果没有回复,您将不知道某个端口是否关闭,防火墙是否过滤了数据包,或者应用程序是否只是选择忽略您的请求。

基本上,您只能探测您知道或猜测应用程序层协议的UDP端口,并且可以将其转换为应答。这比发送通用TCP SYN要复杂得多。

当然,您可以尝试简单地检查关闭端口的ICMP目标端口不可访问的消息,但是这些消息通常是在开放的Internet和许多其他情况下被过滤(或根本不发送)。

票数 5
EN

Network Engineering用户

发布于 2020-11-15 14:45:16

对于TCP,有一个标准化的连接设置过程,它由操作系统实现并应用,不管使用的是什么应用程序协议。因此,您可以发送"syn“数据包作为探测,并根据响应确定端口是否”打开“(服务器继续进行连接设置过程中的下一步,发送"syn-ack")、”关闭“(连接被ICMP错误拒绝)或”筛选“(根本没有响应,这很可能表明通信被防火墙阻塞)。

另一方面,对于UDP,“封闭”端口将触发来自操作系统的响应,但对于打开的端口,操作系统将简单地将数据包传递给服务器应用程序,而不会生成它自己的任何响应。UDP服务器应用程序通常不会向他们不理解的数据包发送响应。

因此,当您发送UDP探测包而没有得到响应时,您无法知道您的数据包是否被防火墙过滤,或者它是否成功地传递到没有响应的应用程序(因为它不能解释数据包,或者因为它自己的内部策略)。

票数 2
EN

Network Engineering用户

发布于 2021-08-07 13:49:08

为了进一步说明扫描UDP所面临的挑战,这里有一些关于如何在nmap中实现该功能的详细信息,它可能仍然是当今最流行的端口扫描器:

UDP扫描通过向每个目标端口发送UDP数据包来工作。对于一些公共端口,如53和161,发送协议特定的有效负载以提高响应速率,但对于大多数端口,除非指定了-数据、-数据字符串或-数据长度选项,否则数据包是空的。如果返回ICMP端口无法访问的错误(类型3,代码3),则端口将关闭。其他无法访问的ICMP错误(类型3,代码0、1、2、9、10或13)将端口标记为已筛选。偶尔,一个服务会响应一个UDP数据包,证明它是开放的。如果在重新传输后没有收到响应,则将端口分类为open_筛选。这意味着端口可能是开放的,或者可能是数据包过滤器阻塞了通信。版本检测(-sV)可以帮助区分真正打开的端口和过滤的端口。

和:

UDP扫描的一个大挑战是快速完成它。打开和过滤的端口很少发送任何响应,留下Nmap超时,然后在探测或响应丢失的情况下进行重传。关闭港口往往是一个更大的问题。他们通常发送一个ICMP端口无法到达的错误。但与关闭的TCP端口响应SYN或connect扫描而发送的RST数据包不同,许多主机的速率在默认情况下限制ICMP端口不可访问的消息。Linux和Solaris对此特别严格。例如,Linux2.4.20内核将不可访问的目标消息限制为每秒一条(在net/ipv4 4/icmp.c中)。

最后一段必须过时,不能确定当前的实现。

Nmap检测速率限制并相应地减慢,以避免将目标机器丢弃的无用数据包淹没网络。不幸的是,Linux格式的每秒一个数据包的限制使得65,536端口扫描需要超过18个小时.加速UDP扫描的想法包括并行扫描更多的主机,首先快速扫描流行的端口,从防火墙后面扫描,以及使用主机超时跳过慢主机。

来源:nmap -端口扫描技术

我似乎记得很久以前,Unicorn扫描仪有自己的方式扫描UDP,但现在找不到细节。因为每个端口扫描仪都有自己的方法来区分一个开放端口和一个封闭端口,它可能猜错了,结果可能会有所不同。最好的方法是使用像斯卡皮这样的工具来自己制作包并自己解释响应。

票数 1
EN
页面原文内容由Network Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://networkengineering.stackexchange.com/questions/71000

复制
相关文章
python进行TCP端口扫描
为了从捕获我们的目标主机的应用标识,我们必须首先插入额外的验证代码到 connScan函数中。一旦发现开放的端口,我们发送一个字符串数据到这个端 口然后等待响应。收集这些响应并推断可能会得到运行在目标主机端口上的应 用程序的一些信息。
Tim在路上
2020/08/05
8880
Go实现TCP端口扫描器
从端口管道中读取端口后与主机拼接成完整地址,使用net.Dial测试TCP连接是否成功,并将结果发送到results管道,失败则返回0,成功则返回端口。
TomatoCool
2023/08/26
1960
如何实现简单的UDP端口扫描工具
UDP(User Datagram Protocol,用户数据报协议)是一种无连接的传输层协议,属于OSI参考模型的一部分。它主要用于不要求分组顺序到达的传输中,分组传输顺序的检查与排序由应用层完成,提供面向事务的简单不可靠信息传送服务。UDP协议使用底层的互联网协议来传送报文,同IP一样提供不可靠的无连接数据包传输服务。它不提供报文到达确认、排序、及流量控制等功能。
孟斯特
2024/04/11
1K0
如何实现简单的UDP端口扫描工具
端口扫描之开放端口扫描方式
若客户端想要连接服务器80端口时,会先发送一个带有 SYN 标识和端口号的 TCP 数据包给服务器(本例中为80端口)。如果端口是开放的,则服务器会接受这个连接并返回一个带有 SYN 和 ACK 标识的数据包给客户端。随后客户端会返回带有 ACK 和 RST 标识的数据包,此时客户端与服务器建立了连接。
战神伽罗
2021/03/04
2.5K0
Naabu端口扫描
Naabu is a port scanning tool written in Go that allows you to enumerate valid ports for hosts in a fast and reliable manner. It is a really simple tool that does fast SYN/CONNECT scans on the host/list of hosts and lists all ports that return a reply.
鹏程
2023/05/02
1K0
Naabu端口扫描
端口扫描那些事
在渗透测试中端口扫描是非常重要的一环,不管是在外围对企业边界信息收集的过程还是在内网渗透中对内网的信息收集。如何判断主机或服务器端口的开放情况就显得尤为重要,下面就盘点一下可以作为端口扫描的工具与方式方法。
信安之路
2018/08/08
1.9K0
端口扫描那些事
浅析端口扫描原理
自觉对于端口扫描只是浅显的停留在nmap的几条命令,因此花了点时间了解了一下端口扫描器是如何运作的,并且使用python写了一个简单的端口扫描器,笔者目的不在于替代nmap等主流端扫的作用,只是为了更深入地了解端口扫描器运作的原理。
HhhM
2022/08/10
2.5K0
浅析端口扫描原理
Python端口扫描
在这个例子中,我们首先指定要扫描的主机IP,以及要扫描的端口范围。然后,我们创建一个TCP套接字对象,并使用socket.connect_ex()函数来连接每个端口。如果端口是开放的,connect_ex()函数会返回0,否则会返回一个错误码。最后,我们根据返回值来判断端口是否开放。
用户8658949
2023/03/04
1.1K0
python端口扫描
前段时间写了个端口扫描的python脚本,发现现在忘记的差不多了,赶紧记录下来吧,虽然是并发的,但是在实际的使用场景中,如果扫描的机器过多,依旧有性能上的问题,好在我需要扫描的机子就那么几台.脚本写的生烂...
py3study
2020/01/10
1.5K0
Python3实现TCP端口扫描器
在渗透测试的初步阶段通常我们都需要对攻击目标进行信息搜集,而端口扫描就是信息搜集中至关重要的一个步骤。通过端口扫描我们可以了解到目标主机都开放了哪些服务,甚至能根据服务猜测可能存在某些漏洞。 TCP端口扫描一般分为以下几种类型: TCP connect扫描:也称为全连接扫描,这种方式直接连接到目标端口,完成了TCP三次握手的过程,这种方式扫描结果比较准确,但速度比较慢而且可轻易被目标系统检测到。 TCP SYN扫描:也称为半开放扫描,这种方式将发送一个SYN包,启动一个TCP会话,并等待目标响应数据包。如果
用户1631416
2018/04/12
1.9K0
Python3实现TCP端口扫描器
Java 端口扫描器 TCP的实现方法
想必很多朋友都实现过一个简易的聊天室这个功能,其中涉及到Socket套接字这个类,我们通过一个特定的IP以及特定的端口创建一个服务端的套接字(ServerSocket),以此我们聊天个体的套接字(Socket)再与其连接,从而实现连通并通过流来传递信息的聊天室功能。
Rekent
2018/09/04
2.1K0
Python渗透测试之tcp几种端口扫描的讲解
專 欄 ❈exploit,Python中文社区专栏作者,Python渗透测试与安全爱好者。希望与作者交流或者对文章有任何疑问的可以与作者联系: QQ:1585173691 Email:best_ex
Python中文社区
2018/01/31
1.3K0
Python渗透测试之tcp几种端口扫描的讲解
Metasploit端口扫描
使用nmap扫描,例nmap -v -sV 222,222,222,222 使用自带模块扫描 search portscan查询可以进入端口扫描的工具 search portscan 使用use
听城
2018/04/27
1.4K0
Metasploit端口扫描
JavaScript端口扫描工具
一个利用JavaScript实现的简易域名端口扫描工具,反馈目标地址的端口状态,因为是课设需要,自己也用不到,就没怎么深入研究,只是简单的加了个正则验证,支持自定义端口扫描和按端口范围扫描。
岳泽以
2022/10/26
1.2K0
JavaScript端口扫描工具
实现高效端口扫描
Python-nmap介绍: http://xael.org/pages/python-nmap-en.html
用户5766185
2019/07/08
1.1K0
实现高效端口扫描
python socket 端口扫描
python socket 端口扫描 #! -*- coding:utf-8 -*- import time import socket socket_timeout = 0.1 def tcp_scan(ip,port): '''利用socket 发送tcp包,探测端口存活率 :param ip: 1.1.1.1 type is string :param port: 22 type is int Usage:: >>>
AI拉呱
2021/01/14
1.5K0
16.1 Socket 端口扫描技术
端口扫描是一种网络安全测试技术,该技术可用于确定对端主机中开放的服务,从而在渗透中实现信息搜集,其主要原理是通过发送一系列的网络请求来探测特定主机上开放的TCP/IP端口。具体来说,端口扫描程序将从指定的起始端口开始,向目标主机发送一条TCP或UDP消息(这取决于端口的协议类型)。如果目标主机正在监听该端口,则它将返回一个确认消息,这表明该端口是开放的。如果没有响应,则说明该端口是关闭的或被过滤。
王瑞MVP
2023/10/20
3830
16.1 Socket 端口扫描技术
Python写TCP端口扫描工具之IP协议的讲解
專 欄 ❈exploit,Python中文社区专栏作者,入坑Python一年。希望与作者交流或者对文章有任何疑问的可以与作者联系: QQ:1585173691 Email:best_exploit@163.com❈—— 年前我讲了链路层arp协议的工作原理,并写了一个主机存活扫描和arp欺骗的脚本工具,在渗透测试中我们首先要做的就是信息收集,可以说信息收集占渗透测试的一大部分,当我们知道有哪些存活的主机的情况下,我们下一步要做的就是查看存活的主机开放了哪些端口,从而根据相应的端口得到相应的服务,从而进行爆
Python中文社区
2018/01/31
1.8K0
Python写TCP端口扫描工具之IP协议的讲解
端口扫描工具合集
端口扫描这个词,大家并不陌生,无论是在边界资产探测,还是在内网服务扫描,都离不开端口扫描这个技术,当然,不可能手工来做,必须依赖工具进行,那么有哪些端口扫描工具可以用呢?它们又有那些特点呢?
信安之路
2022/10/04
3.4K1
端口扫描工具合集
常用端口扫描技术
这 是最基本的TCP扫描,操作系统提供的connect()系统调用可以用来与每一个感兴趣的目标计算机的端口进行连接。如果端口处于侦听状态,那么 connect()就能成功。否则,这个端口是不能用的,即没有提供服务。这个技术的一个最大的优点是,你不需要任何权限。系统中的任何用户都有权利使用这个调用。另一个好处就是速度,如果对每个目标端口以线性的方式,使用单独的connect()调用,那么将会花费相当长的时间,使用者可以通过同时打开多个套接字来加速扫描。使用非阻塞I/O允许你设置一个低的时间用尽周期,同时观察多个套接字。但这种方法的缺点是很容易被察觉的,并且很容易被防火墙将扫描信息包过滤掉。目标计算机的logs文件会显示一连串的连接和连接出错消息,并且能很快使它关闭。
网e渗透安全部
2019/08/09
3.5K0

相似问题

为什么"TCP/IP“的组合比"UDP/IP”更流行

40

什么是主机发现(端口扫描)?

10

用远程NAT设备解释端口扫描结果

10

端口扫描会影响我的网络稳定性吗?

30

为什么DHCP使用UDP而不是TCP?

80
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文