安全技術(shù)掃描 第3章_第1頁(yè)
安全技術(shù)掃描 第3章_第2頁(yè)
安全技術(shù)掃描 第3章_第3頁(yè)
安全技術(shù)掃描 第3章_第4頁(yè)
安全技術(shù)掃描 第3章_第5頁(yè)
已閱讀5頁(yè),還剩82頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第第3章章 端口掃描端口掃描 3.1 端口掃描的概述端口掃描的概述 3.2 常見(jiàn)端口掃描技術(shù)常見(jiàn)端口掃描技術(shù) 3.3 其他端口掃描技術(shù)其他端口掃描技術(shù) 3.4 端口掃描工具端口掃描工具 3.5 小結(jié)小結(jié) 網(wǎng)絡(luò)出現(xiàn)故障時(shí),人們總習(xí)慣先用網(wǎng)絡(luò)出現(xiàn)故障時(shí),人們總習(xí)慣先用ping命令檢測(cè)目命令檢測(cè)目 標(biāo)系統(tǒng)是否有所反應(yīng),如果要進(jìn)一步了解目標(biāo)系統(tǒng)標(biāo)系統(tǒng)是否有所反應(yīng),如果要進(jìn)一步了解目標(biāo)系統(tǒng) 的網(wǎng)絡(luò)連接狀況,黑客最常使用的一種手段就是端的網(wǎng)絡(luò)連接狀況,黑客最常使用的一種手段就是端 口掃描。對(duì)目標(biāo)主機(jī)進(jìn)行全面的端口掃描不僅是為口掃描。對(duì)目標(biāo)主機(jī)進(jìn)行全面的端口掃描不僅是為 了確定其開(kāi)放的網(wǎng)絡(luò)服務(wù),而更基本的還

2、在于確定了確定其開(kāi)放的網(wǎng)絡(luò)服務(wù),而更基本的還在于確定 其是否真正處于激活狀態(tài)。其是否真正處于激活狀態(tài)。 當(dāng)然,端口掃描最大的作用是提供目標(biāo)主機(jī)網(wǎng)絡(luò)服當(dāng)然,端口掃描最大的作用是提供目標(biāo)主機(jī)網(wǎng)絡(luò)服 務(wù)的清單。務(wù)的清單。 總之,端口掃描是一種非常重要的預(yù)攻擊探測(cè)手段,總之,端口掃描是一種非常重要的預(yù)攻擊探測(cè)手段, 幾乎是黑客攻擊的通用手段。同時(shí)通過(guò)使用端口掃幾乎是黑客攻擊的通用手段。同時(shí)通過(guò)使用端口掃 描技術(shù),可以在主機(jī)或系統(tǒng)在被攻擊前得到一些警描技術(shù),可以在主機(jī)或系統(tǒng)在被攻擊前得到一些警 告和預(yù)報(bào),盡可能在早期預(yù)測(cè)攻擊者的行為并獲得告和預(yù)報(bào),盡可能在早期預(yù)測(cè)攻擊者的行為并獲得 一定的證據(jù),從而對(duì)攻

3、擊進(jìn)行預(yù)警或采取一定的防一定的證據(jù),從而對(duì)攻擊進(jìn)行預(yù)警或采取一定的防 御措施。御措施。 為了更好地理解端口掃描的技術(shù)細(xì)節(jié),有必要先回為了更好地理解端口掃描的技術(shù)細(xì)節(jié),有必要先回 顧一下關(guān)于顧一下關(guān)于TCP/IP以及端口的一些基本知識(shí)。對(duì)以及端口的一些基本知識(shí)。對(duì) 于端口掃描,其實(shí)現(xiàn)原理是和于端口掃描,其實(shí)現(xiàn)原理是和TCP/IP格式以及通格式以及通 信過(guò)程直接相關(guān)的;而有關(guān)信過(guò)程直接相關(guān)的;而有關(guān)TCP狀態(tài)轉(zhuǎn)換的內(nèi)容,狀態(tài)轉(zhuǎn)換的內(nèi)容, 則有助于理解后面章節(jié)的掃描技術(shù)中對(duì)操作系統(tǒng)類則有助于理解后面章節(jié)的掃描技術(shù)中對(duì)操作系統(tǒng)類 型的判斷。型的判斷。 3.1 端口掃描的概述端口掃描的概述 1. IP數(shù)

4、據(jù)報(bào)數(shù)據(jù)報(bào) 因特網(wǎng)在網(wǎng)絡(luò)層定義了標(biāo)準(zhǔn)的因特網(wǎng)在網(wǎng)絡(luò)層定義了標(biāo)準(zhǔn)的IP數(shù)據(jù)報(bào)格式和數(shù)據(jù)報(bào)格式和IP協(xié)協(xié) 議。議。IP協(xié)議已經(jīng)成為世界上最重要的網(wǎng)際協(xié)議。協(xié)議已經(jīng)成為世界上最重要的網(wǎng)際協(xié)議。IP 的功能由的功能由IP頭結(jié)構(gòu)中的數(shù)據(jù)定義。頭結(jié)構(gòu)中的數(shù)據(jù)定義。IP頭結(jié)構(gòu)及其功頭結(jié)構(gòu)及其功 能由一系列能由一系列RFC文檔和文檔和IETF創(chuàng)建時(shí)公開(kāi)發(fā)表的一創(chuàng)建時(shí)公開(kāi)發(fā)表的一 系列文檔所定義。系列文檔所定義。IP數(shù)據(jù)報(bào)被劃分成數(shù)據(jù)報(bào)被劃分成IP報(bào)頭和數(shù)據(jù)報(bào)頭和數(shù)據(jù) 區(qū),其中區(qū),其中IP報(bào)頭的具體格式如圖報(bào)頭的具體格式如圖3-1所示。所示。 3.1.1 TCP/IP相關(guān)知識(shí)相關(guān)知識(shí) 圖圖3-1 IP報(bào)頭報(bào)頭

5、2. TCP報(bào)文格式報(bào)文格式 TCP數(shù)據(jù)報(bào)文包含在數(shù)據(jù)報(bào)文包含在IP數(shù)據(jù)報(bào)中的數(shù)據(jù)部分。在數(shù)據(jù)報(bào)中的數(shù)據(jù)部分。在IP 頭部,頭部,TCP類型為類型為6。 圖圖3-2 TCP數(shù)據(jù)報(bào)格式數(shù)據(jù)報(bào)格式 3. UDP數(shù)據(jù)報(bào)格式數(shù)據(jù)報(bào)格式 UDP數(shù)據(jù)報(bào)包含于數(shù)據(jù)報(bào)包含于IP數(shù)據(jù)報(bào)中的數(shù)據(jù)部分。在數(shù)據(jù)報(bào)中的數(shù)據(jù)部分。在IP頭頭 部,部,UDP類型為類型為17。 圖圖3-3 UDP數(shù)據(jù)報(bào)格式數(shù)據(jù)報(bào)格式 4. TCP通信過(guò)程通信過(guò)程 TCP的通信過(guò)程大體分為如下幾個(gè)步驟,假設(shè)通信的通信過(guò)程大體分為如下幾個(gè)步驟,假設(shè)通信 雙方分別為主機(jī)雙方分別為主機(jī)A和主機(jī)和主機(jī)B。 主機(jī)主機(jī)A首先向主機(jī)首先向主機(jī)B發(fā)出連接請(qǐng)求

6、報(bào)文發(fā)出連接請(qǐng)求報(bào)文(SYN), 主機(jī)主機(jī)B對(duì)主機(jī)對(duì)主機(jī)A的請(qǐng)求發(fā)出確認(rèn),主機(jī)的請(qǐng)求發(fā)出確認(rèn),主機(jī)A接收到主機(jī)接收到主機(jī) B的確認(rèn)包后,對(duì)接收到的主機(jī)的確認(rèn)包后,對(duì)接收到的主機(jī)B的數(shù)據(jù)包,也向的數(shù)據(jù)包,也向 主機(jī)主機(jī)B發(fā)出確認(rèn)包。當(dāng)主機(jī)發(fā)出確認(rèn)包。當(dāng)主機(jī)B收到收到A再次發(fā)送的數(shù)據(jù)再次發(fā)送的數(shù)據(jù) 包后,連接建立完成。包后,連接建立完成。 主機(jī)主機(jī)A向主機(jī)向主機(jī)B發(fā)送應(yīng)用數(shù)據(jù)。應(yīng)用數(shù)據(jù)被分割發(fā)送應(yīng)用數(shù)據(jù)。應(yīng)用數(shù)據(jù)被分割 成成TCP認(rèn)為最適合發(fā)送的數(shù)據(jù)塊。這和認(rèn)為最適合發(fā)送的數(shù)據(jù)塊。這和UDP完全不完全不 同,應(yīng)用程序產(chǎn)生的數(shù)據(jù)包長(zhǎng)度將保持不變。由同,應(yīng)用程序產(chǎn)生的數(shù)據(jù)包長(zhǎng)度將保持不變。由 TCP傳

