摘要:nmap -sO 62.233.173.90 para Starting Nmap ( http://nmap.org ) Nmap scan report for ntwklan-62-233-173-90.devs.futuro.pl (62.233.173.90) Not shown: 240 closed ports PROTOCOL STATE SERVICE 1 open icmp 4 open|filtered ip 6 open tcp 8 open|filtered egp 9 open|filtered igp 17 filtered udp 47 open|filtered gre 53 filtered swipe 54 open|filtered narp 55 filtered mobile 77 filtered sun-nd 80 open|filtered iso-ip 88 open|filtered eigrp 89 open|filtered ospfigp 94 open|filtered ipip 103 filtered pim Nmap scan report for para (192.168.10.191) Not shown: 252 closed ports PROTOCOL STATE SERVICE 1 open icmp 2 open|filtered igmp 6 open tcp 17 filtered udp MAC Address: 00:60:1D:38:32:90 (Lucent Technologies) Nmap done: 2 IP addresses (2 hosts up) scanned in 458.04 seconds。Initiating TCP ftp bounce scan against scanme.nmap.org (64.13.134.52) Adding open port 22/tcp Adding open port 25/tcp Scanned 3 ports in 12 seconds via the Bounce scan. Nmap scan report for scanme.nmap.org (64.13.134.52) PORT STATE SERVICE 22/tcp open ssh 25/tcp open smtp 135/tcp filtered msrpc Nmap done: 1 IP address (1 host up) scanned in 21.79 seconds。

最近要寫個端口掃描器,學習整理了一下目前的 端口掃描器 技術。

文章首發於先知社區: https://xz.aliyun.com/t/5376

按照目前的協議類型,我們大致可以知道有:

​ 一個IP地址可以有65535(2^16)個端口,範圍則是從0到65535(2^16-1),每個端口按照協議又可以分爲兩種類型:一種是TCP端口;另一種是UDP端口。
​ TCP、UDP都是IP層的傳輸協議,其中TCP是面向連接、可靠的字節流服務;UDP則是不可靠的,面向數據報的服務。每一個端口都會支持這兩種協議,因此可以基於這兩種協議進行端口掃描。

以及現在還有通過在 TCP/IP 模型中的網絡層 ICMP 協議來探測端口的掃描技術。

TCP

TCP報文這裏就不再細講了,也不是重點,放一張TCP數據報文的圖,具體可以去百度百科瞭解:

TCP三次握手:

TCP CONNECT SCAN

原理很簡單,與目標端口建立3次握手,如果成功建立則爲 open ,收到 RST 則爲 close

usage

MSF 模塊:

use auxiliary/scanner/portscan/tcp

Nmap 選項參數:

nmap -sT scanme.nmap.org

TCP SYN SCAN

也稱爲TCP半連接掃描,只發送三次握手的第一次SYN報文段,如果收到 ACK+SYN 則爲 open ,收到 RST 則爲 close ,這種好處是不必等待三次握手完全完成,速度快且不容易被防火牆記錄進日誌。

Nmap 處理方式:

Probe Response Assigned State
TCP SYN/ACK response open
TCP RST response closed
No response received (even after retransmissions) filtered
ICMP unreachable error (type 3, code 1, 2, 3, 9, 10, or 13) filtered

usage

MSF 模塊:

use auxiliary/scanner/portscan/syn

Nmap 參數

nmap -sS scanme.nmap.org

TCP Xmas Tree SCAN

客戶端向服務端發送帶有 PSHFINURG 標識的數據包(即不含有 ACK SYN RST ),被稱爲TCP Xmas Tree掃描。其利用的是 RFC 的規定:

​ 如果不設置SYN,RST,或者ACK位的報文發送到開放端口,理論上,這不應該發生,如果您確實收到了,丟棄該報文,返回。

那麼就有:

​ 如果掃描系統遵循該RFC,當端口關閉時,任何不包含SYN,RST,或者ACK位的報文會導致 一個RST返回而當端口開放時,應該沒有任何響應。只要不包含SYN,RST,或者ACK, 任何其它三種(FIN,PSH,and URG)的組合都行。

Nmap 對 NULL, FIN, or Xmas 掃描的處理:

Probe Response Assigned State
No response received (even after retransmissions) `open filtered`
TCP RST packet closed
ICMP unreachable error (type 3, code 1, 2, 3, 9, 10, or 13) filtered

usage

MSF 模塊:

use auxiliary/scanner/portscan/xmas

Nmap 選項參數:

Null scan (`-sN`)

Does not set any bits (TCP flag header is 0)

FIN scan (`-sF`)

Sets just the TCP FIN bit.

Xmas scan (`-sX`)

Sets the FIN, PSH, and URG flags, lighting the packet up like a Christmas tree.

TCP NULL SCAN

空掃描即 flag 位全 0 ,如果沒有回覆則爲 open ,收到 RST 則爲 close

TCP ACK SCAN

使用TCP ACK掃描不能夠確定端口的關閉或者開放,因爲當發送給對方一個含有 ACK 表示的TCP報文的時候,都返回含有RST標誌的報文,無論端口是開放或者關閉。所以,不能使用TCP ACK掃描來確定端口是否開放或者關閉。但是可以利用它來掃描防火牆的配置,用它來發現防火牆規則,確定它們是有狀態的還是無狀態的,哪些端口是被過濾的。

向服務端發送一個帶有 ACK 標識的數據包,如果收到帶有 RST 標識的響應,則說明服務端沒有過濾,不存在狀態防火牆。

usage

可以使用 msf 的模塊

use auxiliary/scanner/portscan/ack

Nmap 可以用以下命令

nmap -sA scanme.nmap.org

TCP WINDOW SCAN

TCP 窗口掃描的流程類似於 ACK 掃描,都是向服務端發送帶有 ACK 標識的數據包,不同的在於 TCP 窗口掃描會檢查收到的 RST 數據包中的窗口大小,如果 RST 數據包中的窗口大小不爲零,則說明目標端口是開放的。

如果 RST 數據包中的窗口大小爲零,則說明目標端口處於關閉狀態。

Nmap 對 TCP Window 掃描的處理:

Probe Response Assigned State
TCP RST response with non-zero window field open
TCP RST response with zero window field closed
No response received (even after retransmissions) filtered
ICMP unreachable error (type 3, code 1, 2, 3, 9, 10, or 13) filtered

usage

Nmap 掃描參數:

nmap -sW docsrv.caldera.com

TCP Idle Scan

1998年,安全研究員Antirez(曾參與編輯nmap中有關hping2工具的相關文章)在Bugtraq郵件列表中發佈了一篇關於新的端口掃描技術的文章。Idle Scan,也就慢慢的爲衆人所瞭解,它允許進行完全盲目的端口掃描。事實上,攻擊者可以不用向目標發送數據包就完成掃描工作!相反,用猥瑣的邊信道攻擊是能夠讓掃描映射到一個Zombie 主機上的。除了極其隱蔽的情況,這種掃描方式允許挖掘機器之間基於IP的信任關係。

雖然 Idle Scan 比目前討論的任何技術都複雜,但您無需成爲TCP / IP專家就能理解它。你只需要知道這些就夠了:

  • 確定TCP端口是否打開的一種方法是向端口發送SYN(會話建立)數據包。如果端口打開,目標機器將響應SYN / ACK(會話請求確認)數據包,如果端口關閉,則響應RST(重置)。這是前面討論的SYN掃描的基礎。
  • 接收未經請求的SYN / ACK數據包的計算機將使用RST進行響應。未經請求的RST將被忽略。

  • Internet上的每個IP數據包都有一個片段標識號(IP ID)。由於許多操作系統只是爲它們發送的每個數據包遞增此數字,因此探測IPID可以告訴攻擊者自上次探測以來已發送了多少數據包。

結合以上特徵,就可以僞造身份去掃描目標網絡,所以看起來就像是無辜的 Zombie 主機在掃描。

Idle Scan Step by Step

從本質上來看,Idle Scan 只需要重複3個步驟就ok了。

  1. 探查Zombie的IP ID並記錄下來。
  2. 在Zombie主機上僞造一個包,然後把包發送給目標主機端口。根據端口的狀態,目標主機可能會也有可能不會導致Zombie主機IPID值增加。
  3. 再探查Zombie主機的IP ID。比較兩次得到IPID值

經過這樣一個流程,Zombie主機的 IP ID 應該會增加1~2。如果只是增加了1,那麼就可以說明Zombie主機還沒有發出任何包,當然,響應攻擊者的探查請求除外。沒有發送包也就意味着目標端口沒有被打開(也可能是目標主機向Zombie主機發送了一個RST包,導致請求被忽略,或者是根本就是什麼都沒有做)。增加的如果是2,那就表明Zombie主機成功在兩個探測器之間發送了包。這種情況一般情況都意味着目標端口是開着的(目標大概會向Zombie主機發送一個SYN/ACK包去響應攻擊者僞造的SYN,從Zombie主機誘導RST包)。如果是增加了一個比2還大的數字,那麼就說明Zombie主機太糟糕了!它可能不能勝任預測IPID數值,也可能是正在忙於其他與Idle Scan無關的事情。

雖然關閉了端口和被過濾的端口會發生的事情稍微有點點不同,但是攻擊者處理的方法都一樣,IPID都只是增加1。所以,在Idel Scan中無法區別端口到底是關閉的還是已經過濾了。當Nmap記錄的IPID增加了1,也就被標記成了close丨filterred。

以下三張圖大略可以說明端口被打開,關閉,過濾的情況。

端口開放:

端口關閉:

端口被過濾:

Idel Scan根本上來講就是一個隱性掃描,Nmap提供了decoy scanning (-D),幫助使用者保護自己的身份。如果不是使用的(類似Idel Scan掃描方式)仍然需要攻擊者通過自身真實IP向目標發送數據包以獲取掃描結果。Idel Scan掃描結果其中之一就有入侵檢測系統通常會發送一個Zombie主機已經開始掃描的通知。所以它可以作爲一個框架去掃描另外一個目標,當你查閱入侵檢測系統(IDS)時,請記住這種可能性。

Idel Scan的一個獨特優勢便是,它可以繞開某些過濾防火牆和路由器。IP源地址過濾,是一種常見的(雖然很弱)用於限制機器連接到敏感主機或者說網絡上的安全機制。舉個例子,一個公司數據庫服務器,只允許公共網絡連接。或者,家庭用戶只允許SSH連接到工作機上面。

Idel Scanning有時也可以被用來映射信任關係,關鍵在於Idel Scan最終會從Zombie主機獲取開放端口列表。一個正常的掃描對於上述數據庫服務器可能會顯示沒有端口開放,但是當將Zombie主機作爲Web Sever的IP,使用Idel Scan就可能將數據庫相關開放端口暴露出來。

映射出的這些信任關係就可能作爲攻擊者優先考慮的目標,上面所討論的方式手法很猥瑣哇!

Idel Scan有一個缺點就是它比其他一些掃描方式所花費的時間更長。儘管在《 Idel Scan算法實現 》章節中有對Idel Scan的優化算法,一個只需要15秒就可以完成的SYN,Idel Scan或許需要15分鐘才能夠完成。另一個問題就是你必須能夠發送欺騙包,僞裝成好像他們來自Zombie主機一般,讓他們到達目標主機。許多ISP服務商(特別是撥號和住宅寬帶供應商)目前執行出口過濾來防止這類數據包欺騙。高端供應商(比如說主機託管,T1-Services)就不太可能這麼做。如果實際存在這個過濾,Nmap會在你嘗試的每一個Zombie主機上顯示一個快速錯誤消息。如果不能夠更換ISP服務商,那麼最好嘗試在讓ISP服務商給你更換一個IP。有時候這個過濾僅僅只是阻止了客戶使用範圍之外的欺騙IP地址。Idel Scan另外一個難點就是你必須尋找一個正在工作的Zombie主機。

上述描述的是Idel Scan的基礎水平。在Nmap上實現卻是有些複雜,最關鍵的差異在於Nmap能夠同時執行,而且誤報少。

Parallelizing idle scan由於是間接推導出端口所以,他比其他掃描方式要更加的猥瑣。如果Nmap探測目標主機上的多個端口,然後檢測Zombie主機上新的IP ID值,IP ID的值增加了多少就顯示出目標開放了多少個端口。實際上這並不是一個和嚴重的問題,絕大多數端口在大型掃描結果中基本上都是被關閉或者被過濾。由於只有開放端口才可以讓IP ID值增加,Nmap會認爲沒有增加量,然後整個組的端口就被標記成了關閉或者被過濾。Nmap可以並行掃描一百組端口。如果Nmap在探測一組端口的時候Zombie主機IP ID同時也增加了,就說明在這一組端口中一定有開放的端口。Nmap繼而使用二進制搜索發現開放的端口。它將數據組分成兩份,分別發送探測信息,如果一個數據組顯示沒有開放端口,那麼這一數據組的端口都將被標記爲被關閉或者被過濾。如果一個數據組顯示有開放端口,那麼在把這個數據組分成兩份,重複以上步驟,直到最終將開放端口都找出來。雖然這種方式更復雜,但是這種方式可以節約掃描時間。

可靠性是Idel Scan的另一個問題。如果Zombie主機在掃描時向任何不相干的機器發送數據包,其IP ID會增加。這就會讓Nmap誤以爲已經尋找到開放的端口了。幸運的是,並行掃描在這裏也是有很大作用的。如果Nmap在一個組中掃描100個端口,那麼IP ID就會增加標識兩個開放端口,Nmap將這組數據分成50端口一個小組。當Nmap同時在兩個小組中進行IP ID掃描時,Zombie主機IP ID總的增加量就在加了一次。另外,Nmap如果探測到不一致,那麼它會重新探測。基於檢測可靠的Zombie主機,Nmap還會修改組大小以及掃描時間。如果Nmap發現有大量不一致的結果,它將退出,並提示用戶選擇更好的Zombie主機。

具體操作可以參考 TCP Idle Scan (-sI)

TCP Maimon Scan

Maimon Scan 以其發現者 Uriel Maimon 命名。 他在 Phrack 雜誌第49期(1996年11月)中描述了這種技術。 除了探測器是FIN / ACK之外,此技術與NULL,FIN和Xmas掃描完全相同。 根據RFC 793(TCP),響應於這樣的探測,應該生成RST分組,無論端口是打開還是關閉。 但是,如果端口打開,許多BSD派生系統只會丟棄數據包。 Nmap利用這一點來確定開放端口,如下表所示:

Nmap 對 TCP Maimon Scan 的處理:

Probe Response Assigned State
No response received (even after retransmissions) `open filtered`
TCP RST packet closed
ICMP unreachable error (type 3, code 1, 2, 3, 9, 10, or 13) filtered

usage

nmap -sM para

Starting Nmap ( http://nmap.org )
All 1000 scanned ports on para (192.168.10.191) are: closed
MAC Address: 00:60:1D:38:32:90 (Lucent Technologies)

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

TCP FTP Bounce Scan

FTP協議(RFC 959)的一個有趣特性是支持代理FTP連接。這允許用戶連接到一個FTP服務器,然後要求將文件發送到第三方服務器。這樣的功能在很多層面上被濫用,因此大多數服務器已停止支持它。此功能允許的濫用功能之一是通過 FTP 服務器進行掃描其他主機端口。只需要求 FTP 服務器依次將文件發送到目標主機的每個端口就可以了。回顯消息將描述端口是否打開。這是繞過防火牆的好方法,因爲內部的 FTP 服務器通常放置在比舊的 Internet 主機都能訪問到的其他主機的位置上。

Nmap支持使用-b選項進行FTP反彈掃描。它採用 <username>:<password>@<server>:<port> 形式的參數。 <Server> 是易受攻擊的FTP服務器的名稱或IP地址。與普通URL一樣,您可以省略 <username>:<password> ,在這種情況下,將使用匿名登錄憑據( user:anonymous password:-wwwuser@ )。端口號(和前面的冒號)也可以省略,在這種情況下,使用 <server> 上的默認FTP端口(21)。

使用 FTP Bounce Scan 較爲頻繁的用戶更好地習慣了對回顯消息的處理。這個漏洞在1997年Nmap發佈時很普遍,但已在很大程度上得到修復。易受攻擊的服務器仍然存在,所以當其他所有服務器都失敗時,這個方法值得一試。如果您的目標是繞過防火牆,請掃描目標網絡以查找開放的21端口(如果使用版本檢測掃描所有端口,則掃描任何FTP服務),然後嘗試使用每個端口進行 Bounce Scan。 Nmap會告訴您主機是否容易受到攻擊。如果您只是試圖掩蓋您的曲目,您不需要(事實上,不應該)限制目標網絡上的主機。在爲易受攻擊的FTP服務器掃描隨機Internet地址之前,請考慮系統管理員可能不會允許這樣濫用其服務器。

usage

Nmap 掃描方式:

nmap -p 22,25,135 -Pn -v -b XXX.YY.111.2 scanme.nmap.org

Starting Nmap ( http://nmap.org )
Attempting connection to ftp://anonymous:-wwwuser@@XXX.YY.111.2:21
Connected:220 JD FTP Server Ready
Login credentials accepted by ftp server!
Initiating TCP ftp bounce scan against scanme.nmap.org (64.13.134.52)
Adding open port 22/tcp
Adding open port 25/tcp
Scanned 3 ports in 12 seconds via the Bounce scan.
Nmap scan report for scanme.nmap.org (64.13.134.52)
PORT    STATE    SERVICE
22/tcp  open     ssh
25/tcp  open     smtp
135/tcp filtered msrpc

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

UDP

在TCP/IP模型中,UDP爲網絡層以上和應用層以下提供了一個簡單的接口。UDP只提供數據的不可靠傳遞,它一旦把應用程序發給網絡層的數據發送出去,就不保留數據備份(所以UDP有時候也被認爲是不可靠的數據報協議)。UDP在IP數據報的頭部僅僅加入了複用和數據校驗字段。

UDP適用於不需要或在程序中執行錯誤檢查和糾正的應用,它避免了協議棧中此類處理的開銷。對時間有較高要求的應用程序通常使用UDP,因爲丟棄數據包比等待或重傳導致延遲更可取。

UDP SCAN

UDP掃描比較簡單,一般如果返回 ICMP port unreachable 說明端口是關閉的,而如果沒有回應或有回應(有些UDP服務是有回應的但不常見)則認爲是 open ,但由於UDP的不可靠性,無法判斷報文段是丟了還是沒有回應,所以一般掃描器會發送多次,然後根據結果再判斷。這也是爲什麼UDP掃描這麼慢的原因。

雖然因特網上最流行的服務運行在TCP協議上,但UDP服務被廣泛部署。 DNS,SNMP和DHCP(註冊端口53,161 / 162和67/68)是最常見的三種。 由於UDP掃描通常比TCP更慢且更困難,因此某些安全審覈員會忽略這些端口。 這是一個錯誤,因爲可利用的UDP服務非常普遍,攻擊者肯定不會忽略整個協議。

UDP掃描通過向每個目標端口發送UDP數據包來工作。 對於大多數端口,此數據包將爲空(無有效負載),但對於一些更常見的端口,將發送特定於協議的有效負載。 根據響應或缺少響應,端口被分配給四種狀態之一,如下表所示:

Nmap 對 UDP Scan 的處理:

Probe Response Assigned State
Any UDP response from target port (unusual) open
No response received (even after retransmissions) `open filtered`
ICMP port unreachable error (type 3, code 3) closed
Other ICMP unreachable errors (type 3, code 1, 2, 9, 10, or 13) filtered

usage

Nmap 選項參數:

nmap -sU scanme.nmap.org

Nmap 有很多選項可以提升 UDP Scan 的準確性與速度,這裏不再深入講解,具體可以參考 UDP Scan (-sU)

ICMP

ICMP 格式:

​ 根據網絡協議,如果按照協議出現了錯誤,那麼接收端將產生一個icmp的錯誤報文。這些錯誤報文並不是主動發送的,而是由於錯誤,根據協議自動產生。

ICMP 相關類型解釋:

一般如果數據包被防火牆過濾的話,會收到一個 ICMP 數據包,其中類型爲3,代碼爲1,2,3,9,10或13。

ICMP SCAN

常見的利用:

SCTP

這裏我們簡單介紹一下 SCTP 協議。

流控制傳輸協議(英語:Stream Control Transmission Protocol,縮寫:SCTP)是在2000年由IETF的SIGTRAN工作組定義的一個傳輸層協議。RFC 4960詳細地定義了SCTP,介紹性的文檔是RFC 3286。

作爲一個傳輸層協議,SCTP可以理解爲和TCP及UDP相類似的。它提供的服務有點像TCP,又同時將UDP的一些優點相結合。是一種提供了可靠、高效、有序的數據傳輸協議。相比之下TCP是面向字節的,而SCTP是針對成幀的消息。

SCTP主要的貢獻是對多重聯外線路的支持,一個端點可以由多於一個 IP地址 組成,使得傳輸可在主機間或網卡間做到透明的網絡容錯備援。

SCTP最初是被設計用於在IP上傳輸電話協議(SS7),把 SS7 信令網絡的一些可靠特性引入IP。IETF 的這方面的工作稱爲信令傳輸 SIGTRAN。

SCTP將數據傳給應用層的方式,是將數據視爲message(bytes的集合),SCTP的特徵是message-oriented,意思就是說它發送的是一串message(每一個message是byte爲單位的集合),相對於TCP是以byte爲單位,發送的是破碎的流。在SCTP發送端用一個動作提交消息,接收端也是用一個動作取出消息傳給對應的應用程序。相較於TCP,是一個流導向的協議,可靠地且有順序地發送以bytes爲單位的流。然而TCP並不允許接收端知道發送端的應用程序調用提交bytes集合的次數。在發送端TCP只是簡單的附加更多bytes在queue裏等待着送到網絡上,而SCTP是將要提交的outband message都保有自己獨立的queue。

簡而言之,SCTP是TCP和UDP協議的一種相對較新的替代方案,它結合了TCP和UDP的大多數特性,還增加了多宿主和多流等新功能。它主要用於SS7 / SIGTRAN相關服務,但也有可能用於其他應用程序。

下圖是 TCP 與 SCTP 建立連接的對比圖:

SCTP INIT scan

SCTP INIT掃描是TCP SYN掃描的SCTP等效物。它可以快速執行,在快速網絡上每秒掃描數千個端口,而不受限制性防火牆的限制。與SYN掃描一樣,INIT掃描相對不顯眼且隱蔽,因爲它永遠不會完成SCTP關聯。它還允許在打開,關閉和過濾狀態之間進行清晰,可靠的區分。

此技術通常稱爲半開掃描,因爲您不打開完整的SCTP關聯。您發送一個INIT塊,就好像您要打開一個真正的關聯,然後等待響應。 INIT-ACK塊表示端口正在偵聽(打開),而ABORT塊表示非偵聽器。如果在多次重新傳輸後未收到響應,則將端口標記爲已過濾。如果收到ICMP不可達錯誤(類型3,代碼0,1,2,3,9,10或13),則端口也會被標記爲已過濾。

usage

nmap -sY ip

SCTP COOKIE ECHO SCAN

SCTP COOKIE ECHO SCAN 是一種更先進的SCTP掃描。 它利用了SCTP實現應該在開放端口上靜默丟棄包含COOKIE ECHO塊的數據包這一事實,但如果端口關閉則發送ABORT。 這種掃描類型的優點是端口掃描不像INIT掃描那麼明顯。 此外,可能存在阻止INIT塊的非狀態防火牆規則集,但不阻止COOKIE ECHO塊。 不要誤以爲這會使端口掃描不可見; 一個好的IDS也能夠檢測到SCTP COOKIE ECHO掃描。 缺點是SCTP COOKIE ECHO掃描不能區分打開和過濾的端口,在這兩種情況下都會打開狀態。

usage

nmap -sZ ip

IP

IP Scan

IP協議掃描允許您確定目標計算機支持哪些IP協議(TCP,ICMP,IGMP等)。這在技術上不是端口掃描,因爲它循環通過IP協議號而不是TCP或UDP端口號。然而,它仍然使用 -p 選項來選擇掃描的協議號,以正常的端口表格式報告其結果,甚至使用與真正的端口掃描方法相同的底層掃描引擎。所以它足夠接近它所屬的端口掃描。

協議掃描的工作方式與UDP掃描類似。它不是遍歷UDP數據包的端口號字段,而是發送IP數據包標頭並迭代通過8位IP協議字段。標頭通常是空的,不包含任何數據,甚至不包括所聲明協議的正確標頭。某些流行協議(包括TCP,UDP和ICMP)例外。包含適當的協議頭,因爲一些系統不會發送它們,因爲Nmap已經具有創建它們的功能。協議掃描不是在觀察ICMP端口不可達消息,而是在尋找ICMP協議不可達消息。如下表顯示了對IP探測的響應如何映射到端口狀態。

Nmap 對 IP Scan 的處理:

Probe Response Assigned State
Any response in any protocol from target host open (for protocol used by response, not necessarily probe protocol)
ICMP protocol unreachable error (type 3, code 2) closed
Other ICMP unreachable errors (type 3, code 1, 3, 9, 10, or 13) filtered (though they prove ICMP is open if sent from the target machine)
No response received (even after retransmissions) `open filtered`

與TCP或UDP協議中的開放端口一樣,每個開放協議都是潛在的利用向量。此外,協議掃描結果有助於確定機器的用途以及採用何種類型的數據包過濾。終端主機通常只有TCP,UDP,ICMP和(有時)IGMP打開,而路由器通常提供更多,包括路由相關協議,如GRE和EGP。防火牆和VPN網關可能會顯示與加密相關的協議,如IPsec和SWIPE。

與UDP掃描期間收到的ICMP端口不可達消息一樣,ICMP協議不可達消息通常是速率限制的。例如,默認Linux 2.4.20框中每秒發送的ICMP目標無法訪問響應不超過一個。由於只有256個可能的協議號,因此與65,536端口UDP掃描相比,這不是問題。

usage

協議掃描的使用方法與命令行上的大多數其他掃描技術的使用方法相同。除了一般的Nmap選項外,請簡單指定 -sO 。普通端口 -p 選項用於選擇協議號。或者,您可以使用 -F 掃描nmap-protocols數據庫中列出的所有協議。默認情況下,Nmap掃描所有256個可能的值。

nmap -sO 62.233.173.90 para

Starting Nmap ( http://nmap.org )
Nmap scan report for ntwklan-62-233-173-90.devs.futuro.pl (62.233.173.90)
Not shown: 240 closed ports
PROTOCOL STATE         SERVICE
1        open          icmp                    
4        open|filtered ip                      
6        open          tcp                     
8        open|filtered egp                     
9        open|filtered igp                     
17       filtered      udp                     
47       open|filtered gre                     
53       filtered      swipe                   
54       open|filtered narp                    
55       filtered      mobile                  
77       filtered      sun-nd                  
80       open|filtered iso-ip                  
88       open|filtered eigrp                   
89       open|filtered ospfigp                 
94       open|filtered ipip                    
103      filtered      pim                     

Nmap scan report for para (192.168.10.191)
Not shown: 252 closed ports
PROTOCOL STATE         SERVICE
1        open          icmp                    
2        open|filtered igmp                    
6        open          tcp                     
17       filtered      udp                     
MAC Address: 00:60:1D:38:32:90 (Lucent Technologies)

Nmap done: 2 IP addresses (2 hosts up) scanned in 458.04 seconds
相關文章