日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 综合教程 >内容正文

综合教程

浅谈端口扫描

發(fā)布時(shí)間:2023/12/29 综合教程 36 生活家
生活随笔 收集整理的這篇文章主要介紹了 浅谈端口扫描 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

無(wú)意中看到的,算是科普類型的文章吧。簡(jiǎn)單收藏一下

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

? 一個(gè)IP地址可以有65535(2^16)個(gè)端口,范圍則是從0到65535(2^16-1),每個(gè)端口按照協(xié)議又可以分為兩種類型:一種是TCP端口;另一種是UDP端口。

? TCP、UDP都是IP層的傳輸協(xié)議,其中TCP是面向連接、可靠的字節(jié)流服務(wù);UDP則是不可靠的,面向數(shù)據(jù)報(bào)的服務(wù)。每一個(gè)端口都會(huì)支持這兩種協(xié)議,因此可以基于這兩種協(xié)議進(jìn)行端口掃描。

以及現(xiàn)在還有通過(guò)在 TCP/IP 模型中的網(wǎng)絡(luò)層 ICMP 協(xié)議來(lái)探測(cè)端口的掃描技術(shù)。

TCP

TCP報(bào)文這里就不再細(xì)講了,也不是重點(diǎn),放一張TCP數(shù)據(jù)報(bào)文的圖,具體可以去百度百科了解:

TCP三次握手:

TCP CONNECT SCAN

原理很簡(jiǎn)單,與目標(biāo)端口建立3次握手,如果成功建立則為open,收到RST則為close

usage

MSF 模塊:

1
use auxiliary/scanner/portscan/tcp

Nmap 選項(xiàng)參數(shù):

1
nmap -sT scanme.nmap.org

TCP SYN SCAN

也稱為TCP半連接掃描,只發(fā)送三次握手的第一次SYN報(bào)文段,如果收到ACK+SYN則為open,收到RST則為close,這種好處是不必等待三次握手完全完成,速度快且不容易被防火墻記錄進(jìn)日志。

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 模塊:

1
use auxiliary/scanner/portscan/syn

Nmap 參數(shù)

1
nmap -sS scanme.nmap.org

TCP Xmas Tree SCAN

客戶端向服務(wù)端發(fā)送帶有PSHFINURG標(biāo)識(shí)的數(shù)據(jù)包(即不含有ACK SYN RST),被稱為TCP Xmas Tree掃描。其利用的是RFC的規(guī)定:

? 如果不設(shè)置SYN,RST,或者ACK位的報(bào)文發(fā)送到開(kāi)放端口,理論上,這不應(yīng)該發(fā)生,如果您確實(shí)收到了,丟棄該報(bào)文,返回。

那么就有:

? 如果掃描系統(tǒng)遵循該RFC,當(dāng)端口關(guān)閉時(shí),任何不包含SYN,RST,或者ACK位的報(bào)文會(huì)導(dǎo)致 一個(gè)RST返回而當(dāng)端口開(kāi)放時(shí),應(yīng)該沒(méi)有任何響應(yīng)。只要不包含SYN,RST,或者ACK, 任何其它三種(FIN,PSH,and URG)的組合都行。

Nmap 對(duì) NULL, FIN, or Xmas 掃描的處理:

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

usage

MSF 模塊:

1
use auxiliary/scanner/portscan/xmas

Nmap 選項(xiàng)參數(shù):

1
2
3
4
5
6
7
8
9
10
11
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 ,如果沒(méi)有回復(fù)則為open,收到RST則為close

TCP ACK SCAN

使用TCP ACK掃描不能夠確定端口的關(guān)閉或者開(kāi)放,因?yàn)楫?dāng)發(fā)送給對(duì)方一個(gè)含有 ACK 表示的TCP報(bào)文的時(shí)候,都返回含有RST標(biāo)志的報(bào)文,無(wú)論端口是開(kāi)放或者關(guān)閉。所以,不能使用TCP ACK掃描來(lái)確定端口是否開(kāi)放或者關(guān)閉。但是可以利用它來(lái)掃描防火墻的配置,用它來(lái)發(fā)現(xiàn)防火墻規(guī)則,確定它們是有狀態(tài)的還是無(wú)狀態(tài)的,哪些端口是被過(guò)濾的。