7、遞給傳遞給IP的信息單位稱為報(bào)文段或段。的信息單位稱為報(bào)文段或段。 當(dāng)主機(jī)當(dāng)主機(jī)A發(fā)出一個(gè)發(fā)出一個(gè)TCP段后,它啟動(dòng)一個(gè)定時(shí)器,段后,它啟動(dòng)一個(gè)定時(shí)器, 等待目的端等待目的端(主機(jī)主機(jī)B的端口的端口)確認(rèn)收到這個(gè)報(bào)文段。確認(rèn)收到這個(gè)報(bào)文段。 如果不能及時(shí)收到一個(gè)確認(rèn),將重發(fā)這個(gè)報(bào)文段。如果不能及時(shí)收到一個(gè)確認(rèn),將重發(fā)這個(gè)報(bào)文段。 通常稱為超時(shí)重傳。通常稱為超時(shí)重傳。 當(dāng)主機(jī)當(dāng)主機(jī)B收到發(fā)自收到發(fā)自TCP連接另一端連接另一端(主機(jī)主機(jī)A)的數(shù)的數(shù) 據(jù),它將發(fā)送一個(gè)確認(rèn)。這個(gè)確認(rèn)不是立即發(fā)送,據(jù),它將發(fā)送一個(gè)確認(rèn)。這個(gè)確認(rèn)不是立即發(fā)送, 通常將推遲幾分之一秒。這是為了節(jié)省帶寬,確認(rèn)通常將推遲幾分之

8、一秒。這是為了節(jié)省帶寬,確認(rèn) 常常會(huì)和后面的常常會(huì)和后面的TCP分段一同發(fā)送。分段一同發(fā)送。 TCP報(bào)文段保持它的首部和數(shù)據(jù)的校驗(yàn)和。主報(bào)文段保持它的首部和數(shù)據(jù)的校驗(yàn)和。主 機(jī)機(jī)A和主機(jī)和主機(jī)B會(huì)檢測(cè)到數(shù)據(jù)在傳輸過(guò)程中的任何變會(huì)檢測(cè)到數(shù)據(jù)在傳輸過(guò)程中的任何變 化。如果收到段的校驗(yàn)和有差錯(cuò),化。如果收到段的校驗(yàn)和有差錯(cuò),TCP將丟棄這個(gè)將丟棄這個(gè) 報(bào)文段并且不確認(rèn)收到此報(bào)文段報(bào)文段并且不確認(rèn)收到此報(bào)文段(希望發(fā)送端超時(shí)希望發(fā)送端超時(shí) 并重發(fā)并重發(fā))。 TCP報(bào)文段使用報(bào)文段使用IP數(shù)據(jù)包來(lái)傳輸,而數(shù)據(jù)包來(lái)傳輸,而IP數(shù)據(jù)包數(shù)據(jù)包 的到達(dá)可能會(huì)失序,因此,的到達(dá)可能會(huì)失序,因此,TCP報(bào)文段的到達(dá)

9、也可報(bào)文段的到達(dá)也可 能會(huì)失序。如果必要,能會(huì)失序。如果必要,TCP將對(duì)收到的數(shù)據(jù)進(jìn)行重將對(duì)收到的數(shù)據(jù)進(jìn)行重 新排序,將收到的數(shù)據(jù)以正確的順序交給應(yīng)用層。新排序,將收到的數(shù)據(jù)以正確的順序交給應(yīng)用層。 每個(gè)每個(gè)TCP報(bào)文的首部都有傳輸數(shù)據(jù)的序號(hào)。報(bào)文的首部都有傳輸數(shù)據(jù)的序號(hào)。 如果如果IP數(shù)據(jù)包發(fā)生重復(fù),數(shù)據(jù)包發(fā)生重復(fù),TCP的接收端會(huì)丟棄的接收端會(huì)丟棄 重復(fù)的數(shù)據(jù)。重復(fù)的數(shù)據(jù)。 TCP還能提供流量控制。還能提供流量控制。TCP連接的每一方都連接的每一方都 有固定大小的緩沖空間。有固定大小的緩沖空間。TCP的接收端只允許另一的接收端只允許另一 端發(fā)送接收端緩沖區(qū)所能接納的數(shù)據(jù)。這將防止發(fā)端發(fā)送接

10、收端緩沖區(qū)所能接納的數(shù)據(jù)。這將防止發(fā) 送較快的主機(jī)導(dǎo)致接收較慢的主機(jī)的緩沖區(qū)溢出。送較快的主機(jī)導(dǎo)致接收較慢的主機(jī)的緩沖區(qū)溢出。 接收一方會(huì)動(dòng)態(tài)通知發(fā)送端接收緩沖區(qū)內(nèi)還有多少接收一方會(huì)動(dòng)態(tài)通知發(fā)送端接收緩沖區(qū)內(nèi)還有多少 空閑空間可以接收數(shù)據(jù),這個(gè)緩沖空間稱為滑動(dòng)窗空閑空間可以接收數(shù)據(jù),這個(gè)緩沖空間稱為滑動(dòng)窗 口。口。 主機(jī)主機(jī)A發(fā)送數(shù)據(jù)完畢后,將發(fā)送連接結(jié)束報(bào)文發(fā)送數(shù)據(jù)完畢后,將發(fā)送連接結(jié)束報(bào)文 (FIN)給主機(jī)給主機(jī)B。主機(jī)主機(jī)B對(duì)收到的對(duì)收到的FIN報(bào)文進(jìn)行確認(rèn),報(bào)文進(jìn)行確認(rèn), 同時(shí)也發(fā)送同時(shí)也發(fā)送FIN報(bào)文給主機(jī)報(bào)文給主機(jī)A。當(dāng)主機(jī)當(dāng)主機(jī)A也對(duì)此也對(duì)此FIN 報(bào)文段完成確認(rèn)后,此報(bào)文段完成

11、確認(rèn)后,此TCP連接宣告結(jié)束。連接宣告結(jié)束。 如果在傳輸中出現(xiàn)某些異常,如果在傳輸中出現(xiàn)某些異常,TCP連接的一方連接的一方 也可以發(fā)送復(fù)位報(bào)文也可以發(fā)送復(fù)位報(bào)文(RST),立刻關(guān)閉連接。立刻關(guān)閉連接。 5. TCP中建立連接和斷開(kāi)連接過(guò)程中建立連接和斷開(kāi)連接過(guò)程 TCP建立連接過(guò)程,如圖建立連接過(guò)程,如圖3-4所示。所示。 圖圖3-4 TCP建立連接過(guò)程建立連接過(guò)程 TCP斷開(kāi)連接過(guò)程,如圖斷開(kāi)連接過(guò)程,如圖3-5所示。所示。 圖圖3-5 TCP斷開(kāi)連接過(guò)程斷開(kāi)連接過(guò)程 TCP協(xié)議建立連接和斷開(kāi)連接的過(guò)程可以用有限狀協(xié)議建立連接和斷開(kāi)連接的過(guò)程可以用有限狀 態(tài)機(jī)態(tài)機(jī)(finite state

12、 machine,F(xiàn)SM)的轉(zhuǎn)換來(lái)表示,具的轉(zhuǎn)換來(lái)表示,具 體的體的TCP狀態(tài)轉(zhuǎn)換過(guò)程如圖狀態(tài)轉(zhuǎn)換過(guò)程如圖3-6所示。所示。 圖圖3-6 TCP協(xié)議狀態(tài)轉(zhuǎn)換協(xié)議狀態(tài)轉(zhuǎn)換 互聯(lián)網(wǎng)上通信的雙方不僅需要知道對(duì)方的地址,也互聯(lián)網(wǎng)上通信的雙方不僅需要知道對(duì)方的地址,也 需要知道通信程序的端口號(hào)。在同一時(shí)間內(nèi),兩臺(tái)需要知道通信程序的端口號(hào)。在同一時(shí)間內(nèi),兩臺(tái) 主機(jī)之間可能不僅僅只有一種類型的通信,例如,主機(jī)之間可能不僅僅只有一種類型的通信,例如, 同時(shí)進(jìn)行同時(shí)進(jìn)行Telnet和和FTP連接。為區(qū)別通信的程序,連接。為區(qū)別通信的程序, 在所有在所有IP數(shù)據(jù)報(bào)文中不僅僅有源地址和目的地址,數(shù)據(jù)報(bào)文中不僅僅有源

13、地址和目的地址, 而且也有源端口號(hào)與目的端口號(hào)。眾所周知,公共而且也有源端口號(hào)與目的端口號(hào)。眾所周知,公共 的的IP地址受控于世界范圍的注冊(cè)機(jī)構(gòu),而且每個(gè)地址受控于世界范圍的注冊(cè)機(jī)構(gòu),而且每個(gè)IP 地址也具有全球內(nèi)惟一性的特點(diǎn)。端口的數(shù)目不像地址也具有全球內(nèi)惟一性的特點(diǎn)。端口的數(shù)目不像 IP地址這樣被控制管理,但是,近年來(lái),特定端口地址這樣被控制管理,但是,近年來(lái),特定端口 被指定用于特定的服務(wù),而地址和端口一起組成一被指定用于特定的服務(wù),而地址和端口一起組成一 個(gè)套接字地址,在網(wǎng)絡(luò)上惟一標(biāo)識(shí)該服務(wù)。個(gè)套接字地址,在網(wǎng)絡(luò)上惟一標(biāo)識(shí)該服務(wù)。 3.1.2 端口介紹端口介紹 目前使用的目前使用的IP

