Nmap UDP扫描缓慢问题探究(无结果)

一、说明

在网络原理中我们经常说TCP是面向连接的要进行三次握手和四次挥手所以速度比较慢,UDP是无连接的直接发送和接收所以速度快(说到这个快慢我总想起多年前有篇分析MSN为什么被QQ淘汰的一篇文章其中有一条就是说MSN用的TCP速度慢QQ用的UDP速度快,时至今日我也不确定在聊天软件中用TCP和用UDP是否会表现出明显的速度差异甚至我不确定是不是MSN用TCP、QQ用UDP)。

今天同事整理端口矩阵时反映说Nmap进行UDP端口扫描没有结果,让帮看一下命令有没有问题。形如下:

nmap -sU -p 1-65535 192.168.220.128

看了一下没什么问题,在自己Windows上用Zenmap跑了一下发现扫描比较慢但没有很在意,直到下午看到还没完成就需要探究一番了。

对以往UDP扫描的速度没什么特别换印像,也就是说应该没有这么慢才对。

二、问题探究

2.1 排除服务端配置问题

首先使用Wireshark截包,发现每秒也就三五个探测及端口不可达ICMP包。

直觉上没认为自己机器的问题,再结合百度、谷歌的结果及官网的如下说法,觉得应该就是服务端通过icmp_ratelimit参数限制了ICMP端口不可达响应速率

但到服务器查看/proc/sys/net/ipv4/icmp_ratelimit发现配置的是1000,如下图

这是越想越不能令人信服的,实际扫描中的每秒三五次和每秒限制1000次差距过于明显,瓶颈不应该在服务器限制响应速率上(而且测试中将icmp_ratelimit配置为不进行限速的0也并没有快很多)。

2.2 排除操作系统问题

向另一同事询问后,他提出有没有可能是操作系统问题,建议使用Linux试一下。

思索之下是有道理的,一是Windows和Linux在发包这种东西上素来就有区别,二是之前用nmap大多在Linux里用UDP扫描感觉没有很慢。

打开Kali虚拟机使用Nmap进行扫描发现确实快很多,如下图所示:

唯一的问题是不管扫哪个机器、怎么扫,所有端口都报open|filtered。这最终只能认为是服务器端口的返回不足以让Nmap区分出其状态。

正准备收工,把UDP扫描慢归为操作系统问题,同时UDP扫描判断端口状态效果一般时,看到Wireshark抓取的数据包如下图所示:

这问题很大,如上截图中只有从虚拟机发往目标机的数据包,并没有从目标机返回的端口不可达ICMP包(但这似乎不是所有端口都被识别为open|filtered的原因,因为后边在Linux物理机上一样是open|filtered)。

这与前面在物理机中的扫描不一致,此时就存在操作系统类型和有无响应数据包两个变量,不能直接下结论说是哪个的问题。

又用一台Linux物理机使用Nmap进行扫描,发现扫描速度与Windows物理机差不多。

也就是说,当前的结论是Nmap的UDP扫描缓慢和服务端无关、和操作系统也无关、虚拟机中的快只是因为收不到响应,其中的道理到目前为止尚不清楚。

参考:

https://nmap.org/book/scan-methods-udp-scan.html#scan-methods-ex-udpscan-scanme2

原文地址:https://www.cnblogs.com/lsdb/p/10678525.html

时间: 2024-11-08 21:04:28

Nmap UDP扫描缓慢问题探究(无结果)的相关文章

nmap端口扫描工具使用

(一)Port scan简介 port Scan的方法介绍 port Scan就是一种通过检测对方服务器的开放端口,侦测对方服务器服务的方法.一般可分为主动式和被动式两种. 主动式就是通过向对方服务器的特定端口发送数据包,根据应答来判断,以nmap 为代表. 被动式,不主动发出数据包,而是在网络上长时侦听,分析网上的transaction,来分析,严格的来被动式不应该被称作是端口扫描.以nwatch为代表 (二)优缺点比较  (1)主动式的优点 主动式只要在对方没有把通信阻断的情况下,可以在较短

nmap 高级扫描用法

nmap提供了四项基本功能(主机发现.端口扫描.服务与版本侦测.OS侦测)及丰富的脚本库.Nmap既能应用于简单的网络信息扫描,也能用在高级.复杂.特定的环境中:例如扫描互联网上大量的主机:绕开防火墙/IDS/IPS:扫描Web站点:扫描路由器等等. 简要回顾Nmap简单的扫描方式:全面扫描:nmap-T4 -A targetip 主机发现:nmap-T4 -sn targetip 端口扫描:nmap-T4 targetip 服务扫描:nmap-T4 -sV targetip 操作系统扫描:nm