向服務(wù)端發(fā)送一個(gè)帶有 ACK 標(biāo)識(shí)的數(shù)據(jù)包,如果收到帶有 RST 標(biāo)識(shí)的響應(yīng),則說(shuō)明服務(wù)端沒(méi)有過(guò)濾,不存在狀態(tài)防火墻。

usage

可以使用 msf 的模塊

1
use auxiliary/scanner/portscan/ack

Nmap 可以用以下命令

1
nmap -sA scanme.nmap.org

TCP WINDOW SCAN

TCP 窗口掃描的流程類似于 ACK 掃描,都是向服務(wù)端發(fā)送帶有 ACK 標(biāo)識(shí)的數(shù)據(jù)包,不同的在于 TCP 窗口掃描會(huì)檢查收到的 RST 數(shù)據(jù)包中的窗口大小,如果 RST 數(shù)據(jù)包中的窗口大小不為零,則說(shuō)明目標(biāo)端口是開(kāi)放的。

如果 RST 數(shù)據(jù)包中的窗口大小為零,則說(shuō)明目標(biāo)端口處于關(guān)閉狀態(tài)。

Nmap 對(duì) 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 掃描參數(shù):

1
nmap -sW docsrv.caldera.com

TCP Idle Scan

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

雖然 Idle Scan 比目前討論的任何技術(shù)都復(fù)雜,但您無(wú)需成為TCP / IP專家就能理解它。你只需要知道這些就夠了:

確定TCP端口是否打開(kāi)的一種方法是向端口發(fā)送SYN(會(huì)話建立)數(shù)據(jù)包。如果端口打開(kāi),目標(biāo)機(jī)器將響應(yīng)SYN / ACK(會(huì)話請(qǐng)求確認(rèn))數(shù)據(jù)包,如果端口關(guān)閉,則響應(yīng)RST(重置)。這是前面討論的SYN掃描的基礎(chǔ)。

接收未經(jīng)請(qǐng)求的SYN / ACK數(shù)據(jù)包的計(jì)算機(jī)將使用RST進(jìn)行響應(yīng)。未經(jīng)請(qǐng)求的RST將被忽略。

Internet上的每個(gè)IP數(shù)據(jù)包都有一個(gè)片段標(biāo)識(shí)號(hào)(IP ID)。由于許多操作系統(tǒng)只是為它們發(fā)送的每個(gè)數(shù)據(jù)包遞增此數(shù)字,因此探測(cè)IPID可以告訴攻擊者自上次探測(cè)以來(lái)已發(fā)送了多少數(shù)據(jù)包。

結(jié)合以上特征,就可以偽造身份去掃描目標(biāo)網(wǎng)絡(luò),所以看起來(lái)就像是無(wú)辜的 Zombie 主機(jī)在掃描。

Idle Scan Step by Step

從本質(zhì)上來(lái)看,Idle Scan 只需要重復(fù)3個(gè)步驟就ok了。

探查Zombie的IP ID并記錄下來(lái)。
在Zombie主機(jī)上偽造一個(gè)包,然后把包發(fā)送給目標(biāo)主機(jī)端口。根據(jù)端口的狀態(tài),目標(biāo)主機(jī)可能會(huì)也有可能不會(huì)導(dǎo)致Zombie主機(jī)IPID值增加。
再探查Zombie主機(jī)的IP ID。比較兩次得到IPID值