14、v4協(xié)議支持協(xié)議支持16位的端口,也就是說(shuō)可位的端口,也就是說(shuō)可 使用的端口號(hào)為使用的端口號(hào)為065 535。并且被分為。并且被分為3個(gè)范圍:個(gè)范圍: 知名端口、注冊(cè)端口和動(dòng)態(tài)端口或?qū)S枚丝?。表知名端口、注?cè)端口和動(dòng)態(tài)端口或?qū)S枚丝?。?- 1是文件中包含的一些常用端口及其對(duì)應(yīng)的服務(wù)。是文件中包含的一些常用端口及其對(duì)應(yīng)的服務(wù)。 任何無(wú)特權(quán)的用戶程序如果企圖打開(kāi)范圍在任何無(wú)特權(quán)的用戶程序如果企圖打開(kāi)范圍在0 1023的知名端口,都會(huì)以失敗告終。而一個(gè)用戶程的知名端口,都會(huì)以失敗告終。而一個(gè)用戶程 序可以打開(kāi)端口號(hào)高于序可以打開(kāi)端口號(hào)高于1023的未分配端口,這些端的未分配端口,這些端 口號(hào)高于口

15、號(hào)高于1023的端口,通常也稱它們?yōu)椴粯?biāo)準(zhǔn)端口。的端口,通常也稱它們?yōu)椴粯?biāo)準(zhǔn)端口。 在這個(gè)范圍的一些端口對(duì)應(yīng)的服務(wù)卻是在這個(gè)范圍的一些端口對(duì)應(yīng)的服務(wù)卻是“標(biāo)準(zhǔn)標(biāo)準(zhǔn)”的,的, 表表3-2列出該端口范圍內(nèi)的部分端口及它們對(duì)應(yīng)的列出該端口范圍內(nèi)的部分端口及它們對(duì)應(yīng)的 服務(wù)。服務(wù)。 注冊(cè)端口由注冊(cè)端口由IANA記錄和追蹤,動(dòng)態(tài)端口或?qū)S枚擞涗浐妥粉櫍瑒?dòng)態(tài)端口或?qū)S枚?口提供給專用應(yīng)用程序??谔峁┙o專用應(yīng)用程序。RFC1700是相關(guān)端口信息是相關(guān)端口信息 的規(guī)范文檔。端口與服務(wù)的對(duì)照表見(jiàn)教材附錄。的規(guī)范文檔。端口與服務(wù)的對(duì)照表見(jiàn)教材附錄。 端口掃描技術(shù)是一項(xiàng)自動(dòng)探測(cè)本地和遠(yuǎn)程系統(tǒng)端口端口掃描技術(shù)是一項(xiàng)自

16、動(dòng)探測(cè)本地和遠(yuǎn)程系統(tǒng)端口 開(kāi)放情況的策略及方法,它使系統(tǒng)用戶了解系統(tǒng)目開(kāi)放情況的策略及方法,它使系統(tǒng)用戶了解系統(tǒng)目 前向外界提供了哪些服務(wù),從而為系統(tǒng)用戶管理網(wǎng)前向外界提供了哪些服務(wù),從而為系統(tǒng)用戶管理網(wǎng) 絡(luò)提供了一種手段。絡(luò)提供了一種手段。 端口掃描向目標(biāo)主機(jī)的端口掃描向目標(biāo)主機(jī)的TCP/IP服務(wù)端口發(fā)送探測(cè)服務(wù)端口發(fā)送探測(cè) 數(shù)據(jù)包,并記錄目標(biāo)主機(jī)的響應(yīng)。通過(guò)分析響應(yīng)來(lái)數(shù)據(jù)包,并記錄目標(biāo)主機(jī)的響應(yīng)。通過(guò)分析響應(yīng)來(lái) 判斷服務(wù)端口是打開(kāi)還是關(guān)閉,就可以得知端口提判斷服務(wù)端口是打開(kāi)還是關(guān)閉,就可以得知端口提 供的服務(wù)或信息。端口掃描也可以通過(guò)捕獲本地主供的服務(wù)或信息。端口掃描也可以通過(guò)捕獲本地主

17、機(jī)或服務(wù)器的流入流出機(jī)或服務(wù)器的流入流出IP數(shù)據(jù)包來(lái)監(jiān)視本地主機(jī)的數(shù)據(jù)包來(lái)監(jiān)視本地主機(jī)的 運(yùn)行情況,它僅能對(duì)接收到的數(shù)據(jù)進(jìn)行分析,從而運(yùn)行情況,它僅能對(duì)接收到的數(shù)據(jù)進(jìn)行分析,從而 發(fā)現(xiàn)目標(biāo)主機(jī)的某些內(nèi)在的弱點(diǎn),而不會(huì)提供進(jìn)入發(fā)現(xiàn)目標(biāo)主機(jī)的某些內(nèi)在的弱點(diǎn),而不會(huì)提供進(jìn)入 一個(gè)系統(tǒng)的詳細(xì)步驟。一個(gè)系統(tǒng)的詳細(xì)步驟。 3.1.3 端口掃描的概念端口掃描的概念 圖圖3-7 端口掃描分類端口掃描分類 3.1.4 端口掃描的分類端口掃描的分類 常見(jiàn)的端口掃描技術(shù)包括有常見(jiàn)的端口掃描技術(shù)包括有TCP connect掃描、掃描、 TCP SYN掃描以及秘密掃描。掃描以及秘密掃描。 3.2 常見(jiàn)端口掃描技術(shù)常見(jiàn)端

18、口掃描技術(shù) 通過(guò)進(jìn)行端口掃描,根據(jù)遠(yuǎn)程主機(jī)開(kāi)放的端口,可通過(guò)進(jìn)行端口掃描,根據(jù)遠(yuǎn)程主機(jī)開(kāi)放的端口,可 以初步確定對(duì)方提供的服務(wù)類型。進(jìn)行端口掃描最以初步確定對(duì)方提供的服務(wù)類型。進(jìn)行端口掃描最 常用的方式就是嘗試與遠(yuǎn)程主機(jī)的端口建立一次正常用的方式就是嘗試與遠(yuǎn)程主機(jī)的端口建立一次正 常的常的TCP連接。若連接成功則表示目標(biāo)端口開(kāi)放。連接。若連接成功則表示目標(biāo)端口開(kāi)放。 這種掃描技術(shù)稱為這種掃描技術(shù)稱為“TCP connect掃描掃描”,TCP connect掃描是掃描是TCP端口掃描的基礎(chǔ),也是最直接端口掃描的基礎(chǔ),也是最直接 的端口掃描方法。它實(shí)現(xiàn)起來(lái)非常容易,只需要在的端口掃描方法。它實(shí)現(xiàn)起

19、來(lái)非常容易,只需要在 軟件編程中調(diào)用軟件編程中調(diào)用Socket API的的connect()函數(shù)去連接函數(shù)去連接 目標(biāo)主機(jī)的指定端口,完成一次完整的目標(biāo)主機(jī)的指定端口,完成一次完整的TCP 3次握次握 手連接建立過(guò)程,根據(jù)對(duì)方的反應(yīng),就可以簡(jiǎn)單地手連接建立過(guò)程,根據(jù)對(duì)方的反應(yīng),就可以簡(jiǎn)單地 判斷出目標(biāo)端口是否開(kāi)放。判斷出目標(biāo)端口是否開(kāi)放。 3.2.1 TCP connect掃描掃描 掃描主機(jī)通過(guò)掃描主機(jī)通過(guò)TCP/IP協(xié)議的協(xié)議的3次握手與目標(biāo)主機(jī)的次握手與目標(biāo)主機(jī)的 指定端口建立一次完整的連接。連接由系統(tǒng)調(diào)用指定端口建立一次完整的連接。連接由系統(tǒng)調(diào)用 connect()開(kāi)始。如果端口開(kāi)放,則

20、連接建立成功;開(kāi)始。如果端口開(kāi)放,則連接建立成功; 否則,則返回否則,則返回-1,表示端口關(guān)閉。,表示端口關(guān)閉。 TCP connect端口掃描服務(wù)端與客戶端建立連接成端口掃描服務(wù)端與客戶端建立連接成 功(目標(biāo)端口開(kāi)放)的過(guò)程:功(目標(biāo)端口開(kāi)放)的過(guò)程: Client端發(fā)送端發(fā)送SYN; Server端返回端返回SYN/ACK,表明端口開(kāi)放;表明端口開(kāi)放; Client端返回端返回ACK,表明連接已建立;表明連接已建立; Client端主動(dòng)斷開(kāi)連接。端主動(dòng)斷開(kāi)連接。 建立連接成功(目標(biāo)端口開(kāi)放)如圖建立連接成功(目標(biāo)端口開(kāi)放)如圖3-8所示。所示。 圖圖3-8 TCP connect掃描建立連

