Nmap

如何解釋nmap結果,主機啟動但沒有打開埠

  • July 7, 2015

我使用 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 之前開始丟棄它。

引用自:https://serverfault.com/questions/703792