經(jīng)過(guò)這樣一個(gè)流程,Zombie主機(jī)的 IP ID 應(yīng)該會(huì)增加1~2。如果只是增加了1,那么就可以說(shuō)明Zombie主機(jī)還沒(méi)有發(fā)出任何包,當(dāng)然,響應(yīng)攻擊者的探查請(qǐng)求除外。沒(méi)有發(fā)送包也就意味著目標(biāo)端口沒(méi)有被打開(kāi)(也可能是目標(biāo)主機(jī)向Zombie主機(jī)發(fā)送了一個(gè)RST包,導(dǎo)致請(qǐng)求被忽略,或者是根本就是什么都沒(méi)有做)。增加的如果是2,那就表明Zombie主機(jī)成功在兩個(gè)探測(cè)器之間發(fā)送了包。這種情況一般情況都意味著目標(biāo)端口是開(kāi)著的(目標(biāo)大概會(huì)向Zombie主機(jī)發(fā)送一個(gè)SYN/ACK包去響應(yīng)攻擊者偽造的SYN,從Zombie主機(jī)誘導(dǎo)RST包)。如果是增加了一個(gè)比2還大的數(shù)字,那么就說(shuō)明Zombie主機(jī)太糟糕了!它可能不能勝任預(yù)測(cè)IPID數(shù)值,也可能是正在忙于其他與Idle Scan無(wú)關(guān)的事情。

雖然關(guān)閉了端口和被過(guò)濾的端口會(huì)發(fā)生的事情稍微有點(diǎn)點(diǎn)不同,但是攻擊者處理的方法都一樣,IPID都只是增加1。所以,在Idel Scan中無(wú)法區(qū)別端口到底是關(guān)閉的還是已經(jīng)過(guò)濾了。當(dāng)Nmap記錄的IPID增加了1,也就被標(biāo)記成了close丨filterred。

以下三張圖大略可以說(shuō)明端口被打開(kāi),關(guān)閉,過(guò)濾的情況。

端口開(kāi)放:

端口關(guān)閉:

端口被過(guò)濾:

Idel Scan根本上來(lái)講就是一個(gè)隱性掃描,Nmap提供了decoy scanning (-D),幫助使用者保護(hù)自己的身份。如果不是使用的(類似Idel Scan掃描方式)仍然需要攻擊者通過(guò)自身真實(shí)IP向目標(biāo)發(fā)送數(shù)據(jù)包以獲取掃描結(jié)果。Idel Scan掃描結(jié)果其中之一就有入侵檢測(cè)系統(tǒng)通常會(huì)發(fā)送一個(gè)Zombie主機(jī)已經(jīng)開(kāi)始掃描的通知。所以它可以作為一個(gè)框架去掃描另外一個(gè)目標(biāo),當(dāng)你查閱入侵檢測(cè)系統(tǒng)(IDS)時(shí),請(qǐng)記住這種可能性。

Idel Scan的一個(gè)獨(dú)特優(yōu)勢(shì)便是,它可以繞開(kāi)某些過(guò)濾防火墻和路由器。IP源地址過(guò)濾,是一種常見(jiàn)的(雖然很弱)用于限制機(jī)器連接到敏感主機(jī)或者說(shuō)網(wǎng)絡(luò)上的安全機(jī)制。舉個(gè)例子,一個(gè)公司數(shù)據(jù)庫(kù)服務(wù)器,只允許公共網(wǎng)絡(luò)連接。或者,家庭用戶只允許SSH連接到工作機(jī)上面。

Idel Scanning有時(shí)也可以被用來(lái)映射信任關(guān)系,關(guān)鍵在于Idel Scan最終會(huì)從Zombie主機(jī)獲取開(kāi)放端口列表。一個(gè)正常的掃描對(duì)于上述數(shù)據(jù)庫(kù)服務(wù)器可能會(huì)顯示沒(méi)有端口開(kāi)放,但是當(dāng)將Zombie主機(jī)作為Web Sever的IP,使用Idel Scan就可能將數(shù)據(jù)庫(kù)相關(guān)開(kāi)放端口暴露出來(lái)。

映射出的這些信任關(guān)系就可能作為攻擊者優(yōu)先考慮的目標(biāo),上面所討論的方式手法很猥瑣哇!