21、接成功掃描建立連接成功 TCP connect端口掃描服務(wù)端與客戶端未建立連接端口掃描服務(wù)端與客戶端未建立連接 成功(目標(biāo)端口關(guān)閉)過(guò)程:成功(目標(biāo)端口關(guān)閉)過(guò)程: Client端發(fā)送端發(fā)送SYN; Server端返回端返回RST/ACK,表明端口未開(kāi)放。表明端口未開(kāi)放。 未建立連接成功未建立連接成功(目標(biāo)端口關(guān)閉目標(biāo)端口關(guān)閉)如圖如圖3-9所示。所示。 圖圖3-9 TCP connect掃描建立連接未成功掃描建立連接未成功 這種掃描方法的優(yōu)點(diǎn)是實(shí)現(xiàn)簡(jiǎn)單,對(duì)操作者的權(quán)限這種掃描方法的優(yōu)點(diǎn)是實(shí)現(xiàn)簡(jiǎn)單,對(duì)操作者的權(quán)限 沒(méi)有嚴(yán)格要求(有些類型的端口掃描需要操作者具沒(méi)有嚴(yán)格要求(有些類型的端口掃描需要

22、操作者具 有有root權(quán)限),系統(tǒng)中的任何用戶都有權(quán)力使用這權(quán)限),系統(tǒng)中的任何用戶都有權(quán)力使用這 個(gè)調(diào)用,而且如果想要得到從目標(biāo)端口返回個(gè)調(diào)用,而且如果想要得到從目標(biāo)端口返回 banners信息,也只能采用這一方法。另一優(yōu)點(diǎn)是信息,也只能采用這一方法。另一優(yōu)點(diǎn)是 掃描速度快。如果對(duì)每個(gè)目標(biāo)端口以線性的方式,掃描速度快。如果對(duì)每個(gè)目標(biāo)端口以線性的方式, 使用單獨(dú)的使用單獨(dú)的connect()調(diào)用,可以通過(guò)同時(shí)打開(kāi)多個(gè)調(diào)用,可以通過(guò)同時(shí)打開(kāi)多個(gè) 套接字,從而加速掃描。這種掃描方法的缺點(diǎn)是會(huì)套接字,從而加速掃描。這種掃描方法的缺點(diǎn)是會(huì) 在目標(biāo)主機(jī)的日志記錄中留下痕跡,易被發(fā)現(xiàn),并在目標(biāo)主機(jī)的日志記

23、錄中留下痕跡,易被發(fā)現(xiàn),并 且數(shù)據(jù)包會(huì)被過(guò)濾掉。目標(biāo)主機(jī)的且數(shù)據(jù)包會(huì)被過(guò)濾掉。目標(biāo)主機(jī)的logs文件會(huì)顯示文件會(huì)顯示 一連串的連接和連接出錯(cuò)的服務(wù)信息,并且能很快一連串的連接和連接出錯(cuò)的服務(wù)信息,并且能很快 地使它關(guān)閉。圖地使它關(guān)閉。圖3-10是是TCP connect掃描的一個(gè)程掃描的一個(gè)程 序簡(jiǎn)單流程圖。序簡(jiǎn)單流程圖。 圖圖3-10 TCP connect掃描程序簡(jiǎn)單流程掃描程序簡(jiǎn)單流程 下面是一個(gè)簡(jiǎn)單的端口掃描器的源代碼中的主函數(shù)下面是一個(gè)簡(jiǎn)單的端口掃描器的源代碼中的主函數(shù) 部分,程序清單如下所示:部分,程序清單如下所示: int main(intargc,char*argv) int

24、probeport=0; struct hostent host;/*這里定義這里定義socket主機(jī)結(jié)構(gòu)主機(jī)結(jié)構(gòu)*/ int err,I,net; struct sockaddr_in sa;/*socket地址結(jié)構(gòu)地址結(jié)構(gòu)*/ if(argc!=2) printf(用法:用法: s hostnamen,argv0; exit(1); for(I=1;Ih_addr,sizeof sa.sin_addr); else herror(argv1); exit(2); sa.sin_port = htons(i);/*本次掃描的端口號(hào)本次掃描的端口號(hào)*/ net = socket(AF_INET

25、,SOCK_STREAM,0); /*建立一個(gè)建立一個(gè)socket套接字套接字 */ if(net0) perror(nsocket); exit(2); err = connect(net,(struct sockaddr) /*本連接到本端口本連接到本端口*/ if(err0) printf(%s %-5d %sr,argv1,I,strerror(errno); /*如果端口關(guān)閉則顯示如果端口關(guān)閉則顯示*/ fflush(stdout); else printf(%s %-5d accepted.n,argv1,i); /*開(kāi)放的端口顯示開(kāi)放的端口顯示*/ if(shutdown(net

26、,2)0 perror(nshutdown); exit(2); close(net);/*關(guān)閉連接關(guān)閉連接*/ printf(r); fflush(stdout); return(0); 編譯后運(yùn)行,假設(shè)輸出結(jié)果如下:編譯后運(yùn)行,假設(shè)輸出結(jié)果如下: target.host7 accepted target.host9 accepted target.host13 accepted target.host19 accepted target.host21 accepted target.host23 accepted target.host25 accepted target.host37 a

27、ccepted target.host79 accepted target.host80 accepted target.host110 accepted 從上面的掃描結(jié)果可以看出,這臺(tái)主機(jī)提供了端口從上面的掃描結(jié)果可以看出,這臺(tái)主機(jī)提供了端口 21(FTP)、)、23(Telnet)、)、25(SMTP)和和80 (WWW)等服務(wù)。鑒于等服務(wù)。鑒于TCP/IP協(xié)議和客戶協(xié)議和客戶/服務(wù)服務(wù) 器模式的實(shí)現(xiàn)方式,目標(biāo)主機(jī)通常必須響應(yīng)這種掃器模式的實(shí)現(xiàn)方式,目標(biāo)主機(jī)通常必須響應(yīng)這種掃 描,除非對(duì)被掃描的那個(gè)端口的數(shù)據(jù)包進(jìn)行過(guò)濾。描,除非對(duì)被掃描的那個(gè)端口的數(shù)據(jù)包進(jìn)行過(guò)濾。 目標(biāo)主機(jī)惟一可以保護(hù)自己

28、的只能是記錄下連接請(qǐng)目標(biāo)主機(jī)惟一可以保護(hù)自己的只能是記錄下連接請(qǐng) 求發(fā)起主機(jī)的求發(fā)起主機(jī)的IP地址。地址。 TCP通信雙方是使用通信雙方是使用3次握手來(lái)建立次握手來(lái)建立TCP連接。申連接。申 請(qǐng)建立連接的客戶端需要發(fā)送一個(gè)請(qǐng)建立連接的客戶端需要發(fā)送一個(gè)SYN數(shù)據(jù)報(bào)文給數(shù)據(jù)報(bào)文給 服務(wù)端,服務(wù)端會(huì)回復(fù)服務(wù)端,服務(wù)端會(huì)回復(fù)ACK數(shù)據(jù)報(bào)文。半開(kāi)放掃數(shù)據(jù)報(bào)文。半開(kāi)放掃 描就是利用描就是利用3次握手的弱點(diǎn)來(lái)實(shí)現(xiàn)的。掃描器向遠(yuǎn)次握手的弱點(diǎn)來(lái)實(shí)現(xiàn)的。掃描器向遠(yuǎn) 程主機(jī)的端口發(fā)送一個(gè)請(qǐng)求連接的程主機(jī)的端口發(fā)送一個(gè)請(qǐng)求連接的SYN數(shù)據(jù)報(bào)文,數(shù)據(jù)報(bào)文, 如果沒(méi)有收到目標(biāo)主機(jī)的如果沒(méi)有收到目標(biāo)主機(jī)的SYN/ACK確

29、認(rèn)報(bào)文,而確認(rèn)報(bào)文,而 是是RST數(shù)據(jù)報(bào)文,就說(shuō)明遠(yuǎn)程主機(jī)的這個(gè)端口沒(méi)有數(shù)據(jù)報(bào)文,就說(shuō)明遠(yuǎn)程主機(jī)的這個(gè)端口沒(méi)有 打開(kāi)。而如果收到遠(yuǎn)程主機(jī)的打開(kāi)。而如果收到遠(yuǎn)程主機(jī)的SYN/ACK應(yīng)答,則應(yīng)答,則 說(shuō)明遠(yuǎn)程主機(jī)端口開(kāi)放。掃描器在收到遠(yuǎn)程主機(jī)的說(shuō)明遠(yuǎn)程主機(jī)端口開(kāi)放。掃描器在收到遠(yuǎn)程主機(jī)的 SYN/ACK后,不會(huì)再回復(fù)自己的后,不會(huì)再回復(fù)自己的ACK應(yīng)答,這樣,應(yīng)答,這樣, 3次握手并沒(méi)有完成,正常的次握手并沒(méi)有完成,正常的TCP連接無(wú)法建立,連接無(wú)法建立, 3.2.2 TCP SYN掃描掃描 因此這個(gè)掃描信息不會(huì)被記入系統(tǒng)日志。這種掃描因此這個(gè)掃描信息不會(huì)被記入系統(tǒng)日志。這種掃描 技術(shù)一般不會(huì)在目

30、標(biāo)計(jì)算機(jī)上留下記錄。技術(shù)一般不會(huì)在目標(biāo)計(jì)算機(jī)上留下記錄。TCP SYN掃描建立連接成功(目標(biāo)端口開(kāi)放)如圖掃描建立連接成功(目標(biāo)端口開(kāi)放)如圖3-11 所示。所示。 TCP SYN掃描建立未連接成功(目標(biāo)端口關(guān)閉)掃描建立未連接成功(目標(biāo)端口關(guān)閉) 如圖如圖3-12所示。所示。 TCP SYN掃描的優(yōu)點(diǎn)是比掃描的優(yōu)點(diǎn)是比TCP connect掃描更隱蔽,掃描更隱蔽, Server端可能不會(huì)留下日志記錄。其缺點(diǎn)是在大部端可能不會(huì)留下日志記錄。其缺點(diǎn)是在大部 分操作系統(tǒng)下,掃描主機(jī)需要構(gòu)造適用于這種掃描分操作系統(tǒng)下,掃描主機(jī)需要構(gòu)造適用于這種掃描 的的IP包,而通常情況下,構(gòu)造自己的包,而通常情況

31、下,構(gòu)造自己的SYN數(shù)據(jù)包必?cái)?shù)據(jù)包必 須要有須要有root權(quán)限。權(quán)限。 圖圖3-11 TCP SYN掃描建立連接成功掃描建立連接成功 圖圖3-12 TCP SYN掃描建立連接未成功掃描建立連接未成功 秘密掃描是一種不被審計(jì)工具所檢測(cè)的掃描技術(shù)。秘密掃描是一種不被審計(jì)工具所檢測(cè)的掃描技術(shù)。 它通常用于在通過(guò)普通的防火墻或路由器的篩選它通常用于在通過(guò)普通的防火墻或路由器的篩選 (filtering)時(shí)隱藏自己。時(shí)隱藏自己。 秘密掃描能躲避秘密掃描能躲避IDS、防火墻、包過(guò)濾器和日志審防火墻、包過(guò)濾器和日志審 計(jì),從而獲取目標(biāo)端口的開(kāi)放或關(guān)閉的信息。由于計(jì),從而獲取目標(biāo)端口的開(kāi)放或關(guān)閉的信息。由于