NMAP网络扫描工具的安装与使用

简介 NMAP是一款流行的网络扫描和嗅探工具也是一个强大的端口扫描类安全测评工具,被广泛应用在黑客领域做漏洞探测以及安全扫描,更多的nmap是一个好用的网络工具,在生产和开发中也经常用到,主要做端口开放性检测和局域网信息的查看收集等,不同Linux发行版包管理中一般也带有nmap工具,这里选择去官网下载源码包进行编译安装,nmap的官网是是:https://namp.org由于某城墙的原因,打开会比较慢或者连接失败,所以奉上nmap中文网地址:http://www.nmap.com.cn/ 中文

老李分享:使用 Python 的 Socket 模块开发 UDP 扫描工具

poptest是业内唯一的测试开发工程师培训机构,测试开发工程师主要是为测试服务开发测试工具,在工作中要求你做网络级别的安全性测试,但是条件限制你无法用商业工具,所以自己动手要写测试工具,在这里我们在测试开发工程师的就业培训中构建了一个场景,就是自己开发udp扫描工具,我们在现阶段主要是用python为主要开发语言来实现各种场景下的测试,而quicktestprofessional的培训我们已经免费. 首先我们了解下概念:套接字能够访问底层网络信息.如,我们可以用它来检查IP和ICMP报头,他们

python学习之udp扫描内网存活主机

一:UDP协议是非面向连接的协议,不同于TCP扫描依赖于建立连接过程,因此UDP扫描是不可靠的  udp主机扫描原理:利用ICMP端口不可达报文进行扫描 当发送一个udp数据包到主机的某个关闭端口上时,目的主机会返回一个ICMP包指示目标端口不可达,这样意味着主机是存活的 优点:可以完成对UDP端口的探测.    缺点:需要系统管理员的权限.扫描结果的可靠性不高.因为当发出一个UDP数据报而没有收到任何的应答时,有可能因为这个UDP端口是开放的,也有可能是因为这个数据报在传输过程中丢失了,所以要

Nessus漏洞扫描教程之使用Nmap工具扫描识别指纹

Nessus漏洞扫描教程之使用Nmap工具扫描识别指纹 Nmap工具的准备工作 当用户对Nessus工具有清晰的认识后,即可使用该工具实施扫描.但是,在扫描之前需要做一些准备工作,如探测网络中活动的主机.主机中运行的服务及主机的操作系统等.当用户对一个主机比较熟悉后,进行扫描也就非常容易了.因为对于Nessus工具,针对不同的系统.漏洞都提供了相应的插件.如果用户对目标主机很了解的话,使用Nessus工具扫描目标就不会像个无头苍蝇似的瞎扫描.而且,可以更容易获取到非常有价值的信息了.本章将介绍实

NMAP为什么扫描不到端口

NMAP为什么扫描不到端口 NMAP是知名的网络端口扫描工具.但很多新人发现,使用NMAP经常扫描不出来任何端口,尤其是手机之类.这实际存在一个理解上的误区.扫描端口是为了发现主机/设备上存在的对外开放的端口,以便后期利用.为了探测端口,扫描工具会向目标发送数据包,然后根据响应包来判断端口的开启情况.如果目标不进行响应,扫描工具也就无法探测端口情况. 普通个人电脑和手机在进行网络数据传输的时候,会开启端口.但这时,端口处于占用状态.一旦数据发送或者接受完成,端口就自动关闭.在这个时间段内,即使扫

shell脚本案例(五)利用nmap批量扫描存活主机

利用nmap批量扫描存活主机 知识储备:grep,nmap 一.安装nmap 1.安装编译环境 [[email protected] nmap-7.01]# yum install gcc g++ gcc-c++ -y 2.使用wget下载nmap [[email protected] nmap-7.01]# wget http://nmap.org/dist/nmap-7.01.tar.bz2 3.解压下载的安装包 [[email protected] nmap-7.01]# tar -vxf

如何在linux使用nmap端口扫描工具扫描网段内开放的端口

linux一般不会自动安装nmap命令需要使用yum -y install nmap安装nmap命令,前提是您已经配置好了yum源. nmap特点: 主机探测 端口扫描 版本检测 系统检测 支持探测脚本的编写 nmap命令详解 nmap ip_address   #nmap默认发送一个arp的ping数据包,来探测目标主机1-10000范围内所有开放的端口 [[email protected] scanport]# nmap 10.132.71.1   Starting Nmap 6.40 (