如何使用Nmap检索TCP和UDP端口?

如何使用Nmap检索TCP和UDP端口?,tcp,udp,nmap,port-scanning,Tcp,Udp,Nmap,Port Scanning,我需要用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

我需要用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,有什么建议吗?

正如您所看到的,UDP扫描很慢,因为打开/过滤的端口通常没有响应,所以Nmap必须超时,然后重新传输,而关闭的端口将发送ICMP端口无法访问的错误,这是系统通常的速率限制

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

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

-PN将关闭ping扫描元素

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

或者减少使用-p开关或--top端口扫描的端口数,这将扫描在nmap服务文件中找到的比率最高的端口

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

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


您没有说扫描速度有多慢,但我认为使用
--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]$

这个问题更适合您。请注意,TCP和UDP扫描在单独完成时速度较快,但在同一命令中组合使用时速度较慢。使用组合-sTU,例如nmap-sTU 192.168.1.1您可以使用定时参数使扫描更快-例如T5。您还可以将-PE用于较少数量的探针。nmap-sTU-T5-pe192.168.1.1是的,实际上我正在扫描整个网络,192.168.1.1只是一个例子。不管怎么说,你的解决方案仍然必须结合-sS和-sU:(我的意思是这很奇怪,因为这两个命令分开的速度相当快。是的,你必须结合它们才能得到这两个协议。我通常运行类似“sudo nmap-sSU-P0-vv-top ports 500 192.168.1.1”的程序-并相应地使用-T4调整端口,并修改parralelism设置。$sudo time nmap-sSU-Pn 10.92.5.5启动nmap 5.61TEST5…nmap done: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 done:1 IP…202.19秒202.20实0.17用户0.27 sys$sudo time nmap-sS-Pn 10.92.5.5 10.92.5.5上的所有1000个扫描端口都经过nmap过滤完成:1个IP地址(1个主机启动)在202.29秒内扫描202.29实际0.17用户0.28系统只是一个友好的提醒,在现代nmap版本中
-PN
已更改为
-PN
;-)我注意到该参数的可靠性很差(我像你一样使用了100)。例如,我的一台主机打开了SNMP端口,但Nmap认为它已关闭。但是,如果我运行nmap-sU-pu:161 192.168.1.1,它将正确返回open | filtered。这就是为什么我说,“请注意,可能会将--min并行度设置得太高,这样主机(或网络)无法同时缓冲这么多查询。”。降低
--min并行度
,直到可靠性问题消失,但仍能获得可接受的速度该参数有默认值吗?我的意思是,默认情况下,Nmap在一台主机上进行多少并行扫描?根据:默认情况下,Nmap根据网络性能计算不断变化的理想并行度。如果数据包被丢弃,Nmap会减慢速度并允许更少的未完成探测。随着网络证明其自身的价值,理想的探测器数量慢慢上升。这些选项为该变量设置最小或最大边界。默认情况下,如果网络被证明不可靠,理想的并行度可以降到1,而在完美的情况下可以上升到几百。