一、说明

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

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

nmap -sU -p - 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物理机使用Nmap进行扫描,发现扫描速度与Windows物理机差不多。

也就是说当前的结论是:虚拟机中的快只是因为收不到响应、Nmap的UDP扫描缓慢和服务端限制回复ICMP不可达速度无关、和Nmap所用操作系统也无关,瓶颈到底是哪还是不太清楚。

参考:

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

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

  1. [na]tcp&udp扫描原理(nmap常用10条命令)

    nmap软件使用思路及常见用法 Nmap高级用法与典型场景 namp -sn 4种包 使用nmap -sn 查询网段中关注主机或者整个网段的IP存活状态 nmap -sn nmap针对局域网和广域网( ...

  2. nmap 高级扫描用法

    nmap提供了四项基本功能(主机发现.端口扫描.服务与版本侦测.OS侦测)及丰富的脚本库.Nmap既能应用于简单的网络信息扫描,也能用在高级.复杂.特定的环境中:例如扫描互联网上大量的主机:绕开防火墙 ...

  3. Nmap简单扫描

    Nmap所识别的6个端口状态. open(开放的) 应用程序正在该端口接收TCP 连接或者UDP报文.发现这一点常常是端口扫描 的主要目标.安全意识强的人们知道每个开放的端口 都是攻击的入口.攻击者或 ...

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

    简介 NMAP是一款流行的网络扫描和嗅探工具也是一个强大的端口扫描类安全测评工具,被广泛应用在黑客领域做漏洞探测以及安全扫描,更多的nmap是一个好用的网络工具,在生产和开发中也经常用到,主要做端口开 ...

  5. (转)使用NMAP工具扫描端口

    原文:http://www.linuxde.net/2013/02/12354.html nmap 是一个用于网络探索或安全评测的工具.它支持 ping 扫描(判定哪些主机在运行),多端口扫描技术(判 ...

  6. Nmap目录扫描和漏洞扫描(9.27 第十三天)

    目录扫描:扫描站点的目录,寻找敏感文件(目录名.探针文件.后台.robots.txt[].备份文件等) 目录:站点结构,权限控制不严格 探针文件:服务器配置信息,phpinfo.php   readm ...

  7. nmap端口扫描工具安装和使用方法

    nmap(Network Mapper)是一款开源免费的针对大型网络的端口扫描工具,nmap可以检测目标主机是否在线.主机端口开放情况.检测主机运行的服务类型及版本信息.检测操作系统与设备类型等信息. ...

  8. Nmap常见扫描方式流量分析

    环境说明 扫描者:manjaro linux , IP地址:192.168.31.160 被扫描者:centos 7,IP地址:192.168.31.175 分析工具:wireshark nmap 版 ...

  9. NMAP分布式扫描工具dnmap

    NMAP分布式扫描工具dnmap   NMAP是一款知名的网络扫描工具.它提供丰富和强大的网络扫描功能.但很多时候,需要渗透测试人员从多个终端发起扫描任务,以快速扫描大型网络,或规避IP限制等安全策略 ...

随机推荐

  1. linux文件查找-find和locate

    一.find 使用语法:find  [查找目录]  [查找规则]  [查找完后执行的action] find是根据具体目录进行搜索 1.查找目录 如果不指定查找目录,默认在当前目录下进行查找 如果需要 ...

  2. 常用sql语句总结(二)(更新数据,序列,创建数据表,约束,注释)

    常用sql语句总结(二)(更新数据,序列,创建数据表,约束,注释) 一. 增 INSERT INTO 数据表(字段,字段,-) VALUES(值,值-); INSERT INTO emp(empno, ...

  3. STM32按键输入

    下面3个接上拉电阻 WK_UP接上拉电阻 因为用到了PA,PC,PH所以要使能3个模块 STATIC静态变量只会初始化一次 每次调用flag++,不会再初始化为0:起记忆作用. 最关键的是头 件不要忘 ...

  4. Oracle基础体系浅析

    不论是开发.管理.优化还是设计,对Oracle的基本原理的了解都是必不可少的,于是对自己最近关于Oracle的学习作出一点点的总结. 庖丁解牛之所以能做到"合于桑林之舞,乃中经首之会&quo ...

  5. TreeMap,HashMap,LinkedHashMap区别,很简单解释

    TreeMap,HashMap,LinkedHashMap之间的区别和TreeSet,HashSet,LinkedHashSet之间的区别相似. TreeMap:内部排序. HashMap:无序. L ...

  6. C# 模拟 HTTP POST请求

    /// <summary> /// 用于以 POST 方式向目标地址提交表达数据 /// 使用 application/x-www-form-urlencoded 编码方式 /// 不支持 ...

  7. ejs常用功能函数

    利用<%- include filename %>加载其他页面模版: 1.缓存功能,能够缓存已经解析好的html模版: 2.<% code %>用于执行其中javascript ...

  8. UVA - 12298 Super Poker II NTT

    UVA - 12298 Super Poker II NTT 链接 Vjudge 思路 暴力开个桶,然后统计,不过会T,用ntt或者fft,ntt用个大模数就行了,百度搜索"NTT大模数&q ...

  9. js函数式编程curry与compose实现

    //自行实现以下curry函数和compose //curry function curry(fn) { return function aa (...arg) { if (arg.length &g ...

  10. js注意点:数组比较大小方法及数组与对象的区别

    (迁移自旧博客2017-04-19) 快速复制数组及数组比较大小方法 首先介绍一下复制数组的方法: var arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G']; var ...