32、沒(méi)有包含沒(méi)有包含TCP 3次握手協(xié)議的任何部分,所以無(wú)法次握手協(xié)議的任何部分,所以無(wú)法 被記錄下來(lái),比半連接掃描更為隱蔽。但是這種掃被記錄下來(lái),比半連接掃描更為隱蔽。但是這種掃 描的缺點(diǎn)是掃描結(jié)果的不可靠性會(huì)增加,而且掃描描的缺點(diǎn)是掃描結(jié)果的不可靠性會(huì)增加,而且掃描 主機(jī)也需要自己構(gòu)造主機(jī)也需要自己構(gòu)造IP包?,F(xiàn)有的秘密掃描有包?,F(xiàn)有的秘密掃描有TCP FIN掃描、掃描、TCP ACK掃描、掃描、NULL掃描、掃描、XMAS掃掃 描和描和SYN/ACK掃描等。掃描等。 3.2.3 秘密掃描秘密掃描 (1) TCP FIN掃描掃描 很多的過(guò)濾設(shè)備能過(guò)濾很多的過(guò)濾設(shè)備能過(guò)濾SYN數(shù)據(jù)報(bào)文,但是允許

33、數(shù)據(jù)報(bào)文,但是允許 FIN數(shù)據(jù)報(bào)文通過(guò)。因?yàn)閿?shù)據(jù)報(bào)文通過(guò)。因?yàn)镕IN是中斷連接的數(shù)據(jù)報(bào)是中斷連接的數(shù)據(jù)報(bào) 文,所以很多日志系統(tǒng)都不記錄這樣的數(shù)據(jù)報(bào)文。文,所以很多日志系統(tǒng)都不記錄這樣的數(shù)據(jù)報(bào)文。 利用這一點(diǎn)的掃描就是利用這一點(diǎn)的掃描就是TCP FIN掃描。掃描。TCP FIN掃掃 描的原理是掃描主機(jī)向目標(biāo)主機(jī)發(fā)送描的原理是掃描主機(jī)向目標(biāo)主機(jī)發(fā)送FIN數(shù)據(jù)包來(lái)數(shù)據(jù)包來(lái) 探聽(tīng)端口,若探聽(tīng)端口,若FIN數(shù)據(jù)包到達(dá)的是一個(gè)打開(kāi)的端口,數(shù)據(jù)包到達(dá)的是一個(gè)打開(kāi)的端口, 數(shù)據(jù)包則被簡(jiǎn)單地丟掉,并不返回任何信息,如圖數(shù)據(jù)包則被簡(jiǎn)單地丟掉,并不返回任何信息,如圖 3-13所示。所示。 當(dāng)當(dāng)FIN數(shù)據(jù)包到達(dá)一個(gè)關(guān)

34、閉的端口,數(shù)據(jù)包到達(dá)一個(gè)關(guān)閉的端口,TCP會(huì)把它判會(huì)把它判 斷成是錯(cuò)誤,數(shù)據(jù)包會(huì)被丟掉,并且返回一個(gè)斷成是錯(cuò)誤,數(shù)據(jù)包會(huì)被丟掉,并且返回一個(gè)RST 數(shù)據(jù)包,如圖數(shù)據(jù)包,如圖3-14所示。所示。 圖圖3-13 TCP FIN掃描建立連接成功掃描建立連接成功 圖圖3-14 TCP FIN掃描建立連接未成功掃描建立連接未成功 這種方法與系統(tǒng)的這種方法與系統(tǒng)的TCP/IP實(shí)現(xiàn)有一定的關(guān)系,并實(shí)現(xiàn)有一定的關(guān)系,并 不是可以應(yīng)用在所有的系統(tǒng)上,有的系統(tǒng)不管端口不是可以應(yīng)用在所有的系統(tǒng)上,有的系統(tǒng)不管端口 是否打開(kāi),都回復(fù)是否打開(kāi),都回復(fù)RST,這樣,這種掃描方法就不這樣,這種掃描方法就不 適用了。但這種方

35、法可以用來(lái)區(qū)別操作系統(tǒng)是適用了。但這種方法可以用來(lái)區(qū)別操作系統(tǒng)是 UNIX還是還是Windows。 這種方法與系統(tǒng)的這種方法與系統(tǒng)的TCP/IP實(shí)現(xiàn)有一定的關(guān)系,并實(shí)現(xiàn)有一定的關(guān)系,并 不是可以應(yīng)用在所有的系統(tǒng)上,有的系統(tǒng)不管端口不是可以應(yīng)用在所有的系統(tǒng)上,有的系統(tǒng)不管端口 是否打開(kāi),都回復(fù)是否打開(kāi),都回復(fù)RST,這樣,這種掃描方法就不這樣,這種掃描方法就不 適用了。但這種方法可以用來(lái)區(qū)別操作系統(tǒng)是適用了。但這種方法可以用來(lái)區(qū)別操作系統(tǒng)是 UNIX還是還是Windows。 (2) TCP ACK掃描掃描 掃描主機(jī)向目標(biāo)主機(jī)發(fā)送掃描主機(jī)向目標(biāo)主機(jī)發(fā)送ACK數(shù)據(jù)包。根據(jù)返回?cái)?shù)據(jù)包。根據(jù)返回 的的R

36、ST數(shù)據(jù)包有兩種方法可以得到端口的信息。方數(shù)據(jù)包有兩種方法可以得到端口的信息。方 法一是:法一是: 若返回的若返回的RST數(shù)據(jù)包的數(shù)據(jù)包的TTL值小于或等值小于或等 于于64,則端口開(kāi)放,反之端口關(guān)閉,如圖,則端口開(kāi)放,反之端口關(guān)閉,如圖3-15所示。所示。 圖圖3-15 TCP ACK掃描建立連接成功掃描建立連接成功 方法二是:方法二是: 若返回的若返回的RST數(shù)據(jù)包的數(shù)據(jù)包的WINDOW值非值非 零,則端口開(kāi)放,反之端口關(guān)閉,如圖零,則端口開(kāi)放,反之端口關(guān)閉,如圖3-16所示。所示。 圖圖3-16 TCP ACK掃描建立連接成功掃描建立連接成功 (3) NULL掃描掃描 掃描主機(jī)將掃描主機(jī)