Idel Scan有一個(gè)缺點(diǎn)就是它比其他一些掃描方式所花費(fèi)的時(shí)間更長(zhǎng)。盡管在《Idel Scan算法實(shí)現(xiàn)》章節(jié)中有對(duì)Idel Scan的優(yōu)化算法,一個(gè)只需要15秒就可以完成的SYN,Idel Scan或許需要15分鐘才能夠完成。另一個(gè)問(wèn)題就是你必須能夠發(fā)送欺騙包,偽裝成好像他們來(lái)自Zombie主機(jī)一般,讓他們到達(dá)目標(biāo)主機(jī)。許多ISP服務(wù)商(特別是撥號(hào)和住宅寬帶供應(yīng)商)目前執(zhí)行出口過(guò)濾來(lái)防止這類數(shù)據(jù)包欺騙。高端供應(yīng)商(比如說(shuō)主機(jī)托管,T1-Services)就不太可能這么做。如果實(shí)際存在這個(gè)過(guò)濾,Nmap會(huì)在你嘗試的每一個(gè)Zombie主機(jī)上顯示一個(gè)快速錯(cuò)誤消息。如果不能夠更換ISP服務(wù)商,那么最好嘗試在讓ISP服務(wù)商給你更換一個(gè)IP。有時(shí)候這個(gè)過(guò)濾僅僅只是阻止了客戶使用范圍之外的欺騙IP地址。Idel Scan另外一個(gè)難點(diǎn)就是你必須尋找一個(gè)正在工作的Zombie主機(jī)。

上述描述的是Idel Scan的基礎(chǔ)水平。在Nmap上實(shí)現(xiàn)卻是有些復(fù)雜,最關(guān)鍵的差異在于Nmap能夠同時(shí)執(zhí)行,而且誤報(bào)少。

Parallelizing idle scan由于是間接推導(dǎo)出端口所以,他比其他掃描方式要更加的猥瑣。如果Nmap探測(cè)目標(biāo)主機(jī)上的多個(gè)端口,然后檢測(cè)Zombie主機(jī)上新的IP ID值,IP ID的值增加了多少就顯示出目標(biāo)開(kāi)放了多少個(gè)端口。實(shí)際上這并不是一個(gè)和嚴(yán)重的問(wèn)題,絕大多數(shù)端口在大型掃描結(jié)果中基本上都是被關(guān)閉或者被過(guò)濾。由于只有開(kāi)放端口才可以讓IP ID值增加,Nmap會(huì)認(rèn)為沒(méi)有增加量,然后整個(gè)組的端口就被標(biāo)記成了關(guān)閉或者被過(guò)濾。Nmap可以并行掃描一百組端口。如果Nmap在探測(cè)一組端口的時(shí)候Zombie主機(jī)IP ID同時(shí)也增加了,就說(shuō)明在這一組端口中一定有開(kāi)放的端口。Nmap繼而使用二進(jìn)制搜索發(fā)現(xiàn)開(kāi)放的端口。它將數(shù)據(jù)組分成兩份,分別發(fā)送探測(cè)信息,如果一個(gè)數(shù)據(jù)組顯示沒(méi)有開(kāi)放端口,那么這一數(shù)據(jù)組的端口都將被標(biāo)記為被關(guān)閉或者被過(guò)濾。如果一個(gè)數(shù)據(jù)組顯示有開(kāi)放端口,那么在把這個(gè)數(shù)據(jù)組分成兩份,重復(fù)以上步驟,直到最終將開(kāi)放端口都找出來(lái)。雖然這種方式更復(fù)雜,但是這種方式可以節(jié)約掃描時(shí)間。

