Nmap
如何解釋nmap結果,主機啟動但沒有打開埠
我使用 nmap 映射網路,使用以下命令進行掃描
nmap -v -sS --no-stylesheet -T3 -sU -sV -O -oX <filename.xml> 192.168.69.0/24
一些主人回來了一個奇怪的結果。Nmap 認為他們是由於
syn-ack
. 我認為這意味著與某個埠建立了 tcp 連接,並且完成了 3 次握手過程。但是,沒有埠被列為打開。(但是有打開|過濾、過濾和關閉的埠)。誰能解釋我應該如何解釋這個?與主機協商 tcp 連接是否意味著必須至少打開一個埠?掃描中該主機的 XML 輸出如下:
<host starttime="1435615239" endtime="1435901758"> <status state="up" reason="syn-ack" reason_ttl="115"/> <address addr="192.168.69.23" addrtype="ipv4"/> <hostnames> <hostname name="example.com" type="PTR"/> </hostnames> <ports> <extraports state="open|filtered" count="1000"> <extrareasons reason="no-responses" count="1000"/> </extraports> <extraports state="filtered" count="996"> <extrareasons reason="no-responses" count="996"/> </extraports> <port protocol="tcp" portid="111"> <state state="closed" reason="reset" reason_ttl="115"/> <service name="rpcbind" method="table" conf="3"/> </port> <!-- more closed ports --> </ports> <os><!-- ... --></os> <times srtt="3165" rttvar="109" to="100000"/> </host>
Nmap 認為它們是由於 syn-ack 而上升的。我認為這意味著與某個埠建立了 tcp 連接,並且完成了 3 次握手過程。
實際上,Nmap 沒有完成主機發現的 3 次握手(也沒有完成 TCP SYN 掃描
-sS
)。它將原始 TCP SYN 數據包發送到埠 443(以及其他探測),並在收到許多不同響應中的任何一個時認為主機已啟動。在您的情況下,目標發送了一個 SYN-ACK 響應,表明一個開放的埠。Nmap 然後將它留給掃描主機的作業系統發送一個 RST 數據包作為回复,因為作業系統不知道傳出的 SYN 並且不期待 SYN-ACK 回复。如果您將防火牆配置為丟棄無效或意外數據包,則永遠不會發送 RST。一些 TCP 堆棧,尤其是在嵌入式設備上,不能很好地處理 TCP 異常。您的目標可能正處於埠 443 上的半開 TCP 連接,等待永遠不會到達的 RST 或 ACK 數據包,這將導致埠掃描階段的後續 SYN 探測無法獲得響應。
不過,這都是猜測。很可能目標有某種自適應主機防火牆,它檢測到埠掃描並在 Nmap 的流量到達開放埠 443 之前開始丟棄它。