如何使用 Nmap 检索 TCP 和 UDP 端口? [关闭]

Posted

技术标签:

【中文标题】如何使用 Nmap 检索 TCP 和 UDP 端口? [关闭]【英文标题】:How to retrieve both TCP and UDP ports with Nmap? [closed] 【发布时间】:2012-05-18 21:14:20 【问题描述】:

我需要用 Nmap 以最快的方式在同一扫描中检索 TCP 和 UDP 端口。我会尝试更好地解释它。如果我使用最常用的命令:

nmap 192.168.1.1

它只检索 TCP 端口,而且速度非常快。

如果我使用以下命令:

nmap -sU 192.168.1.1

它只检索 UDP 端口,而且速度非常快(虽然不是那么快,但仍然如此)。

我的问题:是否有两个命令的组合?我试过了:

nmap -sU -sS 192.168.1.1
nmap -sU -sT 192.168.1.1

但是它们非常慢。

我正在使用 Nmap 5.51,有什么建议吗?

【问题讨论】:

这个问题更适合Super User 您提出了一个很好的观点,即 TCP 和 UDP 扫描在单独执行时速度很快,但在同一命令中组合时速度很慢。 使用组合 -sTU 例如 nmap -sTU 192.168.1.1 您可以使用时序参数使扫描更快 -T5 例如。您还可以将 -PE 用于较少数量的探测。 nmap -sTU -T5 -PE 192.168.1.1 【参考方案1】:

正如您所见,UDP 扫描速度很慢,因为打开/过滤的端口通常不响应,因此 nmap 必须超时然后重新传输,而关闭的端口将发送 ICMP 端口不可达错误,这是系统通常速率限制的。

您可以添加 -T 开关来提高扫描速度,但这可能会降低准确性并使其更容易检测。

-T:设置计时模板(越高越快)

-PN 将关闭 ping 扫描元素

您还可以并行扫描更多主机,

或使用 -p 开关或 --top-ports 减少要扫描的端口数量,这将扫描在 nmap-services 文件中找到的比率最高的端口。

如果您正在扫描多个主机,您可以使用 --host-timeout 跳过慢速主机。

关于 TCP,-sS 应该比 -sT 快。

HTH!

【讨论】:

是的,实际上我正在扫描整个网络,192.168.1.1 只是一个示例。无论如何,您的解决方案仍然必须结合 -sS 和 -sU :( 我的意思是这很奇怪,因为这两个命令分别非常快。 是的,您必须将它们结合起来才能获得两种协议。我通常运行类似“sudo nmap -sSU -P0 -vv -top-ports 500 192.168.1.1”之类的东西 - 并使用 -T4 相应地调整端口并修改并行设置。 $ sudo time nmap -sSU -Pn 10.92.5.5 开始 Nmap 5.61TEST5…。 Nmap 完成:1 个 IP 地址(1 个主机启动)在 404.18 秒内扫描 404.19 真实 0.21 个用户 0.56 sys $ sudo time nmap -sU -Pn 10.92.5.5 启动 Nmap 5.61TEST5 Nmap 完成:1 个 IP.. . 202.19 seconds 202.20 real 0.17 user 0.27 sys $ sudo time nmap -sS -Pn 10.92.5.5 10.92.5.5 上的所有 1000 个扫描端口都被过滤 Nmap done: 1 IP 地址(1 host up)扫描进来202.29 秒 202.29 真实 0.17 用户 0.28 系统 友情提醒,在现代 nmap 版本中 -PN 已更改为 -Pn ;-)【参考方案2】:

你没有说你的扫描速度有多慢,但我认为你会从--min-parallelism 选项中受益,它会调整未完成探测的最小数量。

我看到像这样的扫描时间减少了 70%(与裸 -sT-sU 扫描相比)。请注意,有可能将--min-parallelism 设置得太高,这样主机(或网络)无法同时缓冲这么多查询。

[mpenning@Hotcoffee]$ sudo nmap --min-parallelism 100 -sT -sU localhost

Starting Nmap 5.00 ( http://nmap.org ) at 2012-05-10 01:07 CDT
Interesting ports on localhost (127.0.0.1):
Not shown: 1978 closed ports
PORT     STATE         SERVICE
22/tcp   open          ssh
25/tcp   open          smtp
49/tcp   open          tacacs
53/tcp   open          domain
80/tcp   open          http
111/tcp  open          rpcbind
631/tcp  open          ipp
2003/tcp open          finger
2004/tcp open          mailbox
3389/tcp open          ms-term-serv
5901/tcp open          vnc-1
5910/tcp open          unknown
6001/tcp open          X11:1
7002/tcp open          afs3-prserver
53/udp   open|filtered domain
69/udp   open|filtered tftp
111/udp  open|filtered rpcbind
123/udp  open|filtered ntp
161/udp  open|filtered snmp
631/udp  open|filtered ipp
1812/udp open|filtered radius
1813/udp open|filtered radacct

Nmap done: 1 IP address (1 host up) scanned in 1.54 seconds
[mpenning@Hotcoffee]$

【讨论】:

我注意到这个参数的可靠性很差(我像你一样使用 100)。例如,我的一台主机打开了 SNMP 端口|已过滤,但 Nmap 认为它已关闭。但是,如果我运行 nmap -sU -p U:161 192.168.1.1 它会正确返回 open|filtered。 这就是为什么我说,“请注意,可以将 --min-parallelism 设置得太高,这样主机(或网络)就无法同时缓冲这么多查询。”。降低 --min-parallelism 直到您的可靠性问题消失,但您仍然可以获得可接受的速度 该参数有默认值吗?我的意思是默认情况下 Nmap 在单个主机上进行多少次并行扫描? 据the NMAP Performance Manual:默认情况下,Nmap会根据网络性能计算出一个不断变化的理想并行度。如果数据包被丢弃,Nmap 会减慢速度并允许更少的未完成探测。随着网络证明自己的价值,理想的探测数量会慢慢上升。这些选项为该变量设置了最小或最大界限。默认情况下,如果网络被证明不可靠,理想的并行度可能会下降到 1,而在完美条件下,理想的并行度会上升到数百。

以上是关于如何使用 Nmap 检索 TCP 和 UDP 端口? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用Nmap进行端口扫描常用端口有哪些?

netcat,nmap常用例子

【udp】如何检测UDP端口的连通性

如何使用Nmap进行端口扫描如何选择要扫描的端口

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

如何设置才能让nmap无法扫描到139端口