可靠性是Idel Scan的另一個(gè)問(wèn)題。如果Zombie主機(jī)在掃描時(shí)向任何不相干的機(jī)器發(fā)送數(shù)據(jù)包,其IP ID會(huì)增加。這就會(huì)讓Nmap誤以為已經(jīng)尋找到開(kāi)放的端口了。幸運(yùn)的是,并行掃描在這里也是有很大作用的。如果Nmap在一個(gè)組中掃描100個(gè)端口,那么IP ID就會(huì)增加標(biāo)識(shí)兩個(gè)開(kāi)放端口,Nmap將這組數(shù)據(jù)分成50端口一個(gè)小組。當(dāng)Nmap同時(shí)在兩個(gè)小組中進(jìn)行IP ID掃描時(shí),Zombie主機(jī)IP ID總的增加量就在加了一次。另外,Nmap如果探測(cè)到不一致,那么它會(huì)重新探測(cè)。基于檢測(cè)可靠的Zombie主機(jī),Nmap還會(huì)修改組大小以及掃描時(shí)間。如果Nmap發(fā)現(xiàn)有大量不一致的結(jié)果,它將退出,并提示用戶選擇更好的Zombie主機(jī)。

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

TCP Maimon Scan

Maimon Scan 以其發(fā)現(xiàn)者 Uriel Maimon 命名。 他在 Phrack 雜志第49期(1996年11月)中描述了這種技術(shù)。 除了探測(cè)器是FIN / ACK之外,此技術(shù)與NULL,F(xiàn)IN和Xmas掃描完全相同。 根據(jù)RFC 793(TCP),響應(yīng)于這樣的探測(cè),應(yīng)該生成RST分組,無(wú)論端口是打開(kāi)還是關(guān)閉。 但是,如果端口打開(kāi),許多BSD派生系統(tǒng)只會(huì)丟棄數(shù)據(jù)包。 Nmap利用這一點(diǎn)來(lái)確定開(kāi)放端口,如下表所示:

Nmap 對(duì) TCP Maimon Scan 的處理:

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

usage

1
2
3
4
5
6
7
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協(xié)議(RFC 959)的一個(gè)有趣特性是支持代理FTP連接。這允許用戶連接到一個(gè)FTP服務(wù)器,然后要求將文件發(fā)送到第三方服務(wù)器。這樣的功能在很多層面上被濫用,因此大多數(shù)服務(wù)器已停止支持它。此功能允許的濫用功能之一是通過(guò) FTP 服務(wù)器進(jìn)行掃描其他主機(jī)端口。只需要求 FTP 服務(wù)器依次將文件發(fā)送到目標(biāo)主機(jī)的每個(gè)端口就可以了。回顯消息將描述端口是否打開(kāi)。這是繞過(guò)防火墻的好方法,因?yàn)閮?nèi)部的 FTP 服務(wù)器通常放置在比舊的 Internet 主機(jī)都能訪問(wèn)到的其他主機(jī)的位置上。

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

使用 FTP Bounce Scan 較為頻繁的用戶更好地習(xí)慣了對(duì)回顯消息的處理。這個(gè)漏洞在1997年Nmap發(fā)布時(shí)很普遍,但已在很大程度上得到修復(fù)。易受攻擊的服務(wù)器仍然存在,所以當(dāng)其他所有服務(wù)器都失敗時(shí),這個(gè)方法值得一試。如果您的目標(biāo)是繞過(guò)防火墻,請(qǐng)掃描目標(biāo)網(wǎng)絡(luò)以查找開(kāi)放的21端口(如果使用版本檢測(cè)掃描所有端口,則掃描任何FTP服務(wù)),然后嘗試使用每個(gè)端口進(jìn)行 Bounce Scan。 Nmap會(huì)告訴您主機(jī)是否容易受到攻擊。如果您只是試圖掩蓋您的曲目,您不需要(事實(shí)上,不應(yīng)該)限制目標(biāo)網(wǎng)絡(luò)上的主機(jī)。在為易受攻擊的FTP服務(wù)器掃描隨機(jī)Internet地址之前,請(qǐng)考慮系統(tǒng)管理員可能不會(huì)允許這樣濫用其服務(wù)器。

usage

