找到*可以*打开的端口

时间:2014-10-01 14:25:01

标签: networking audit nmap port-scanning

我通常使用nmap或telnet来查找Windows机器上的开放端口。

我在一家咨询公司工作,我们不仅要发现机器上的开放端口,还要发现可以打开的端口。

例如,如果我想为在1521监听的客户安装数据库。在安装数据库之前1521尚未打开,但我想知道它是否可以打开或被阻止(例如防火墙) ,所以我要求客户提前打开它。

有没有任何工具或优雅的方法来做到这一点?

谢谢 最好的问候

1 个答案:

答案 0 :(得分:2)

Nmap可以为您提供此信息。 " open,"之间的区别"可以打开,"和#34;防火墙"在Nmap的输出中显示为openclosedfiltered。例如:

$ sudo nmap scanme.nmap.org

Starting Nmap 6.47 ( http://nmap.org ) at 2014-10-01 13:02 CDT
Nmap scan report for scanme.nmap.org (74.207.244.221)
Host is up (0.080s latency).
Not shown: 993 closed ports
PORT     STATE    SERVICE
22/tcp   open     ssh
25/tcp   filtered smtp
80/tcp   open     http
135/tcp  filtered msrpc
139/tcp  filtered netbios-ssn
445/tcp  filtered microsoft-ds
9929/tcp open     nping-echo

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

这表明scanme.nmap.org已打开TCP端口22,80和9929。我的ISP阻止出站端口25,135,139和445以防止垃圾邮件和Windows蠕虫(并且如果我想运行邮件服务器,则强迫我支付商业级服务)。其他所有都可以在某个时刻打开(Not shown: 993 closed ports)。

您可以使用其他扫描类型进一步枚举防火墙规则(-sA将端口标记为unfilteredfiltered)或脚本(firewalk将显示哪些端口被阻止你的路径上的IP跳跃。)

请注意,有时防火墙会欺骗目标的回复,从而导致closed判决。在这种情况下,您有时可以看到响应TTL值的差异(在Nmap的XML输出中可用,在其文本输出中使用--reason选项在将来的版本中可用);闭合响应中较高的TTL意味着它来自的防火墙比目标更接近您。