37、將TCP數(shù)據(jù)包中的數(shù)據(jù)包中的ACK(確認(rèn))、確認(rèn))、FIN (結(jié)束連接)、結(jié)束連接)、RST(重新設(shè)定連接)、重新設(shè)定連接)、SYN(連連 接同步化要求)、接同步化要求)、URG(緊急)、緊急)、PSH(接收端將接收端將 數(shù)據(jù)轉(zhuǎn)由應(yīng)用處理數(shù)據(jù)轉(zhuǎn)由應(yīng)用處理)標(biāo)志位置空后(保留的標(biāo)志位置空后(保留的RES1和和 RES2對(duì)掃描的結(jié)果沒(méi)有任何影響)發(fā)送給目標(biāo)主對(duì)掃描的結(jié)果沒(méi)有任何影響)發(fā)送給目標(biāo)主 機(jī)。若目標(biāo)端口開(kāi)放,目標(biāo)主機(jī)將不返回任何信息,機(jī)。若目標(biāo)端口開(kāi)放,目標(biāo)主機(jī)將不返回任何信息, 如圖如圖3-17所示。所示。 若目標(biāo)主機(jī)返回若目標(biāo)主機(jī)返回RST信息,則表示端口關(guān)閉,如圖信息,則表示端口關(guān)閉

38、,如圖 3-18所示。所示。 圖圖3-17 NULL掃描建立連接成功掃描建立連接成功 圖圖3-18 NULL掃描建立連接未成功掃描建立連接未成功 (4) XMAS掃描掃描 XMAS掃描原理和掃描原理和NULL掃描的類似,將掃描的類似,將TCP數(shù)據(jù)數(shù)據(jù) 包中的包中的ACK、FIN、RST、SYN、URG、PSH標(biāo)志標(biāo)志 位置位置1后發(fā)送給目標(biāo)主機(jī)。在目標(biāo)端口開(kāi)放的情況后發(fā)送給目標(biāo)主機(jī)。在目標(biāo)端口開(kāi)放的情況 下,目標(biāo)主機(jī)將不返回任何信息,如圖下,目標(biāo)主機(jī)將不返回任何信息,如圖3-19所示。所示。 圖圖3-19 XMAS掃描建立連接成功掃描建立連接成功 若目標(biāo)端口關(guān)閉,則目標(biāo)主機(jī)將返回若目標(biāo)端口關(guān)閉

39、,則目標(biāo)主機(jī)將返回RST信息,如信息,如 圖圖3-20所示。所示。 圖圖3-20 XMAS掃描建立連接未成功掃描建立連接未成功 這里要說(shuō)明的是,這里要說(shuō)明的是,MS Windows、Cisco、BSDI、 HP/UX、MVS以及以及IRIX等操作系統(tǒng)如果通過(guò)等操作系統(tǒng)如果通過(guò)TCP FIN、XMAS以及以及NULL掃描等方式進(jìn)行掃描的話,掃描等方式進(jìn)行掃描的話, 對(duì)于打開(kāi)的端口也會(huì)發(fā)送對(duì)于打開(kāi)的端口也會(huì)發(fā)送RST數(shù)據(jù)包,即使所有端數(shù)據(jù)包,即使所有端 口都關(guān)閉,也可以進(jìn)行應(yīng)答。根據(jù)制作口都關(guān)閉,也可以進(jìn)行應(yīng)答。根據(jù)制作Nmap的的 Fyodor的方案,使用的方案,使用FIN、XMAS或者或者NU

40、LL方式方式 進(jìn)行掃描的話,如果所有端口都關(guān)閉,那么就可以進(jìn)行掃描的話,如果所有端口都關(guān)閉,那么就可以 進(jìn)行進(jìn)行TCP SYN掃描。如果出現(xiàn)打開(kāi)的端口,操作掃描。如果出現(xiàn)打開(kāi)的端口,操作 系統(tǒng)就會(huì)知道是屬于系統(tǒng)就會(huì)知道是屬于MS Windows、Cisco、BSDI、 HP/UX、MVS以及以及IRIX中的哪類了。中的哪類了。 (5) SYN/ACK掃描掃描 這種掃描故意忽略這種掃描故意忽略TCP的的3次握手。原來(lái)正常的次握手。原來(lái)正常的 TCP連接可以簡(jiǎn)化為連接可以簡(jiǎn)化為SYN- SYN /ACK-ACK形式的形式的 3次握手來(lái)進(jìn)行。這里,掃描主機(jī)不向目標(biāo)主機(jī)發(fā)次握手來(lái)進(jìn)行。這里,掃描主機(jī)不

41、向目標(biāo)主機(jī)發(fā) 送送SYN數(shù)據(jù)包,而先發(fā)送數(shù)據(jù)包,而先發(fā)送SYN/ACK數(shù)據(jù)包。目標(biāo)數(shù)據(jù)包。目標(biāo) 主機(jī)將報(bào)錯(cuò),并判斷為一次錯(cuò)誤的連接。若目標(biāo)端主機(jī)將報(bào)錯(cuò),并判斷為一次錯(cuò)誤的連接。若目標(biāo)端 口開(kāi)放,目標(biāo)主機(jī)將返回口開(kāi)放,目標(biāo)主機(jī)將返回RST信息,如圖信息,如圖3-21所示。所示。 圖圖3-21 SYN/ACK掃描建立連接成功掃描建立連接成功 若目標(biāo)端口關(guān)閉,目標(biāo)主機(jī)將不返回任何信息,數(shù)若目標(biāo)端口關(guān)閉,目標(biāo)主機(jī)將不返回任何信息,數(shù) 據(jù)包會(huì)被丟掉,如圖據(jù)包會(huì)被丟掉,如圖3-22所示。所示。 圖圖3-22 SYN/ACK掃描建立連接未成功掃描建立連接未成功 UDP是無(wú)連接不可靠的協(xié)議,因此,是無(wú)連接不可

42、靠的協(xié)議,因此,UDP端口掃描端口掃描 也是不可靠的。也是不可靠的。 (1) UDP ICMP端口不可到達(dá)掃描端口不可到達(dá)掃描 掃描主機(jī)發(fā)送掃描主機(jī)發(fā)送UDP數(shù)據(jù)包給目標(biāo)主機(jī)的數(shù)據(jù)包給目標(biāo)主機(jī)的UDP端口,端口, 等待目標(biāo)端口的端口不可到達(dá)等待目標(biāo)端口的端口不可到達(dá) (ICMP_PORT_UNREACH)的的ICMP信息。若超信息。若超 時(shí)也未能接收到端口不可到達(dá)的時(shí)也未能接收到端口不可到達(dá)的ICMP信息,則表信息,則表 明目標(biāo)端口可能處于監(jiān)聽(tīng)的狀態(tài)。建立連接如圖明目標(biāo)端口可能處于監(jiān)聽(tīng)的狀態(tài)。建立連接如圖3- 23所示。所示。 3.3 其他端口掃描技術(shù)其他端口掃描技術(shù) 3.3.1 UDP掃描掃

43、描 圖圖3-23 UDP ICMP掃描建立連接成功掃描建立連接成功 若這個(gè)若這個(gè)ICMP信息及時(shí)接收到,則表明目標(biāo)端口處信息及時(shí)接收到,則表明目標(biāo)端口處 于關(guān)閉的狀態(tài),如圖于關(guān)閉的狀態(tài),如圖3-24所示。所示。 圖圖3-24 UDP ICMP掃描建立連接未成功掃描建立連接未成功 這種掃描方法可以掃描非這種掃描方法可以掃描非TCP端口,避免了端口,避免了TCP的的 入侵檢測(cè),但是由于是基于簡(jiǎn)單的入侵檢測(cè),但是由于是基于簡(jiǎn)單的UDP協(xié)議,掃描協(xié)議,掃描 相對(duì)困難,速度很慢而且需要相對(duì)困難,速度很慢而且需要root權(quán)限。同時(shí)這種權(quán)限。同時(shí)這種 方法十分不可靠。方法十分不可靠。 (2) UDP rec

44、vfrom()和和write()掃描掃描 當(dāng)非當(dāng)非root用戶不能直接讀到端口不可到達(dá)錯(cuò)誤時(shí),用戶不能直接讀到端口不可到達(dá)錯(cuò)誤時(shí), Linux能間接地在它們到達(dá)時(shí)通知用戶。比如,對(duì)能間接地在它們到達(dá)時(shí)通知用戶。比如,對(duì) 一個(gè)關(guān)閉的端口的第二個(gè)一個(gè)關(guān)閉的端口的第二個(gè)write()調(diào)用將失敗。在非調(diào)用將失敗。在非 阻塞的阻塞的UDP套接字上調(diào)用套接字上調(diào)用recvfrom()時(shí),如果時(shí),如果 ICMP出錯(cuò)還沒(méi)有到達(dá)時(shí)會(huì)返回出錯(cuò)還沒(méi)有到達(dá)時(shí)會(huì)返回eagain(重試)。重試)。 如果如果ICMP到達(dá)時(shí),將返回到達(dá)時(shí),將返回econnrefused(連接被連接被 拒絕),這樣就能查看目標(biāo)端口是否打開(kāi)。拒

