nmap -p 7000-7020 10.1.1.1
将输出所有过滤后的端口
Starting Nmap 6.40 ( http://nmap.org ) at 2015-03-04 12:18 EET
Nmap scan report for 10.1.1.1
Host is up (0.00091s latency).
PORT STATE SERVICE
7000/tcp filtered afs3-fileserver
7001/tcp filtered afs3-callback
7002/tcp filtered afs3-prserver
7003/tcp filtered afs3-vlserver
7004/tcp filtered afs3-kaserver
7005/tcp filtered afs3-volser
7006/tcp filtered afs3-errors
7007/tcp filtered afs3-bos
7008/tcp filtered afs3-update
7009/tcp filtered afs3-rmtsys
7010/tcp filtered ups-onlinet
7011/tcp filtered unknown
7012/tcp filtered unknown
7013/tcp filtered unknown
7014/tcp filtered unknown
7015/tcp filtered unknown
7016/tcp filtered unknown
7017/tcp filtered unknown
7018/tcp filtered unknown
7019/tcp filtered unknown
7020/tcp filtered unknown
Nmap done: 1 IP address (1 host up) scanned in 2.78 seconds
有没有一种方法可以让我看到究竟是什么过滤了这些端口?
Nmap 提供了几种方法来获取有关导致过滤的更多信息:
--reason
选项将显示导致“过滤”端口状态的响应类型。这可能是“无响应”或“管理员禁止”或其他内容。reason_ttl
属性在 XML 输出中报告。state
如果过滤端口的 TTL 不同于(通常大于)开放端口的 TTL,那么 TTL 之间的差异就是目标和过滤设备之间的网络距离。也有例外,例如对 ICMP 和 TCP 数据包使用不同初始 TTL 的目标,或者伪造或覆盖 TTL 信息的过滤设备。--traceroute
功能将显示有关您路线上的跃点的信息,其中任何一个都可能过滤您的流量。在某些情况下,其中一个跃点的反向 DNS 名称甚至会类似于“firewall1.example.com”firewalk
TTL 将在沿路由的不同跃点处超时,以尝试找到数据包被阻止的位置。这类似于前两种技术的组合,通常效果很好。当前未发布的 Nmap 开发版本还在带有
-v --reason
选项的普通文本输出中报告响应数据包的 TTL。但现在,您必须使用 XML 输出来获取此信息。编辑添加:Nmap 6.49BETA1是第一个在文本输出中显示响应数据包 TTL 的版本,使用
-v --reason
or-vv
,并于 2015 年 6 月发布。这就是 nmap 文档对
filtered
状态的看法找出正在执行过滤的唯一方法是知道您和远程目标之间的“机器”是什么。
这可以使用路由跟踪实用程序来实现,该实用程序尝试使用特殊的 TCP 数据包确定您和目标之间的主机。在您的情况下,命令可能类似于:
一旦你知道了你和目标之间的机器,你就可以调查每台机器的配置,看看它是否在过滤,如果是,如何过滤。
简短的回答 - 不,你无法看到它。
更长的答案:
来自:https ://nmap.org/book/man-port-scanning-basics.html
“过滤后的 Nmap 无法确定端口是否打开,因为数据包过滤阻止其探测到达端口。过滤可能来自专用防火墙设备、路由器规则或基于主机的防火墙软件。这些端口挫败攻击者,因为它们提供的太少信息。有时它们会以 ICMP 错误消息进行响应,例如类型 3 代码 13(无法访问目标:管理上禁止通信),但过滤器会简单地丢弃探测而不响应。这会迫使 Nmap 重试几次,以防探测由于网络拥塞而不是过滤而下降。这大大减慢了扫描速度。
您可以尝试使用 traceroute 等工具发现网络拓扑。通常,端口在主机自身(即 ip 表)、目标网络边缘路由器、目标网络核心路由器或架顶式 L3 交换机上进行过滤。
如果您与目标主机位于同一子网中,几乎可以肯定防火墙在目标机器上。
尝试将 tcptrace 的结果与已过滤端口之一进行比较,并将 tcptrace 与开放端口(或标准跟踪路由)进行比较。如果 tcptrace 相同,则意味着目标机器上有东西在过滤端口。
更新:我的意思是 tcptraceroute,我给它起了别名。