Nmap 掃描方式:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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為網(wǎng)絡(luò)層以上和應(yīng)用層以下提供了一個(gè)簡(jiǎn)單的接口。UDP只提供數(shù)據(jù)的不可靠傳遞,它一旦把應(yīng)用程序發(fā)給網(wǎng)絡(luò)層的數(shù)據(jù)發(fā)送出去,就不保留數(shù)據(jù)備份(所以UDP有時(shí)候也被認(rèn)為是不可靠的數(shù)據(jù)報(bào)協(xié)議)。UDP在IP數(shù)據(jù)報(bào)的頭部?jī)H僅加入了復(fù)用和數(shù)據(jù)校驗(yàn)字段。

UDP適用于不需要或在程序中執(zhí)行錯(cuò)誤檢查和糾正的應(yīng)用,它避免了協(xié)議棧中此類處理的開(kāi)銷。對(duì)時(shí)間有較高要求的應(yīng)用程序通常使用UDP,因?yàn)閬G棄數(shù)據(jù)包比等待或重傳導(dǎo)致延遲更可取。

UDP SCAN

UDP掃描比較簡(jiǎn)單,一般如果返回ICMP port unreachable說(shuō)明端口是關(guān)閉的,而如果沒(méi)有回應(yīng)或有回應(yīng)(有些UDP服務(wù)是有回應(yīng)的但不常見(jiàn))則認(rèn)為是open,但由于UDP的不可靠性,無(wú)法判斷報(bào)文段是丟了還是沒(méi)有回應(yīng),所以一般掃描器會(huì)發(fā)送多次,然后根據(jù)結(jié)果再判斷。這也是為什么UDP掃描這么慢的原因。

雖然因特網(wǎng)上最流行的服務(wù)運(yùn)行在TCP協(xié)議上,但UDP服務(wù)被廣泛部署。 DNS,SNMP和DHCP(注冊(cè)端口53,161 / 162和67/68)是最常見(jiàn)的三種。 由于UDP掃描通常比TCP更慢且更困難,因此某些安全審核員會(huì)忽略這些端口。 這是一個(gè)錯(cuò)誤,因?yàn)榭衫玫腢DP服務(wù)非常普遍,攻擊者肯定不會(huì)忽略整個(gè)協(xié)議。

UDP掃描通過(guò)向每個(gè)目標(biāo)端口發(fā)送UDP數(shù)據(jù)包來(lái)工作。 對(duì)于大多數(shù)端口,此數(shù)據(jù)包將為空(無(wú)有效負(fù)載),但對(duì)于一些更常見(jiàn)的端口,將發(fā)送特定于協(xié)議的有效負(fù)載。 根據(jù)響應(yīng)或缺少響應(yīng),端口被分配給四種狀態(tài)之一,如下表所示:

Nmap 對(duì) UDP Scan 的處理:

Probe Response Assigned State
Any UDP response from target port (unusual) open
No response received (even after retransmissions) open or 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 選項(xiàng)參數(shù):

1
nmap -sU scanme.nmap.org

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

ICMP

ICMP 格式:

? 根據(jù)網(wǎng)絡(luò)協(xié)議,如果按照協(xié)議出現(xiàn)了錯(cuò)誤,那么接收端將產(chǎn)生一個(gè)icmp的錯(cuò)誤報(bào)文。這些錯(cuò)誤報(bào)文并不是主動(dòng)發(fā)送的,而是由于錯(cuò)誤,根據(jù)協(xié)議自動(dòng)產(chǎn)生。

ICMP 相關(guān)類型解釋:

一般如果數(shù)據(jù)包被防火墻過(guò)濾的話,會(huì)收到一個(gè) ICMP 數(shù)據(jù)包,其中類型為3,代碼為1,2,3,9,10或13。

ICMP SCAN

常見(jiàn)的利用:

SCTP

這里我們簡(jiǎn)單介紹一下 SCTP 協(xié)議。

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

作為一個(gè)傳輸層協(xié)議,SCTP可以理解為和TCP及UDP相類似的。它提供的服務(wù)有點(diǎn)像TCP,又同時(shí)將UDP的一些優(yōu)點(diǎn)相結(jié)合。是一種提供了可靠、高效、有序的數(shù)據(jù)傳輸協(xié)議。相比之下TCP是面向字節(jié)的,而SCTP是針對(duì)成幀的消息。