45、絕),這樣就能查看目標(biāo)端口是否打開(kāi)。 dumb主機(jī)與一般的主機(jī)相比,網(wǎng)絡(luò)接收或發(fā)出通主機(jī)與一般的主機(jī)相比,網(wǎng)絡(luò)接收或發(fā)出通 信量很少,是參與配合掃描的第三方主機(jī)。信量很少,是參與配合掃描的第三方主機(jī)。 首先掃描主機(jī)首先掃描主機(jī)A向向dumb主機(jī)主機(jī)B發(fā)送連續(xù)的發(fā)送連續(xù)的ping數(shù)據(jù)數(shù)據(jù) 包,包,dumb主機(jī)主機(jī)B接收到后,會(huì)返回包含有接收到后,會(huì)返回包含有ID頭的頭的 順序數(shù)據(jù)包,每一順序數(shù)據(jù)包的順序數(shù)據(jù)包,每一順序數(shù)據(jù)包的ID頭的值會(huì)順序增頭的值會(huì)順序增 1。掃描主機(jī)。掃描主機(jī)A為了測(cè)試出目標(biāo)主機(jī)為了測(cè)試出目標(biāo)主機(jī)C任一端口任一端口 (165 535)是開(kāi)放還是關(guān)閉,就會(huì)使用)是開(kāi)放還是關(guān)閉

46、,就會(huì)使用dumb主主 機(jī)機(jī)B的源地址向目標(biāo)主機(jī)的源地址向目標(biāo)主機(jī)C的該端口發(fā)送欺騙性的的該端口發(fā)送欺騙性的 SYN數(shù)據(jù)包。此時(shí),目標(biāo)主機(jī)數(shù)據(jù)包。此時(shí),目標(biāo)主機(jī)C向向dumb主機(jī)主機(jī)B發(fā)送發(fā)送 的數(shù)據(jù)包有兩種可能的結(jié)果:的數(shù)據(jù)包有兩種可能的結(jié)果: 3.3.2 IP頭信息頭信息dumb掃描掃描 (1) SYN/ACK 若目標(biāo)主機(jī)若目標(biāo)主機(jī)C向向dumb主機(jī)主機(jī)B響應(yīng)的是響應(yīng)的是SYN/ACK, 則表明目標(biāo)端口處于監(jiān)聽(tīng)(打開(kāi))狀態(tài),則表明目標(biāo)端口處于監(jiān)聽(tīng)(打開(kāi))狀態(tài),dumb主主 機(jī)機(jī)B將返回將返回RST響應(yīng),連接自動(dòng)被切斷。響應(yīng),連接自動(dòng)被切斷。 (2) RST/ACK 若目標(biāo)主機(jī)若目標(biāo)主機(jī)C向

47、向dumb主機(jī)主機(jī)B響應(yīng)的是響應(yīng)的是RST/ACK, 則表明端口處于關(guān)閉狀態(tài),則表明端口處于關(guān)閉狀態(tài),dumb主機(jī)主機(jī)B會(huì)忽略發(fā)會(huì)忽略發(fā) 送的數(shù)據(jù)包而不作任何響應(yīng)。送的數(shù)據(jù)包而不作任何響應(yīng)。 掃描主機(jī)從后面連續(xù)的響應(yīng)掃描主機(jī)從后面連續(xù)的響應(yīng)ping數(shù)據(jù)包的數(shù)據(jù)包的ID頭的值,頭的值, 可以判斷目標(biāo)端口的開(kāi)放與否。若可以判斷目標(biāo)端口的開(kāi)放與否。若ID頭的值不是遞頭的值不是遞 增增1,而是大于,而是大于1,則表明目標(biāo)端口是處于監(jiān)聽(tīng)(開(kāi),則表明目標(biāo)端口是處于監(jiān)聽(tīng)(開(kāi) 放)狀態(tài)的;若放)狀態(tài)的;若ID頭的值規(guī)律的遞增頭的值規(guī)律的遞增1,則表明目,則表明目 標(biāo)端口是關(guān)閉的。標(biāo)端口是關(guān)閉的。 IP分段掃描

48、不能算是新方法,只是其他技術(shù)的變化。分段掃描不能算是新方法,只是其他技術(shù)的變化。 掃描主機(jī)并不是直接發(fā)送掃描主機(jī)并不是直接發(fā)送TCP探測(cè)數(shù)據(jù)包,而是將探測(cè)數(shù)據(jù)包,而是將 數(shù)據(jù)包分成兩個(gè)較小的數(shù)據(jù)包分成兩個(gè)較小的IP段。這樣就將一個(gè)段。這樣就將一個(gè)TCP頭頭 分成好幾個(gè)數(shù)據(jù)包,從而過(guò)濾器就很難探測(cè)到,掃分成好幾個(gè)數(shù)據(jù)包,從而過(guò)濾器就很難探測(cè)到,掃 描就可以在不被發(fā)現(xiàn)的情況下進(jìn)行。但是需要注意描就可以在不被發(fā)現(xiàn)的情況下進(jìn)行。但是需要注意 的是,一些程序在處理這些小數(shù)據(jù)包時(shí)會(huì)有些麻煩,的是,一些程序在處理這些小數(shù)據(jù)包時(shí)會(huì)有些麻煩, 并且不同的操作系統(tǒng)在處理這個(gè)數(shù)據(jù)包的時(shí)候,通并且不同的操作系統(tǒng)在處理

49、這個(gè)數(shù)據(jù)包的時(shí)候,通 常會(huì)出現(xiàn)問(wèn)題。常會(huì)出現(xiàn)問(wèn)題。 3.3.3 IP分段掃描分段掃描 隨著防火墻的廣泛應(yīng)用,普通的掃描很難穿過(guò)防火隨著防火墻的廣泛應(yīng)用,普通的掃描很難穿過(guò)防火 墻去掃描受防火墻保護(hù)的網(wǎng)絡(luò)。即使掃描能穿過(guò)防墻去掃描受防火墻保護(hù)的網(wǎng)絡(luò)。即使掃描能穿過(guò)防 火墻,掃描的行為仍然有可能會(huì)被防火墻記錄下來(lái)?;饓?,掃描的行為仍然有可能會(huì)被防火墻記錄下來(lái)。 如果掃描是對(duì)非連續(xù)性端口、源地址不一致、時(shí)間如果掃描是對(duì)非連續(xù)性端口、源地址不一致、時(shí)間 間隔很長(zhǎng)且沒(méi)有規(guī)律的掃描的話,這些掃描的記錄間隔很長(zhǎng)且沒(méi)有規(guī)律的掃描的話,這些掃描的記錄 就會(huì)淹沒(méi)在其他眾多雜亂的日志內(nèi)容中。使用慢速就會(huì)淹沒(méi)在其他眾

50、多雜亂的日志內(nèi)容中。使用慢速 掃描的目的也就是這樣,騙過(guò)防火墻和入侵檢測(cè)系掃描的目的也就是這樣,騙過(guò)防火墻和入侵檢測(cè)系 統(tǒng)而收集信息。雖然掃描所用的時(shí)間較長(zhǎng),但這是統(tǒng)而收集信息。雖然掃描所用的時(shí)間較長(zhǎng),但這是 一種比較難以被發(fā)現(xiàn)的掃描。一種比較難以被發(fā)現(xiàn)的掃描。 3.3.4 慢速掃描慢速掃描 亂序掃描也是一種常見(jiàn)的掃描技術(shù),掃描器掃描的亂序掃描也是一種常見(jiàn)的掃描技術(shù),掃描器掃描的 時(shí)候不是進(jìn)行有序的掃描,掃描端口號(hào)的順序是隨時(shí)候不是進(jìn)行有序的掃描,掃描端口號(hào)的順序是隨 機(jī)產(chǎn)生的,每次進(jìn)行掃描的順序都完全不一樣,這機(jī)產(chǎn)生的,每次進(jìn)行掃描的順序都完全不一樣,這 種方式能有效地欺騙某些入侵檢測(cè)系統(tǒng)而

51、不會(huì)被發(fā)種方式能有效地欺騙某些入侵檢測(cè)系統(tǒng)而不會(huì)被發(fā) 覺(jué)。覺(jué)。 3.3.5 亂序掃描亂序掃描 進(jìn)行掃描的方法很多,可以是手工方式,也可以利進(jìn)行掃描的方法很多,可以是手工方式,也可以利 用端口掃描軟件。在手工進(jìn)行掃描時(shí),需要熟悉各用端口掃描軟件。在手工進(jìn)行掃描時(shí),需要熟悉各 種命令,對(duì)命令執(zhí)行后的輸出進(jìn)行分析。用掃描軟種命令,對(duì)命令執(zhí)行后的輸出進(jìn)行分析。用掃描軟 件進(jìn)行掃描時(shí),可以使用許多掃描器軟件提供的分件進(jìn)行掃描時(shí),可以使用許多掃描器軟件提供的分 析數(shù)據(jù)功能。析數(shù)據(jù)功能。 3.4 端口掃描工具端口掃描工具 1. ping命令命令 ping命令經(jīng)常用來(lái)對(duì)命令經(jīng)常用來(lái)對(duì)TCP/IP網(wǎng)絡(luò)進(jìn)行診斷。

