我通常使用 nmap 或 telnet 来寻找 Windows 机器上的开放端口。
我在一家咨询公司工作,我们不仅要发现机器上的开放端口,还要发现可以打开的端口。
例如,如果我想为在 1521 侦听的客户安装数据库。在我安装数据库之前 1521 未打开,但我想知道它是否可以打开或被阻止(例如被防火墙),所以我请客户提前打开。
有什么工具或优雅的方法可以做到这一点吗?
谢谢您最好的问候
我通常使用 nmap 或 telnet 来寻找 Windows 机器上的开放端口。
我在一家咨询公司工作,我们不仅要发现机器上的开放端口,还要发现可以打开的端口。
例如,如果我想为在 1521 侦听的客户安装数据库。在我安装数据库之前 1521 未打开,但我想知道它是否可以打开或被阻止(例如被防火墙),所以我请客户提前打开。
有什么工具或优雅的方法可以做到这一点吗?
谢谢您最好的问候
Nmap 可以为您提供这些信息。“打开”、“可以打开”和“防火墙”之间的区别在 Nmap 的输出中显示为open
、closed
和filtered
。例如:
$ sudo nmap scanme.nmap.org 在 2014-10-01 13:02 CDT 开始 Nmap 6.47 (http://nmap.org) scanme.nmap.org (74.207.244.221) 的 Nmap 扫描报告 主机已启动(0.080 秒延迟)。 未显示:993 个关闭端口 港口国服务 22/tcp 打开 ssh 25/tcp 过滤的 smtp 80/tcp 打开 http 135/tcp 过滤的 msrpc 139/tcp 过滤的 netbios-ssn 445/tcp 过滤的 microsoft-ds 9929/tcp 打开 nping-echo Nmap 完成:在 6.39 秒内扫描了 1 个 IP 地址(1 个主机启动)
这表明scanme.nmap.org
TCP 端口 22、80 和 9929 已打开。我的 ISP 正在阻止出站端口 25、135、139 和 445 以防止垃圾邮件和 Windows 蠕虫(如果我想运行邮件服务器,还迫使我为企业级服务付费)。其他所有东西都可以在某个时候打开(Not shown: 993 closed ports
)。
您可以使用其他扫描类型(-sA
将端口标记为unfiltered
或filtered
)或脚本(firewalk
将显示在您的路径上的哪个 IP 跃点处被阻止的端口)进一步枚举防火墙规则。
请注意,有时防火墙会欺骗来自目标的回复,从而导致closed
判决。在这种情况下,您有时会看到响应 TTL 值的差异(在 Nmap 的 XML 输出中可用,在未来的版本中,可以在其文本输出中使用该--reason
选项);关闭响应中较高的 TTL 意味着它来自比目标更靠近您的防火墙。