为什么对远程主机进行 NMAP 扫描时显示没有打开端口,而端口实际上是打开的?

为什么对远程主机进行 NMAP 扫描时显示没有打开端口,而端口实际上是打开的?
telnet 99.99.99.99 33491
Trying 99.99.99.99...
Connected to 99.99.99.99..
Escape character is '^]'
^]
telnet> close
Connection closed.

如您所见,上面的 telnet 命令显示端口 33491 已打开。

-PN在同一个 IP 和端口上运行 NMAP显示它已关闭:

root@Ubuntu:~# nmap -PN 99.99.99.99 -p33491
Starting Nmap 5.00 ( http://nmap.org ) at 2011-10-18 18:18 EDT
Interesting ports on xxx.com (99.99.99.99):
PORT      STATE    SERVICE
33491/tcp filtered unknown

Nmap done: 1 IP address (1 host up) scanned in 2.07 seconds

在上面的例子中,telnet 显示端口打开,但 NMAP 显示端口为“已过滤”即关闭。

如何让 NMAP 显示远程主机的开放端口(禁用 ping)?

答案1

已过滤

Nmap 无法确定端口是否打开,因为数据包过滤会阻止其探测到达端口。过滤可能来自专用防火墙设备、路由器规则或基于主机的防火墙软件。这些端口让攻击者感到沮丧,因为它们提供的信息非常少。有时它们会以 ICMP 错误消息(如类型 3 代码 13(目标无法到达:管理上禁止通信))进行响应,但更常见的是过滤器只是丢弃探测而不做出响应。这迫使 Nmap 重试多次,以防探测因网络拥塞而不是过滤而丢弃。这会大大减慢扫描速度。

您可以要求 nmap 尝试 TCP 连接...

nmap -PN -sT -p 33491 example.com

答案2

Nmap 响应端口被过滤不是表示它已关闭。这意味着 NMap 无法做出该决定 - 它可能是打开的,也可能是关闭的。

根据手册第十五章

过滤意味着防火墙、过滤器或其他网络障碍物正在阻塞端口,因此 Nmap 无法判断它是打开还是关闭。

相关内容