52、通過(guò)向網(wǎng)絡(luò)進(jìn)行診斷。通過(guò)向 目標(biāo)計(jì)算機(jī)發(fā)送一個(gè)數(shù)據(jù)包,讓它將這個(gè)數(shù)據(jù)包返目標(biāo)計(jì)算機(jī)發(fā)送一個(gè)數(shù)據(jù)包,讓它將這個(gè)數(shù)據(jù)包返 回,如果返回的數(shù)據(jù)包和發(fā)送的數(shù)據(jù)包一致,那就回,如果返回的數(shù)據(jù)包和發(fā)送的數(shù)據(jù)包一致,那就 表明表明ping命令成功了。通過(guò)這種方式對(duì)返回的數(shù)據(jù)命令成功了。通過(guò)這種方式對(duì)返回的數(shù)據(jù) 進(jìn)行分析,就能判斷目標(biāo)計(jì)算機(jī)是否在線,或者這進(jìn)行分析,就能判斷目標(biāo)計(jì)算機(jī)是否在線,或者這 個(gè)數(shù)據(jù)包從發(fā)送到返回需要多少時(shí)間。個(gè)數(shù)據(jù)包從發(fā)送到返回需要多少時(shí)間。 ping命令的基本格式:命令的基本格式: ping hostname 。ping命令命令 可以帶一些參數(shù),常用的兩個(gè)參數(shù)是可以帶一些參數(shù),常用

53、的兩個(gè)參數(shù)是“-n”和和“-l”。 3.4.1 常用網(wǎng)絡(luò)掃描命令常用網(wǎng)絡(luò)掃描命令 對(duì)目標(biāo)主機(jī)執(zhí)行對(duì)目標(biāo)主機(jī)執(zhí)行ping命令,但是沒(méi)有收到目標(biāo)主機(jī)命令,但是沒(méi)有收到目標(biāo)主機(jī) 返回的任何信息返回的任何信息,并不一定表示這個(gè)并不一定表示這個(gè)IP不存在或者不存在或者 沒(méi)有連接到網(wǎng)絡(luò)上,因?yàn)閷?duì)方主機(jī)可能做了限制,沒(méi)有連接到網(wǎng)絡(luò)上,因?yàn)閷?duì)方主機(jī)可能做了限制, 比如安裝了防火墻,因此,比如安裝了防火墻,因此,ping不通不表示不能使不通不表示不能使 用用FTP或者或者Telnet連接。連接。ping得到的結(jié)果包括字節(jié)得到的結(jié)果包括字節(jié) 數(shù)、反應(yīng)時(shí)間以及生存時(shí)間。數(shù)、反應(yīng)時(shí)間以及生存時(shí)間。ping程序通過(guò)在程

54、序通過(guò)在 ICMP報(bào)文數(shù)據(jù)中存放發(fā)送請(qǐng)求的時(shí)間來(lái)計(jì)算返回報(bào)文數(shù)據(jù)中存放發(fā)送請(qǐng)求的時(shí)間來(lái)計(jì)算返回 時(shí)間。當(dāng)應(yīng)答返回時(shí),根據(jù)當(dāng)時(shí)時(shí)間減去報(bào)文中存時(shí)間。當(dāng)應(yīng)答返回時(shí),根據(jù)當(dāng)時(shí)時(shí)間減去報(bào)文中存 放的發(fā)送時(shí)間就得到反應(yīng)時(shí)間了。生存時(shí)間放的發(fā)送時(shí)間就得到反應(yīng)時(shí)間了。生存時(shí)間 (TTL),),本來(lái)就存放在本來(lái)就存放在IP數(shù)據(jù)包的頭部,直接就數(shù)據(jù)包的頭部,直接就 能夠獲取。能夠獲取。 2. tracert命令命令 Windows下下tracert命令的作用是跟蹤一個(gè)消息從一命令的作用是跟蹤一個(gè)消息從一 臺(tái)計(jì)算機(jī)到另一臺(tái)計(jì)算機(jī)所走的路徑,它可以用來(lái)臺(tái)計(jì)算機(jī)到另一臺(tái)計(jì)算機(jī)所走的路徑,它可以用來(lái) 確定某個(gè)主機(jī)的位置

55、。確定某個(gè)主機(jī)的位置。 圖圖3-25 Windows下使用下使用tracert命令命令 3. net命令系列命令系列 很多很多Windows 2000的網(wǎng)絡(luò)命令都是以的網(wǎng)絡(luò)命令都是以net開(kāi)頭的。開(kāi)頭的。 利用利用net開(kāi)頭的命令,可以實(shí)現(xiàn)很多的網(wǎng)絡(luò)管理功開(kāi)頭的命令,可以實(shí)現(xiàn)很多的網(wǎng)絡(luò)管理功 能。下面介紹幾個(gè)比較常用的能。下面介紹幾個(gè)比較常用的net命令。命令。 net start server命令,可以用來(lái)啟動(dòng)服務(wù)器。命令,可以用來(lái)啟動(dòng)服務(wù)器。 net use命令,可以通過(guò)使用這個(gè)命令將計(jì)算機(jī)與共命令,可以通過(guò)使用這個(gè)命令將計(jì)算機(jī)與共 享資源連接或斷開(kāi),或者顯示關(guān)于計(jì)算機(jī)連接的信享資源連接或

56、斷開(kāi),或者顯示關(guān)于計(jì)算機(jī)連接的信 息。息。 net user命令,是用來(lái)添加或修改賬戶或者顯示用命令,是用來(lái)添加或修改賬戶或者顯示用 戶賬戶信息。戶賬戶信息。 4. rusers和和finger命令命令 這兩個(gè)都是這兩個(gè)都是UNIX命令。通過(guò)這兩個(gè)命令,可以收命令。通過(guò)這兩個(gè)命令,可以收 集目標(biāo)計(jì)算機(jī)上有關(guān)用戶的消息。使用集目標(biāo)計(jì)算機(jī)上有關(guān)用戶的消息。使用rusers命令,命令, 會(huì)產(chǎn)生類似下面的結(jié)果:會(huì)產(chǎn)生類似下面的結(jié)果: gajake : ttyp1 Nov 13 15: 42 7: 30 (remote) root : ttyp2 Nov 13 14: 57 7: 21 (remote)

57、 robo : ttyp3 Nov 15 01: 04 01 (remote) angel111 : ttyp4 Nov 14 23: 09 (remote) pippen : ttyp6 Nov 14 15: 05 (remote) root : ttyp5 Nov 13 16: 03 7: 52 (remote) gajake : ttyp7 Nov 14 20: 20 2: 59 (remote) dafr : ttyp15 Nov 3 20: 09 4: 55 (remote) dafr : ttyp1 Nov 14 06: 12 19: 12 (remote) dafr : ttyp

58、19 Nov 14 06: 12 19: 02 (remote) 最左邊的是通過(guò)遠(yuǎn)程登錄的用戶名,還包括上次登最左邊的是通過(guò)遠(yuǎn)程登錄的用戶名,還包括上次登 錄時(shí)間,使用的錄時(shí)間,使用的SHELL類型等信息。類型等信息。 使用使用finger可以產(chǎn)生類似下面的結(jié)果:可以產(chǎn)生類似下面的結(jié)果: user S00 PPP ppp-122-pm1.wiza Thu Nov 14 21: 29: 30 - still logged in user S15 PPP ppp-119-pm1.wiza Thu Nov 14 22: 16: 35 - still logged in user S04 PPP pp

59、p-121-pm1.wiza Fri Nov 15 00: 03: 22 - still logged in user S03 PPP ppp-112-pm1.wiza Thu Nov 14 22: 20: 23 - still logged in user S26 PPP ppp-124-pm1.wiza Fri Nov 15 01: 26: 49 - still logged in user S25 PPP ppp-102-pm1.wiza Thu Nov 14 23: 18: 00 - still logged in user S17 PPP ppp-115-pm1.wiza Thu N

60、ov 14 07: 45: 00 - still logged in user S-1 Sat Aug 10 15: 50: 03 - still logged in user S23 PPP ppp-103-pm1.wiza Fri Nov 15 00: 13: 53 - still logged in user S12 PPP ppp-111-pm1.wiza Wed Nov 13 16: 58: 12 - still logged in 這個(gè)命令能顯示用戶的狀態(tài)。該命令是建立在客戶這個(gè)命令能顯示用戶的狀態(tài)。該命令是建立在客戶 服務(wù)器模型之上的。用戶通過(guò)客戶端軟件向服務(wù)器服

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論