如何使用 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 端口? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章