经过测试,默认情况下,Windows和Linux防火墙对禁用端口的处理是不同的:
Windows:Drop
Linux:Reject &repose:Destination host 192.168.x.x administratively prohibited
产生差异的原因是下面的iptables策略:
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
将上面的策略做如下修改后和Windows处理方式相同:
-A INPUT -j DROP
-A FORWARD -j DROP
Linux下的iptables策略:-A INPUT -m state --state NEW。其中的--state NEW含义是
发送到linux的TCP首包(NEW)包含SYN、SYN/ACK、ACK三种标记均会被认为处于 NEW状态。
而对于Windows,其放开端口的NEW只有SYN,对于后面两个标记全部DROP;
Linux上增加如下策略才能和Windows保持一致:
-A INPUT -p tcp --tcp-flags ACK ACK -m state --state NEW -j DROP
在做主机发现时,如果没有指定主机发现参数,默认值等同于-PE -PS443 -PA80 -PP选项。例如:nmap -sS -n -T4 xx.xx.xx.xx -d ,该命令没有显式指定主机发现的参数。其默认会判断是否进行-PR,否则运行-PE -PS443 -PA80 -PP 。