SCTP主要的貢獻(xiàn)是對(duì)多重聯(lián)外線路的支持,一個(gè)端點(diǎn)可以由多于一個(gè) IP地址 組成,使得傳輸可在主機(jī)間或網(wǎng)卡間做到透明的網(wǎng)絡(luò)容錯(cuò)備援。

SCTP最初是被設(shè)計(jì)用于在IP上傳輸電話協(xié)議(SS7),把 SS7 信令網(wǎng)絡(luò)的一些可靠特性引入IP。IETF 的這方面的工作稱為信令傳輸 SIGTRAN。

SCTP將數(shù)據(jù)傳給應(yīng)用層的方式,是將數(shù)據(jù)視為message(bytes的集合),SCTP的特征是message-oriented,意思就是說(shuō)它發(fā)送的是一串message(每一個(gè)message是byte為單位的集合),相對(duì)于TCP是以byte為單位,發(fā)送的是破碎的流。在SCTP發(fā)送端用一個(gè)動(dòng)作提交消息,接收端也是用一個(gè)動(dòng)作取出消息傳給對(duì)應(yīng)的應(yīng)用程序。相較于TCP,是一個(gè)流導(dǎo)向的協(xié)議,可靠地且有順序地發(fā)送以bytes為單位的流。然而TCP并不允許接收端知道發(fā)送端的應(yīng)用程序調(diào)用提交bytes集合的次數(shù)。在發(fā)送端TCP只是簡(jiǎn)單的附加更多bytes在queue里等待著送到網(wǎng)絡(luò)上,而SCTP是將要提交的outband message都保有自己獨(dú)立的queue。

簡(jiǎn)而言之,SCTP是TCP和UDP協(xié)議的一種相對(duì)較新的替代方案,它結(jié)合了TCP和UDP的大多數(shù)特性,還增加了多宿主和多流等新功能。它主要用于SS7 / SIGTRAN相關(guān)服務(wù),但也有可能用于其他應(yīng)用程序。

下圖是 TCP 與 SCTP 建立連接的對(duì)比圖:

SCTP INIT scan

SCTP INIT掃描是TCP SYN掃描的SCTP等效物。它可以快速執(zhí)行,在快速網(wǎng)絡(luò)上每秒掃描數(shù)千個(gè)端口,而不受限制性防火墻的限制。與SYN掃描一樣,INIT掃描相對(duì)不顯眼且隱蔽,因?yàn)樗肋h(yuǎn)不會(huì)完成SCTP關(guān)聯(lián)。它還允許在打開(kāi),關(guān)閉和過(guò)濾狀態(tài)之間進(jìn)行清晰,可靠的區(qū)分。

此技術(shù)通常稱為半開(kāi)掃描,因?yàn)槟淮蜷_(kāi)完整的SCTP關(guān)聯(lián)。您發(fā)送一個(gè)INIT塊,就好像您要打開(kāi)一個(gè)真正的關(guān)聯(lián),然后等待響應(yīng)。 INIT-ACK塊表示端口正在偵聽(tīng)(打開(kāi)),而ABORT塊表示非偵聽(tīng)器。如果在多次重新傳輸后未收到響應(yīng),則將端口標(biāo)記為已過(guò)濾。如果收到ICMP不可達(dá)錯(cuò)誤(類型3,代碼0,1,2,3,9,10或13),則端口也會(huì)被標(biāo)記為已過(guò)濾。

usage

1
nmap -sY ip

