关于UDP端口扫描概述

尽管互联网上大多数流行服务都基于 TCP 协议运行,但 UDP 服务也广泛部署。DNS、SNMP 和 DHCP(注册端口 53、161/162 和 67/68)是最常见的服务之一。

由于 UDP 扫描通常比 TCP 扫描更慢、更困难,一些安全审计人员可能会忽略这些端口。这是一个错误,因为可利用的 UDP 服务非常普遍,攻击者也不会忽视整个协议。幸运的是,Nmap 可以帮助清查 UDP 端口。

通过 -sU 选项激活 UDP 扫描。它可以与 TCP 扫描类型(如 SYN 扫描 -sS)结合使用,在同一次运行中检查两种协议。

UDP 扫描通过向每个目标端口发送 UDP 数据包来工作。对于大多数端口,这个数据包将是空的(没有负载),但对于一些更常见的端口,会发送特定于协议的负载。根据响应(或没有响应),端口被分配到四种状态之一,如下表所示。

表 1.1. Nmap 如何解释 UDP 探测响应

探测响应分配状态
来自目标端口的任何 UDP 响应(不寻常)open(开放)
没有收到响应(即使经过重传)open|filtered(开放或被过滤)
ICMP 端口不可达错误(类型 3,代码 3)closed(关闭)
其他 ICMP 不可达错误(类型 3,代码 1、2、9、10 或 13)filtered(被过滤)

这个表格中最令人好奇的元素可能是 open|filtered 状态。它是 UDP 扫描最大挑战的症状:开放端口很少响应空探测。那些 Nmap 有特定协议负载的端口更有可能收到响应并被标记为 open,但对于其余端口,目标 TCP/IP 栈只是将空数据包传递给监听应用程序,后者通常会立即丢弃它作为无效数据。如果所有其他状态的端口都会响应,那么可以通过排除法推断出开放端口。不幸的是,防火墙和过滤设备也已知会在没有响应的情况下丢弃数据包。因此,当 Nmap 在多次尝试后没有收到响应时,它无法确定端口是 open 还是 filtered

