书上说ACK扫描,如果对方端口是开放的,返回的RST报文TTL应该小于等于64,而大于则表示不开放。
但是我在Kail上分别对同一个C段的两台机器进行扫描时发现:
对windows主机的一个开放端口(80)扫描,得到的RST报文的TTL=128,window=32767,对一关闭的端口(11987)扫描,得到的RST报文的TTL=128,window=32767
对Linux主机(Ubuntu 16.04)的一个开放端口(22)扫描,得到的RST报文的TTL=64,window=0,对一关闭端口(12339)扫描,得到的RST报文的TTL=64,window=0
请问何解?
PHPz2017-04-18 10:29:06
特定のポートから返される RST の TTL が他のポートよりも明らかに小さい場合、64 以下が開いているポートに等しいというわけではありません。これは、このポートが開いている可能性があることを意味します。
128/64の場合は、*nixとwindowsのデフォルトのTTL値が異なるためです。一般的に、*nix のデフォルト TTL 値は 64、Windows のデフォルト TTL 値は 128 であると考えられます。 (システム/カーネルのバージョンによって違いがあります)