SCTP COOKIE ECHO SCAN 是一種更先進(jìn)的SCTP掃描。 它利用了SCTP實(shí)現(xiàn)應(yīng)該在開(kāi)放端口上靜默丟棄包含COOKIE ECHO塊的數(shù)據(jù)包這一事實(shí),但如果端口關(guān)閉則發(fā)送ABORT。 這種掃描類型的優(yōu)點(diǎn)是端口掃描不像INIT掃描那么明顯。 此外,可能存在阻止INIT塊的非狀態(tài)防火墻規(guī)則集,但不阻止COOKIE ECHO塊。 不要誤以為這會(huì)使端口掃描不可見(jiàn); 一個(gè)好的IDS也能夠檢測(cè)到SCTP COOKIE ECHO掃描。 缺點(diǎn)是SCTP COOKIE ECHO掃描不能區(qū)分打開(kāi)和過(guò)濾的端口,在這兩種情況下都會(huì)打開(kāi)狀態(tài)。

usage

1
nmap -sZ ip

IP

IP Scan

IP協(xié)議掃描允許您確定目標(biāo)計(jì)算機(jī)支持哪些IP協(xié)議(TCP,ICMP,IGMP等)。這在技術(shù)上不是端口掃描,因?yàn)樗h(huán)通過(guò)IP協(xié)議號(hào)而不是TCP或UDP端口號(hào)。然而,它仍然使用-p選項(xiàng)來(lái)選擇掃描的協(xié)議號(hào),以正常的端口表格式報(bào)告其結(jié)果,甚至使用與真正的端口掃描方法相同的底層掃描引擎。所以它足夠接近它所屬的端口掃描。

協(xié)議掃描的工作方式與UDP掃描類似。它不是遍歷UDP數(shù)據(jù)包的端口號(hào)字段,而是發(fā)送IP數(shù)據(jù)包標(biāo)頭并迭代通過(guò)8位IP協(xié)議字段。標(biāo)頭通常是空的,不包含任何數(shù)據(jù),甚至不包括所聲明協(xié)議的正確標(biāo)頭。某些流行協(xié)議(包括TCP,UDP和ICMP)例外。包含適當(dāng)?shù)膮f(xié)議頭,因?yàn)橐恍┫到y(tǒng)不會(huì)發(fā)送它們,因?yàn)镹map已經(jīng)具有創(chuàng)建它們的功能。協(xié)議掃描不是在觀察ICMP端口不可達(dá)消息,而是在尋找ICMP協(xié)議不可達(dá)消息。如下表顯示了對(duì)IP探測(cè)的響應(yīng)如何映射到端口狀態(tài)。

Nmap 對(duì) 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 or filtered

與TCP或UDP協(xié)議中的開(kāi)放端口一樣,每個(gè)開(kāi)放協(xié)議都是潛在的利用向量。此外,協(xié)議掃描結(jié)果有助于確定機(jī)器的用途以及采用何種類型的數(shù)據(jù)包過(guò)濾。終端主機(jī)通常只有TCP,UDP,ICMP和(有時(shí))IGMP打開(kāi),而路由器通常提供更多,包括路由相關(guān)協(xié)議,如GRE和EGP。防火墻和VPN網(wǎng)關(guān)可能會(huì)顯示與加密相關(guān)的協(xié)議,如IPsec和SWIPE。

與UDP掃描期間收到的ICMP端口不可達(dá)消息一樣,ICMP協(xié)議不可達(dá)消息通常是速率限制的。例如,默認(rèn)Linux 2.4.20框中每秒發(fā)送的ICMP目標(biāo)無(wú)法訪問(wèn)響應(yīng)不超過(guò)一個(gè)。由于只有256個(gè)可能的協(xié)議號(hào),因此與65,536端口UDP掃描相比,這不是問(wèn)題。

usage

協(xié)議掃描的使用方法與命令行上的大多數(shù)其他掃描技術(shù)的使用方法相同。除了一般的Nmap選項(xiàng)外,請(qǐng)簡(jiǎn)單指定-sO。普通端口-p選項(xiàng)用于選擇協(xié)議號(hào)。或者,您可以使用-F掃描nmap-protocols數(shù)據(jù)庫(kù)中列出的所有協(xié)議。默認(rèn)情況下,Nmap掃描所有256個(gè)可能的值。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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

總結(jié)

以上是生活随笔為你收集整理的浅谈端口扫描的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。