在 Nmap刚 发布时,过滤设备比较少见,以至于 Nmap 可以(并且确实)假设端口是 open。现在随着互联网更好的进行防护,所以 Nmap 在 2004 年(版本 3.70)改变为将无响应的 UDP 端口报告为 open|filtered

 nmap -sU -v 192.168.1.123​Starting Nmap ( https://nmap.org )Nmap scan report for 192.168.1.123(The 997 ports scanned but not shown below are in state: closed)PORT    STATE         SERVICE53/udp  open|filtered domain67/udp  open|filtered dhcpserver111/udp open|filtered rpcbindMAC Address: 00:02:E3:14:11:02 (Lite-on Communications)​Nmap done: 1 IP address (1 host up) scanned in 999.25 seconds

扫描展示了 open|filtered 模糊问题以及另一个问题:UDP 扫描可能很慢。

Nmap 提供了绕过这两个问题的方法,如下两节所述。

区分开放和被过滤的 UDP 端口

案例中,除了三个 open|filtered 端口外,其他所有端口都是 closed。因此,扫描成功地将可能开放的端口缩小到少数几个。情况并非总是如此。如下展示了针对192.168.1.223的 UDP 扫描。

 krad# nmap -sU -T4 192.168.1.223​Starting Nmap ( https://nmap.org )All 1000 scanned ports on 192.168.1.223 are open|filtered​Nmap done: 1 IP address (1 host up) scanned in 5.50 seconds

在这种情况下,扫描并未缩小开放端口的范围。所有 1000 个端口都是 open|filtered。需要新的策略。

表 1.1,“Nmap 如何解释 UDP 探测响应” 显示 open|filtered 状态发生在 Nmap 向特定端口发送 UDP 探测后未收到任何响应时。它还显示,当 Nmap 收到 open|filtered 端口的响应时,状态将更改为 open。原因这些服务很少响应是因为 Nmap 发送的空数据包被认为是无效的。不幸的是,UDP 服务通常定义自己的数据包结构,而不是遵循 Nmap 可以始终发送的某种通用格式。一个 SNMP 数据包与 SunRPC、DHCP 或 DNS 请求数据包完全不同。

为了向每个流行的 UDP 服务发送正确的数据包,Nmap 需要一个大型数据库来定义探测格式。幸运的是,Nmap 有 nmap-service-probes,这是服务和版本检测子系统的一部分,将在第 7 章,“服务和应用程序版本检测” 中描述。

当通过 -sV(或 -A)启用版本扫描时,它将向每个 open|filtered 端口(以及已知的 open 端口)发送 UDP 探测。如果任何探测从 open|filtered 端口收到响应,状态将更改为 open。在 192.168.1.123扫描中添加 -sV 的结果如下所示。

 krad# nmap -sUV -F 192.168.1.123​Starting Nmap ( https://nmap.org )Nmap scan report for 192.168.1.123Not shown: 997 closed portsPORT    STATE         SERVICE    VERSION53/udp  open          domain     ISC BIND 9.2.167/udp  open|filtered dhcpserver111/udp open          rpcbind    2 (rpc #100000)MAC Address: 00:02:E3:14:11:02 (Lite-on Communications)​Nmap done: 1 IP address (1 host up) scanned in 1037.57 seconds

这个新的扫描显示端口 111 和 53 肯定是开放的。系统并不完美——端口 67 仍然是 open|filtered

我们可以推测,端口是开放的,但 Nmap 没有适用于 DHCP 的有效版本探测。

另一个棘手的服务是 SNMP,它通常只有在提供正确的Community(社区字符串)时才会响应。许多设备配置了社区字符串 public,但并非全部。虽然这些结果并不完美,但能够确定两个测试端口中的两个的真实状态仍然很有帮助。

而对于192.168.11.230,使用版本检测改进 UDP 扫描结果:

 nmap -sUV -T4 192.168.11.230​Starting Nmap ( https://nmap.org )Nmap scan report for 192.168.11.230Not shown: 999 open|filtered portsPORT   STATE SERVICE VERSION53/udp open  domain  ISC BIND 9.3.4​Nmap done: 1 IP address (1 host up) scanned in 3691.89 seconds

提示信息:

之前端口扫描192.168.11.230花费了5秒,使用版本检测改进UDP扫描花费了1个小时。Nmap 版本 5.10BETA1 及更高版本有一个负载系统,如果选择进行端口扫描或主机发现,它会向 30 多个知名的 UDP 端口发送正确的服务协议请求。虽然它不如版本检测全面,但它会迅速识别192.168.11.230中的开放端口 53。

提高 UDP 扫描速度

UDP 扫描的另一个主要挑战是提高其速度。开放和被过滤端口很少发送响应,导致 Nmap 超时并进行重传,以确保数据包未丢失。关闭端口往往是一个更大的问题,它们通常会发送 ICMP 端口不可达错误。但与 TCP 中关闭端口对 SYN 或 connect 扫描发送 RST 数据包不同,许多主机默认对 ICMP 端口不可达消息进行速率限制。Linux 和 Solaris 在这方面尤为严格。例如,192.168.1.123上的 Linux 2.4.20 内核将目的地不可达消息限制为每秒一个(在 net/ipv4/icmp.c 中)。这解释了为什么示例 5.4 中的扫描如此缓慢。

Nmap 检测到速率限制并相应地降低速度,以避免发送网络无法处理的无用数据包。然而,对于 Linux 风格的每秒一个数据包限制,扫描 65,536 个端口需要超过 18 小时。以下是一些提高 UDP 扫描性能的建议。此外,第 6 章“优化 Nmap 性能”中还提供了更详细的讨论和一般性建议

  • 增加主机并行性

如果 Nmap 从单个目标主机每秒仅收到一个端口不可达错误,它可以通过同时扫描多个主机(例如 100 个)来每秒接收 100 个响应。通过向 --min-hostgroup 传递大值(例如 100)来实现这一点。

  • 先扫描常见端口

非常少的 UDP 端口号被广泛使用。使用 -F 选项扫描最常见的 100 个 UDP 端口将快速完成。你可以在后台启动对网络的多天 65K 端口扫描,同时处理这些结果。

在版本检测扫描中添加 --version-intensity 0

如前所述,版本检测(-sV)通常需要区分开放和被过滤的 UDP 端口。版本检测相对缓慢,因为它涉及向每个 openopen|filtered 端口发送大量特定于应用程序协议的探测。指定 --version-intensity 0 可以指示 Nmap 仅尝试最有可能对特定端口号有效的探测。它通过使用 nmap-service-probes 文件中的数据来实现这一点。这种选项的性能影响是显著的,如本节后面的示例所示。

  • 从防火墙内部扫描

与 TCP 一样,包过滤器会显著减慢扫描速度。许多现代防火墙使设置包速率限制变得容易。如果可以通过从防火墙内部而不是跨防火墙发起扫描来绕过此问题,请这样做。

  • 使用 --host-timeout 跳过慢速主机

受到 ICMP 速率限制的主机可能比那些对每个探测都快速响应的主机需要多个数量级的时间来扫描。指定最大扫描时间(例如 15m 表示 15 分钟)会导致 Nmap 在超出该时间后放弃扫描单个主机。这使你可以快速扫描所有响应迅速的主机。你可以在后台处理这些慢速主机。

  • Use -v and chill out

启用冗长输出(-v)后,Nmap 会提供每个主机的预计扫描完成时间。无需密切监视它。去睡一觉,去你最喜欢的酒吧,看书,完成其他工作,或者以其他方式娱乐自己,同时让 Nmap 不知疲倦地为你扫描。

一个完美的提高 UDP 扫描速度的例子是示例 如下,我们再次运行了该扫描。这次添加了 -F --version-intensity 0 选项,将一个小时的扫描时间缩短至 13 秒!然而,同样的关键信息(53 端口上的 ISC Bind 守护进程)被检测到。

 nmap -sUV -T4 -F --version-intensity 0 192.168.11.230​Starting Nmap ( https://nmap.org )Nmap scan report for 192.168.11.230Not shown: 99 open|filtered portsPORT   STATE SERVICE VERSION53/udp open  domain  ISC BIND 9.3.4​Nmap done: 1 IP address (1 host up) scanned in 12.92 seconds

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/900327.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

美团滑块 分析

声明 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 逆向过程 距离识别不准简单学习一下&…

SpringBoot配置文件多环境开发

目录 一、设置临时属性的几种方法 1.启动jar包时,设置临时属性 ​2.idea配置临时属性 3.启动类中创建数组指定临时属性 二、多环境开发 1.包含模式 2.分组模式 三、配置文件的优先级 1.bootstrap 文件优先: 2.特定配置文件优先 3.文件夹位置优…

开发一个小程序需要多久时间?小程序软件开发周期

开发一个小程序所需时间受多种因素影响,以下为你详细列举: 一、需求复杂度。若只是简单展示类小程序,如企业宣传、产品介绍,功能单一,大概 1 - 2 周可完成。若涉及复杂交互,像电商小程序,涵盖商…

Linux 基础入门指南:用户管理、基本命令(一)

摘要:Xshell登录、用户管理、修改字体与配色方案。操作系统概要。Linux文件系统基础。相关命令:pwd, ls, cd, mkdir, rmdir, rm,touch, nano, tree; adduser, passwd 目录 一、系统登录与用户管理 1. 登录方式 (1)命令行登录 …

【python】:使用Qt Creator 管理python项目

一、引言(也许适合小众的你) 如果你跟我一样,有时候开发点小项目,既有Qt的需求,又有python项目需求,除了VS以外,Qt Creator同时满足这两种语言的项目开发需求和无缝项目切换,目前来看确实是比较…

【简单数论】(模运算,快速幂,乘法逆元,同余,exgcd,gcd,欧拉函数,质数,欧拉筛,埃式筛,调和级数枚举,约数,组合数)

数论 模运算 a m o d b a − ⌊ a / b ⌋ b a\ mod \ b a - \lfloor a / b \rfloor \times b a mod ba−⌊a/b⌋b n m o d p n \ mod\ p n mod p得到的结果的正负至于被除数 n n n有关 模运算的性质: ( a b ) m o d m ( ( a m o d m ) ( b m o d m ) ) m …

006贪心——算法备赛

跨步问题 跳跃游戏|| 问题描述 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向后跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意 nums[i j] 处: 0 < j < nums[i]i j &…

MySQL学习笔记(三)——图形化界面工具DataGrip

目录 1. 图形化界面工具 2.下载 3. 安装 3.1 安装步骤 3.2 激活说明 4. 使用 4.1 汉化教程 4.2 使用 1. 图形化界面工具 上述&#xff0c;我们已经讲解了通过 DDL 语句&#xff0c;如何操作数据库、操作表、操作表中的字段&#xff0c;而通过 DDL 语句执行在命令进行操…

编程题学习

acwing 826. 单链表 #include <iostream>using namespace std;const int N 100010;int idx, e[N], ne[N], head;void init() {head -1;idx 0; }void insert_head(int x) {e[idx] x;ne[idx] head;head idx ; }void delete_k_pos(int x, int k) {e[idx] x;ne[idx…

modelscope环境准备--装conda、内网穿透、配置HuggingFace

1 准备anaconda #1、安装包 wget https://repo.anaconda.com/archive/Anaconda3-2024.10-1-Linux-x86_64.sh#2、提高权限 chmod x Anaconda3-2024.10-1-Linux-x86_64.sh#3、执行安装命令 ./Anaconda3-2024.10-1-Linux-x86_64.sh#4、一直按Enter健继续 yes继续 Enter#5、手动激…

算法题(117):字符串的展开

审题&#xff1a; 本题需要我们根据题目的要求将字符串进行扩展 思路&#xff1a; 方法一&#xff1a;模拟法 一般来说题目字数和要求很多的题就是模拟题&#xff0c;模拟题特别需要注意的就是细节&#xff0c;在编写代码之前一定要把细节想清楚&#xff0c;否则很容易出错。 分…

15使用按钮实现helloworld(2)

目录 通过纯代码的方式实现的 按版 hello world 通过图形化界面的方式&#xff0c;实现的 按钮版 hello world 通过纯代码的方式实现的 按版 hello world 对于纯代码版本,按钮对象是咱们自己 new 的 为了保证其他函数中能够访问到这个变量,就需要把按钮对象 设定为 Widget 类…

Nacos 服务发现的核心模型有哪些?Service, Instance, Cluster 之间的关系是什么?

Nacos 服务发现的核心模型 Nacos 服务发现的核心数据模型主要围绕以下几个关键概念构建&#xff0c;它们共同构成了服务注册与发现的基础&#xff1a; Namespace (命名空间): 用途: 用于进行环境隔离。比如&#xff0c;你可以为开发环境 (dev)、测试环境 (test) 和生产环境 (p…

VMware 安装 Ubuntu 全流程实战指南:从零搭建到深度优化

在软件开发、系统测试以及技术学习等诸多场景中&#xff0c;使用虚拟机安装操作系统是一种灵活且高效的方式。Ubuntu 作为一款优秀的开源操作系统&#xff0c;在 VMware 虚拟机上的安装与优化备受关注。接下来&#xff0c;将为大家带来 VMware 安装 Ubuntu 的全流程实战指南&am…

探秘叁仟智盒设备:智慧城市的智能枢纽

在智慧城市建设的宏伟蓝图中&#xff0c;各类先进技术与设备层出不穷&#xff0c;叁仟智盒设备作为其中的关键一环&#xff0c;正悄然发挥着巨大作用&#xff0c;为城市的智能化转型注入强大动力。 一、叁仟智盒设备概述 叁仟智盒设备是杭州叁仟智慧城市科技有限公司旗下的重…

晶晨S905L3S/S905L3SB_安卓9.0_10秒开机_通刷-线刷固件包

晶晨S905L3S&#xff0f;S905L3SB_安卓9.0_10秒开机_通刷-线刷固件包 线刷方法&#xff1a;&#xff08;新手参考借鉴一下&#xff09; 使用晶晨刷机工具USB_Burning_Tool进行刷机&#xff1b;请使用Amlogic USB Burning Tool v2.2.5或v2.2.7&#xff08;晶晨线刷烧录工具v2.2…

VSCode中结合DeepSeek使用Cline插件的感受

前言 听网上有传言说AI智能插件Cline非常的好用&#xff0c;而且相对Cursor而言还是免费的&#xff0c;捆绑的大模型选择也比较的广泛。所以&#xff0c;特意安装试用了一下。 我的采用IDE是VSCode&#xff0c;捆绑的大模型是最近比较火的DeepSeek。总体使用下来感觉非常的棒。…

蓝桥云客--破译密码

5.破译密码【算法赛】 - 蓝桥云课 问题描述 在近期举办的蓝桥杯竞赛中&#xff0c;诞生了一场激动人心的双人破译挑战。比赛的主办方准备了N块神秘的密码芯片&#xff0c;参赛队伍需要在这场智力竞赛中展示团队合作的默契与效率。每个队伍需选出一位破译者与一位传输者&#…

中国移动启动数字乡村“五新升级”:年底前,行政村5G覆盖达95%

大湾区经济网品牌观察报道&#xff0c;近日&#xff0c;在国家全面推进乡村振兴的战略背景下&#xff0c;中国移动近日发布数字乡村升级行动计划&#xff0c;以“AI大模型数智化平台”为核心引擎&#xff0c;围绕“五新升级”构建“两个新型”信息服务体系。 一、数字基建筑基&…

智慧节能双突破 强力巨彩谷亚VK系列刷新LED屏使用体验

当前全球节能减排趋势明显&#xff0c;LED节能屏作为显示技术的佼佼者&#xff0c;正逐渐成为市场的新宠。强力巨彩谷亚万境VK系列节能智慧屏凭借三重技术保障、四大智能设计以及大师臻彩画质&#xff0c;在实现节能效果的同时&#xff0c;更在智慧显示领域树立新的标杆。   …