版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第第3章章 端口掃描端口掃描 3.1 端口掃描的概述端口掃描的概述 3.2 常見端口掃描技術(shù)常見端口掃描技術(shù) 3.3 其他端口掃描技術(shù)其他端口掃描技術(shù) 3.4 端口掃描工具端口掃描工具 3.5 小結(jié)小結(jié) 網(wǎng)絡(luò)出現(xiàn)故障時,人們總習(xí)慣先用網(wǎng)絡(luò)出現(xiàn)故障時,人們總習(xí)慣先用ping命令檢測目命令檢測目 標(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ò)連接狀況,黑客最常使用的一種手段就是端 口掃描。對目標(biāo)主機進(jìn)行全面的端口掃描不僅是為口掃描。對目標(biāo)主機進(jìn)行全面的端口掃描不僅是為 了確定其開放的網(wǎng)絡(luò)服務(wù),而更基本的還
2、在于確定了確定其開放的網(wǎng)絡(luò)服務(wù),而更基本的還在于確定 其是否真正處于激活狀態(tài)。其是否真正處于激活狀態(tài)。 當(dāng)然,端口掃描最大的作用是提供目標(biāo)主機網(wǎng)絡(luò)服當(dāng)然,端口掃描最大的作用是提供目標(biāo)主機網(wǎng)絡(luò)服 務(wù)的清單。務(wù)的清單。 總之,端口掃描是一種非常重要的預(yù)攻擊探測手段,總之,端口掃描是一種非常重要的預(yù)攻擊探測手段, 幾乎是黑客攻擊的通用手段。同時通過使用端口掃幾乎是黑客攻擊的通用手段。同時通過使用端口掃 描技術(shù),可以在主機或系統(tǒng)在被攻擊前得到一些警描技術(shù),可以在主機或系統(tǒng)在被攻擊前得到一些警 告和預(yù)報,盡可能在早期預(yù)測攻擊者的行為并獲得告和預(yù)報,盡可能在早期預(yù)測攻擊者的行為并獲得 一定的證據(jù),從而對攻
3、擊進(jìn)行預(yù)警或采取一定的防一定的證據(jù),從而對攻擊進(jìn)行預(yù)警或采取一定的防 御措施。御措施。 為了更好地理解端口掃描的技術(shù)細(xì)節(jié),有必要先回為了更好地理解端口掃描的技術(shù)細(xì)節(jié),有必要先回 顧一下關(guān)于顧一下關(guān)于TCP/IP以及端口的一些基本知識。對以及端口的一些基本知識。對 于端口掃描,其實現(xiàn)原理是和于端口掃描,其實現(xiàn)原理是和TCP/IP格式以及通格式以及通 信過程直接相關(guān)的;而有關(guān)信過程直接相關(guān)的;而有關(guān)TCP狀態(tài)轉(zhuǎn)換的內(nèi)容,狀態(tài)轉(zhuǎn)換的內(nèi)容, 則有助于理解后面章節(jié)的掃描技術(shù)中對操作系統(tǒng)類則有助于理解后面章節(jié)的掃描技術(shù)中對操作系統(tǒng)類 型的判斷。型的判斷。 3.1 端口掃描的概述端口掃描的概述 1. IP數(shù)
4、據(jù)報數(shù)據(jù)報 因特網(wǎng)在網(wǎng)絡(luò)層定義了標(biāo)準(zhǔn)的因特網(wǎng)在網(wǎng)絡(luò)層定義了標(biāo)準(zhǔn)的IP數(shù)據(jù)報格式和數(shù)據(jù)報格式和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)建時公開發(fā)表的一創(chuàng)建時公開發(fā)表的一 系列文檔所定義。系列文檔所定義。IP數(shù)據(jù)報被劃分成數(shù)據(jù)報被劃分成IP報頭和數(shù)據(jù)報頭和數(shù)據(jù) 區(qū),其中區(qū),其中IP報頭的具體格式如圖報頭的具體格式如圖3-1所示。所示。 3.1.1 TCP/IP相關(guān)知識相關(guān)知識 圖圖3-1 IP報頭報頭
5、2. TCP報文格式報文格式 TCP數(shù)據(jù)報文包含在數(shù)據(jù)報文包含在IP數(shù)據(jù)報中的數(shù)據(jù)部分。在數(shù)據(jù)報中的數(shù)據(jù)部分。在IP 頭部,頭部,TCP類型為類型為6。 圖圖3-2 TCP數(shù)據(jù)報格式數(shù)據(jù)報格式 3. UDP數(shù)據(jù)報格式數(shù)據(jù)報格式 UDP數(shù)據(jù)報包含于數(shù)據(jù)報包含于IP數(shù)據(jù)報中的數(shù)據(jù)部分。在數(shù)據(jù)報中的數(shù)據(jù)部分。在IP頭頭 部,部,UDP類型為類型為17。 圖圖3-3 UDP數(shù)據(jù)報格式數(shù)據(jù)報格式 4. TCP通信過程通信過程 TCP的通信過程大體分為如下幾個步驟,假設(shè)通信的通信過程大體分為如下幾個步驟,假設(shè)通信 雙方分別為主機雙方分別為主機A和主機和主機B。 主機主機A首先向主機首先向主機B發(fā)出連接請求
6、報文發(fā)出連接請求報文(SYN), 主機主機B對主機對主機A的請求發(fā)出確認(rèn),主機的請求發(fā)出確認(rèn),主機A接收到主機接收到主機 B的確認(rèn)包后,對接收到的主機的確認(rèn)包后,對接收到的主機B的數(shù)據(jù)包,也向的數(shù)據(jù)包,也向 主機主機B發(fā)出確認(rèn)包。當(dāng)主機發(fā)出確認(rèn)包。當(dāng)主機B收到收到A再次發(fā)送的數(shù)據(jù)再次發(fā)送的數(shù)據(jù) 包后,連接建立完成。包后,連接建立完成。 主機主機A向主機向主機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ù)包長度將保持不變。由同,應(yīng)用程序產(chǎn)生的數(shù)據(jù)包長度將保持不變。由 TCP傳
7、遞給傳遞給IP的信息單位稱為報文段或段。的信息單位稱為報文段或段。 當(dāng)主機當(dāng)主機A發(fā)出一個發(fā)出一個TCP段后,它啟動一個定時器,段后,它啟動一個定時器, 等待目的端等待目的端(主機主機B的端口的端口)確認(rèn)收到這個報文段。確認(rèn)收到這個報文段。 如果不能及時收到一個確認(rèn),將重發(fā)這個報文段。如果不能及時收到一個確認(rèn),將重發(fā)這個報文段。 通常稱為超時重傳。通常稱為超時重傳。 當(dāng)主機當(dāng)主機B收到發(fā)自收到發(fā)自TCP連接另一端連接另一端(主機主機A)的數(shù)的數(shù) 據(jù),它將發(fā)送一個確認(rèn)。這個確認(rèn)不是立即發(fā)送,據(jù),它將發(fā)送一個確認(rèn)。這個確認(rèn)不是立即發(fā)送, 通常將推遲幾分之一秒。這是為了節(jié)省帶寬,確認(rèn)通常將推遲幾分之
8、一秒。這是為了節(jié)省帶寬,確認(rèn) 常常會和后面的常常會和后面的TCP分段一同發(fā)送。分段一同發(fā)送。 TCP報文段保持它的首部和數(shù)據(jù)的校驗和。主報文段保持它的首部和數(shù)據(jù)的校驗和。主 機機A和主機和主機B會檢測到數(shù)據(jù)在傳輸過程中的任何變會檢測到數(shù)據(jù)在傳輸過程中的任何變 化。如果收到段的校驗和有差錯,化。如果收到段的校驗和有差錯,TCP將丟棄這個將丟棄這個 報文段并且不確認(rèn)收到此報文段報文段并且不確認(rèn)收到此報文段(希望發(fā)送端超時希望發(fā)送端超時 并重發(fā)并重發(fā))。 TCP報文段使用報文段使用IP數(shù)據(jù)包來傳輸,而數(shù)據(jù)包來傳輸,而IP數(shù)據(jù)包數(shù)據(jù)包 的到達(dá)可能會失序,因此,的到達(dá)可能會失序,因此,TCP報文段的到達(dá)
9、也可報文段的到達(dá)也可 能會失序。如果必要,能會失序。如果必要,TCP將對收到的數(shù)據(jù)進(jìn)行重將對收到的數(shù)據(jù)進(jìn)行重 新排序,將收到的數(shù)據(jù)以正確的順序交給應(yīng)用層。新排序,將收到的數(shù)據(jù)以正確的順序交給應(yīng)用層。 每個每個TCP報文的首部都有傳輸數(shù)據(jù)的序號。報文的首部都有傳輸數(shù)據(jù)的序號。 如果如果IP數(shù)據(jù)包發(fā)生重復(fù),數(shù)據(jù)包發(fā)生重復(fù),TCP的接收端會丟棄的接收端會丟棄 重復(fù)的數(shù)據(jù)。重復(fù)的數(shù)據(jù)。 TCP還能提供流量控制。還能提供流量控制。TCP連接的每一方都連接的每一方都 有固定大小的緩沖空間。有固定大小的緩沖空間。TCP的接收端只允許另一的接收端只允許另一 端發(fā)送接收端緩沖區(qū)所能接納的數(shù)據(jù)。這將防止發(fā)端發(fā)送接
10、收端緩沖區(qū)所能接納的數(shù)據(jù)。這將防止發(fā) 送較快的主機導(dǎo)致接收較慢的主機的緩沖區(qū)溢出。送較快的主機導(dǎo)致接收較慢的主機的緩沖區(qū)溢出。 接收一方會動態(tài)通知發(fā)送端接收緩沖區(qū)內(nèi)還有多少接收一方會動態(tài)通知發(fā)送端接收緩沖區(qū)內(nèi)還有多少 空閑空間可以接收數(shù)據(jù),這個緩沖空間稱為滑動窗空閑空間可以接收數(shù)據(jù),這個緩沖空間稱為滑動窗 口。口。 主機主機A發(fā)送數(shù)據(jù)完畢后,將發(fā)送連接結(jié)束報文發(fā)送數(shù)據(jù)完畢后,將發(fā)送連接結(jié)束報文 (FIN)給主機給主機B。主機主機B對收到的對收到的FIN報文進(jìn)行確認(rèn),報文進(jìn)行確認(rèn), 同時也發(fā)送同時也發(fā)送FIN報文給主機報文給主機A。當(dāng)主機當(dāng)主機A也對此也對此FIN 報文段完成確認(rèn)后,此報文段完成
11、確認(rèn)后,此TCP連接宣告結(jié)束。連接宣告結(jié)束。 如果在傳輸中出現(xiàn)某些異常,如果在傳輸中出現(xiàn)某些異常,TCP連接的一方連接的一方 也可以發(fā)送復(fù)位報文也可以發(fā)送復(fù)位報文(RST),立刻關(guān)閉連接。立刻關(guān)閉連接。 5. TCP中建立連接和斷開連接過程中建立連接和斷開連接過程 TCP建立連接過程,如圖建立連接過程,如圖3-4所示。所示。 圖圖3-4 TCP建立連接過程建立連接過程 TCP斷開連接過程,如圖斷開連接過程,如圖3-5所示。所示。 圖圖3-5 TCP斷開連接過程斷開連接過程 TCP協(xié)議建立連接和斷開連接的過程可以用有限狀協(xié)議建立連接和斷開連接的過程可以用有限狀 態(tài)機態(tài)機(finite state
12、 machine,F(xiàn)SM)的轉(zhuǎn)換來表示,具的轉(zhuǎn)換來表示,具 體的體的TCP狀態(tài)轉(zhuǎn)換過程如圖狀態(tài)轉(zhuǎn)換過程如圖3-6所示。所示。 圖圖3-6 TCP協(xié)議狀態(tài)轉(zhuǎn)換協(xié)議狀態(tài)轉(zhuǎn)換 互聯(lián)網(wǎng)上通信的雙方不僅需要知道對方的地址,也互聯(lián)網(wǎng)上通信的雙方不僅需要知道對方的地址,也 需要知道通信程序的端口號。在同一時間內(nèi),兩臺需要知道通信程序的端口號。在同一時間內(nèi),兩臺 主機之間可能不僅僅只有一種類型的通信,例如,主機之間可能不僅僅只有一種類型的通信,例如, 同時進(jìn)行同時進(jìn)行Telnet和和FTP連接。為區(qū)別通信的程序,連接。為區(qū)別通信的程序, 在所有在所有IP數(shù)據(jù)報文中不僅僅有源地址和目的地址,數(shù)據(jù)報文中不僅僅有源
13、地址和目的地址, 而且也有源端口號與目的端口號。眾所周知,公共而且也有源端口號與目的端口號。眾所周知,公共 的的IP地址受控于世界范圍的注冊機構(gòu),而且每個地址受控于世界范圍的注冊機構(gòu),而且每個IP 地址也具有全球內(nèi)惟一性的特點。端口的數(shù)目不像地址也具有全球內(nèi)惟一性的特點。端口的數(shù)目不像 IP地址這樣被控制管理,但是,近年來,特定端口地址這樣被控制管理,但是,近年來,特定端口 被指定用于特定的服務(wù),而地址和端口一起組成一被指定用于特定的服務(wù),而地址和端口一起組成一 個套接字地址,在網(wǎng)絡(luò)上惟一標(biāo)識該服務(wù)。個套接字地址,在網(wǎng)絡(luò)上惟一標(biāo)識該服務(wù)。 3.1.2 端口介紹端口介紹 目前使用的目前使用的IP
14、v4協(xié)議支持協(xié)議支持16位的端口,也就是說可位的端口,也就是說可 使用的端口號為使用的端口號為065 535。并且被分為。并且被分為3個范圍:個范圍: 知名端口、注冊端口和動態(tài)端口或?qū)S枚丝凇1碇丝?、注冊端口和動態(tài)端口或?qū)S枚丝凇1?- 1是文件中包含的一些常用端口及其對應(yīng)的服務(wù)。是文件中包含的一些常用端口及其對應(yīng)的服務(wù)。 任何無特權(quán)的用戶程序如果企圖打開范圍在任何無特權(quán)的用戶程序如果企圖打開范圍在0 1023的知名端口,都會以失敗告終。而一個用戶程的知名端口,都會以失敗告終。而一個用戶程 序可以打開端口號高于序可以打開端口號高于1023的未分配端口,這些端的未分配端口,這些端 口號高于口
15、號高于1023的端口,通常也稱它們?yōu)椴粯?biāo)準(zhǔn)端口。的端口,通常也稱它們?yōu)椴粯?biāo)準(zhǔn)端口。 在這個范圍的一些端口對應(yīng)的服務(wù)卻是在這個范圍的一些端口對應(yīng)的服務(wù)卻是“標(biāo)準(zhǔn)標(biāo)準(zhǔn)”的,的, 表表3-2列出該端口范圍內(nèi)的部分端口及它們對應(yīng)的列出該端口范圍內(nèi)的部分端口及它們對應(yīng)的 服務(wù)。服務(wù)。 注冊端口由注冊端口由IANA記錄和追蹤,動態(tài)端口或?qū)S枚擞涗浐妥粉櫍瑒討B(tài)端口或?qū)S枚?口提供給專用應(yīng)用程序。口提供給專用應(yīng)用程序。RFC1700是相關(guān)端口信息是相關(guān)端口信息 的規(guī)范文檔。端口與服務(wù)的對照表見教材附錄。的規(guī)范文檔。端口與服務(wù)的對照表見教材附錄。 端口掃描技術(shù)是一項自動探測本地和遠(yuǎn)程系統(tǒng)端口端口掃描技術(shù)是一項自
16、動探測本地和遠(yuǎn)程系統(tǒng)端口 開放情況的策略及方法,它使系統(tǒng)用戶了解系統(tǒng)目開放情況的策略及方法,它使系統(tǒng)用戶了解系統(tǒng)目 前向外界提供了哪些服務(wù),從而為系統(tǒng)用戶管理網(wǎng)前向外界提供了哪些服務(wù),從而為系統(tǒng)用戶管理網(wǎng) 絡(luò)提供了一種手段。絡(luò)提供了一種手段。 端口掃描向目標(biāo)主機的端口掃描向目標(biāo)主機的TCP/IP服務(wù)端口發(fā)送探測服務(wù)端口發(fā)送探測 數(shù)據(jù)包,并記錄目標(biāo)主機的響應(yīng)。通過分析響應(yīng)來數(shù)據(jù)包,并記錄目標(biāo)主機的響應(yīng)。通過分析響應(yīng)來 判斷服務(wù)端口是打開還是關(guān)閉,就可以得知端口提判斷服務(wù)端口是打開還是關(guān)閉,就可以得知端口提 供的服務(wù)或信息。端口掃描也可以通過捕獲本地主供的服務(wù)或信息。端口掃描也可以通過捕獲本地主
17、機或服務(wù)器的流入流出機或服務(wù)器的流入流出IP數(shù)據(jù)包來監(jiān)視本地主機的數(shù)據(jù)包來監(jiān)視本地主機的 運行情況,它僅能對接收到的數(shù)據(jù)進(jìn)行分析,從而運行情況,它僅能對接收到的數(shù)據(jù)進(jìn)行分析,從而 發(fā)現(xiàn)目標(biāo)主機的某些內(nèi)在的弱點,而不會提供進(jìn)入發(fā)現(xiàn)目標(biāo)主機的某些內(nèi)在的弱點,而不會提供進(jìn)入 一個系統(tǒng)的詳細(xì)步驟。一個系統(tǒng)的詳細(xì)步驟。 3.1.3 端口掃描的概念端口掃描的概念 圖圖3-7 端口掃描分類端口掃描分類 3.1.4 端口掃描的分類端口掃描的分類 常見的端口掃描技術(shù)包括有常見的端口掃描技術(shù)包括有TCP connect掃描、掃描、 TCP SYN掃描以及秘密掃描。掃描以及秘密掃描。 3.2 常見端口掃描技術(shù)常見端
18、口掃描技術(shù) 通過進(jìn)行端口掃描,根據(jù)遠(yuǎn)程主機開放的端口,可通過進(jìn)行端口掃描,根據(jù)遠(yuǎn)程主機開放的端口,可 以初步確定對方提供的服務(wù)類型。進(jìn)行端口掃描最以初步確定對方提供的服務(wù)類型。進(jìn)行端口掃描最 常用的方式就是嘗試與遠(yuǎn)程主機的端口建立一次正常用的方式就是嘗試與遠(yuǎn)程主機的端口建立一次正 常的常的TCP連接。若連接成功則表示目標(biāo)端口開放。連接。若連接成功則表示目標(biāo)端口開放。 這種掃描技術(shù)稱為這種掃描技術(shù)稱為“TCP connect掃描掃描”,TCP connect掃描是掃描是TCP端口掃描的基礎(chǔ),也是最直接端口掃描的基礎(chǔ),也是最直接 的端口掃描方法。它實現(xiàn)起來非常容易,只需要在的端口掃描方法。它實現(xiàn)起
19、來非常容易,只需要在 軟件編程中調(diào)用軟件編程中調(diào)用Socket API的的connect()函數(shù)去連接函數(shù)去連接 目標(biāo)主機的指定端口,完成一次完整的目標(biāo)主機的指定端口,完成一次完整的TCP 3次握次握 手連接建立過程,根據(jù)對方的反應(yīng),就可以簡單地手連接建立過程,根據(jù)對方的反應(yīng),就可以簡單地 判斷出目標(biāo)端口是否開放。判斷出目標(biāo)端口是否開放。 3.2.1 TCP connect掃描掃描 掃描主機通過掃描主機通過TCP/IP協(xié)議的協(xié)議的3次握手與目標(biāo)主機的次握手與目標(biāo)主機的 指定端口建立一次完整的連接。連接由系統(tǒng)調(diào)用指定端口建立一次完整的連接。連接由系統(tǒng)調(diào)用 connect()開始。如果端口開放,則
20、連接建立成功;開始。如果端口開放,則連接建立成功; 否則,則返回否則,則返回-1,表示端口關(guān)閉。,表示端口關(guān)閉。 TCP connect端口掃描服務(wù)端與客戶端建立連接成端口掃描服務(wù)端與客戶端建立連接成 功(目標(biāo)端口開放)的過程:功(目標(biāo)端口開放)的過程: Client端發(fā)送端發(fā)送SYN; Server端返回端返回SYN/ACK,表明端口開放;表明端口開放; Client端返回端返回ACK,表明連接已建立;表明連接已建立; Client端主動斷開連接。端主動斷開連接。 建立連接成功(目標(biāo)端口開放)如圖建立連接成功(目標(biāo)端口開放)如圖3-8所示。所示。 圖圖3-8 TCP connect掃描建立連
21、接成功掃描建立連接成功 TCP connect端口掃描服務(wù)端與客戶端未建立連接端口掃描服務(wù)端與客戶端未建立連接 成功(目標(biāo)端口關(guān)閉)過程:成功(目標(biāo)端口關(guān)閉)過程: Client端發(fā)送端發(fā)送SYN; Server端返回端返回RST/ACK,表明端口未開放。表明端口未開放。 未建立連接成功未建立連接成功(目標(biāo)端口關(guān)閉目標(biāo)端口關(guān)閉)如圖如圖3-9所示。所示。 圖圖3-9 TCP connect掃描建立連接未成功掃描建立連接未成功 這種掃描方法的優(yōu)點是實現(xiàn)簡單,對操作者的權(quán)限這種掃描方法的優(yōu)點是實現(xiàn)簡單,對操作者的權(quán)限 沒有嚴(yán)格要求(有些類型的端口掃描需要操作者具沒有嚴(yán)格要求(有些類型的端口掃描需要
22、操作者具 有有root權(quán)限),系統(tǒng)中的任何用戶都有權(quán)力使用這權(quán)限),系統(tǒng)中的任何用戶都有權(quán)力使用這 個調(diào)用,而且如果想要得到從目標(biāo)端口返回個調(diào)用,而且如果想要得到從目標(biāo)端口返回 banners信息,也只能采用這一方法。另一優(yōu)點是信息,也只能采用這一方法。另一優(yōu)點是 掃描速度快。如果對每個目標(biāo)端口以線性的方式,掃描速度快。如果對每個目標(biāo)端口以線性的方式, 使用單獨的使用單獨的connect()調(diào)用,可以通過同時打開多個調(diào)用,可以通過同時打開多個 套接字,從而加速掃描。這種掃描方法的缺點是會套接字,從而加速掃描。這種掃描方法的缺點是會 在目標(biāo)主機的日志記錄中留下痕跡,易被發(fā)現(xiàn),并在目標(biāo)主機的日志記
23、錄中留下痕跡,易被發(fā)現(xiàn),并 且數(shù)據(jù)包會被過濾掉。目標(biāo)主機的且數(shù)據(jù)包會被過濾掉。目標(biāo)主機的logs文件會顯示文件會顯示 一連串的連接和連接出錯的服務(wù)信息,并且能很快一連串的連接和連接出錯的服務(wù)信息,并且能很快 地使它關(guān)閉。圖地使它關(guān)閉。圖3-10是是TCP connect掃描的一個程掃描的一個程 序簡單流程圖。序簡單流程圖。 圖圖3-10 TCP connect掃描程序簡單流程掃描程序簡單流程 下面是一個簡單的端口掃描器的源代碼中的主函數(shù)下面是一個簡單的端口掃描器的源代碼中的主函數(shù) 部分,程序清單如下所示:部分,程序清單如下所示: int main(intargc,char*argv) int
24、probeport=0; struct hostent host;/*這里定義這里定義socket主機結(jié)構(gòu)主機結(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);/*本次掃描的端口號本次掃描的端口號*/ net = socket(AF_INET
25、,SOCK_STREAM,0); /*建立一個建立一個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); /*開放的端口顯示開放的端口顯示*/ if(shutdown(net
26、,2)0 perror(nshutdown); exit(2); close(net);/*關(guān)閉連接關(guān)閉連接*/ printf(r); fflush(stdout); return(0); 編譯后運行,假設(shè)輸出結(jié)果如下:編譯后運行,假設(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é)果可以看出,這臺主機提供了端口從上面的掃描結(jié)果可以看出,這臺主機提供了端口 21(FTP)、)、23(Telnet)、)、25(SMTP)和和80 (WWW)等服務(wù)。鑒于等服務(wù)。鑒于TCP/IP協(xié)議和客戶協(xié)議和客戶/服務(wù)服務(wù) 器模式的實現(xiàn)方式,目標(biāo)主機通常必須響應(yīng)這種掃器模式的實現(xiàn)方式,目標(biāo)主機通常必須響應(yīng)這種掃 描,除非對被掃描的那個端口的數(shù)據(jù)包進(jìn)行過濾。描,除非對被掃描的那個端口的數(shù)據(jù)包進(jìn)行過濾。 目標(biāo)主機惟一可以保護(hù)自己
28、的只能是記錄下連接請目標(biāo)主機惟一可以保護(hù)自己的只能是記錄下連接請 求發(fā)起主機的求發(fā)起主機的IP地址。地址。 TCP通信雙方是使用通信雙方是使用3次握手來建立次握手來建立TCP連接。申連接。申 請建立連接的客戶端需要發(fā)送一個請建立連接的客戶端需要發(fā)送一個SYN數(shù)據(jù)報文給數(shù)據(jù)報文給 服務(wù)端,服務(wù)端會回復(fù)服務(wù)端,服務(wù)端會回復(fù)ACK數(shù)據(jù)報文。半開放掃數(shù)據(jù)報文。半開放掃 描就是利用描就是利用3次握手的弱點來實現(xiàn)的。掃描器向遠(yuǎn)次握手的弱點來實現(xiàn)的。掃描器向遠(yuǎn) 程主機的端口發(fā)送一個請求連接的程主機的端口發(fā)送一個請求連接的SYN數(shù)據(jù)報文,數(shù)據(jù)報文, 如果沒有收到目標(biāo)主機的如果沒有收到目標(biāo)主機的SYN/ACK確
29、認(rèn)報文,而確認(rèn)報文,而 是是RST數(shù)據(jù)報文,就說明遠(yuǎn)程主機的這個端口沒有數(shù)據(jù)報文,就說明遠(yuǎn)程主機的這個端口沒有 打開。而如果收到遠(yuǎn)程主機的打開。而如果收到遠(yuǎn)程主機的SYN/ACK應(yīng)答,則應(yīng)答,則 說明遠(yuǎn)程主機端口開放。掃描器在收到遠(yuǎn)程主機的說明遠(yuǎn)程主機端口開放。掃描器在收到遠(yuǎn)程主機的 SYN/ACK后,不會再回復(fù)自己的后,不會再回復(fù)自己的ACK應(yīng)答,這樣,應(yīng)答,這樣, 3次握手并沒有完成,正常的次握手并沒有完成,正常的TCP連接無法建立,連接無法建立, 3.2.2 TCP SYN掃描掃描 因此這個掃描信息不會被記入系統(tǒng)日志。這種掃描因此這個掃描信息不會被記入系統(tǒng)日志。這種掃描 技術(shù)一般不會在目
30、標(biāo)計算機上留下記錄。技術(shù)一般不會在目標(biāo)計算機上留下記錄。TCP SYN掃描建立連接成功(目標(biāo)端口開放)如圖掃描建立連接成功(目標(biāo)端口開放)如圖3-11 所示。所示。 TCP SYN掃描建立未連接成功(目標(biāo)端口關(guān)閉)掃描建立未連接成功(目標(biāo)端口關(guān)閉) 如圖如圖3-12所示。所示。 TCP SYN掃描的優(yōu)點是比掃描的優(yōu)點是比TCP connect掃描更隱蔽,掃描更隱蔽, Server端可能不會留下日志記錄。其缺點是在大部端可能不會留下日志記錄。其缺點是在大部 分操作系統(tǒng)下,掃描主機需要構(gòu)造適用于這種掃描分操作系統(tǒng)下,掃描主機需要構(gòu)造適用于這種掃描 的的IP包,而通常情況下,構(gòu)造自己的包,而通常情況
31、下,構(gòu)造自己的SYN數(shù)據(jù)包必數(shù)據(jù)包必 須要有須要有root權(quán)限。權(quán)限。 圖圖3-11 TCP SYN掃描建立連接成功掃描建立連接成功 圖圖3-12 TCP SYN掃描建立連接未成功掃描建立連接未成功 秘密掃描是一種不被審計工具所檢測的掃描技術(shù)。秘密掃描是一種不被審計工具所檢測的掃描技術(shù)。 它通常用于在通過普通的防火墻或路由器的篩選它通常用于在通過普通的防火墻或路由器的篩選 (filtering)時隱藏自己。時隱藏自己。 秘密掃描能躲避秘密掃描能躲避IDS、防火墻、包過濾器和日志審防火墻、包過濾器和日志審 計,從而獲取目標(biāo)端口的開放或關(guān)閉的信息。由于計,從而獲取目標(biāo)端口的開放或關(guān)閉的信息。由于
32、沒有包含沒有包含TCP 3次握手協(xié)議的任何部分,所以無法次握手協(xié)議的任何部分,所以無法 被記錄下來,比半連接掃描更為隱蔽。但是這種掃被記錄下來,比半連接掃描更為隱蔽。但是這種掃 描的缺點是掃描結(jié)果的不可靠性會增加,而且掃描描的缺點是掃描結(jié)果的不可靠性會增加,而且掃描 主機也需要自己構(gòu)造主機也需要自己構(gòu)造IP包。現(xiàn)有的秘密掃描有包?,F(xiàn)有的秘密掃描有TCP FIN掃描、掃描、TCP ACK掃描、掃描、NULL掃描、掃描、XMAS掃掃 描和描和SYN/ACK掃描等。掃描等。 3.2.3 秘密掃描秘密掃描 (1) TCP FIN掃描掃描 很多的過濾設(shè)備能過濾很多的過濾設(shè)備能過濾SYN數(shù)據(jù)報文,但是允許
33、數(shù)據(jù)報文,但是允許 FIN數(shù)據(jù)報文通過。因為數(shù)據(jù)報文通過。因為FIN是中斷連接的數(shù)據(jù)報是中斷連接的數(shù)據(jù)報 文,所以很多日志系統(tǒng)都不記錄這樣的數(shù)據(jù)報文。文,所以很多日志系統(tǒng)都不記錄這樣的數(shù)據(jù)報文。 利用這一點的掃描就是利用這一點的掃描就是TCP FIN掃描。掃描。TCP FIN掃掃 描的原理是掃描主機向目標(biāo)主機發(fā)送描的原理是掃描主機向目標(biāo)主機發(fā)送FIN數(shù)據(jù)包來數(shù)據(jù)包來 探聽端口,若探聽端口,若FIN數(shù)據(jù)包到達(dá)的是一個打開的端口,數(shù)據(jù)包到達(dá)的是一個打開的端口, 數(shù)據(jù)包則被簡單地丟掉,并不返回任何信息,如圖數(shù)據(jù)包則被簡單地丟掉,并不返回任何信息,如圖 3-13所示。所示。 當(dāng)當(dāng)FIN數(shù)據(jù)包到達(dá)一個關(guān)
34、閉的端口,數(shù)據(jù)包到達(dá)一個關(guān)閉的端口,TCP會把它判會把它判 斷成是錯誤,數(shù)據(jù)包會被丟掉,并且返回一個斷成是錯誤,數(shù)據(jù)包會被丟掉,并且返回一個RST 數(shù)據(jù)包,如圖數(shù)據(jù)包,如圖3-14所示。所示。 圖圖3-13 TCP FIN掃描建立連接成功掃描建立連接成功 圖圖3-14 TCP FIN掃描建立連接未成功掃描建立連接未成功 這種方法與系統(tǒng)的這種方法與系統(tǒng)的TCP/IP實現(xiàn)有一定的關(guān)系,并實現(xiàn)有一定的關(guān)系,并 不是可以應(yīng)用在所有的系統(tǒng)上,有的系統(tǒng)不管端口不是可以應(yīng)用在所有的系統(tǒng)上,有的系統(tǒng)不管端口 是否打開,都回復(fù)是否打開,都回復(fù)RST,這樣,這種掃描方法就不這樣,這種掃描方法就不 適用了。但這種方
35、法可以用來區(qū)別操作系統(tǒng)是適用了。但這種方法可以用來區(qū)別操作系統(tǒng)是 UNIX還是還是Windows。 這種方法與系統(tǒng)的這種方法與系統(tǒng)的TCP/IP實現(xiàn)有一定的關(guān)系,并實現(xiàn)有一定的關(guān)系,并 不是可以應(yīng)用在所有的系統(tǒng)上,有的系統(tǒng)不管端口不是可以應(yīng)用在所有的系統(tǒng)上,有的系統(tǒng)不管端口 是否打開,都回復(fù)是否打開,都回復(fù)RST,這樣,這種掃描方法就不這樣,這種掃描方法就不 適用了。但這種方法可以用來區(qū)別操作系統(tǒng)是適用了。但這種方法可以用來區(qū)別操作系統(tǒng)是 UNIX還是還是Windows。 (2) TCP ACK掃描掃描 掃描主機向目標(biāo)主機發(fā)送掃描主機向目標(biāo)主機發(fā)送ACK數(shù)據(jù)包。根據(jù)返回數(shù)據(jù)包。根據(jù)返回 的的R
36、ST數(shù)據(jù)包有兩種方法可以得到端口的信息。方數(shù)據(jù)包有兩種方法可以得到端口的信息。方 法一是:法一是: 若返回的若返回的RST數(shù)據(jù)包的數(shù)據(jù)包的TTL值小于或等值小于或等 于于64,則端口開放,反之端口關(guān)閉,如圖,則端口開放,反之端口關(guān)閉,如圖3-15所示。所示。 圖圖3-15 TCP ACK掃描建立連接成功掃描建立連接成功 方法二是:方法二是: 若返回的若返回的RST數(shù)據(jù)包的數(shù)據(jù)包的WINDOW值非值非 零,則端口開放,反之端口關(guān)閉,如圖零,則端口開放,反之端口關(guān)閉,如圖3-16所示。所示。 圖圖3-16 TCP ACK掃描建立連接成功掃描建立連接成功 (3) NULL掃描掃描 掃描主機將掃描主機
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對掃描的結(jié)果沒有任何影響)發(fā)送給目標(biāo)主對掃描的結(jié)果沒有任何影響)發(fā)送給目標(biāo)主 機。若目標(biāo)端口開放,目標(biāo)主機將不返回任何信息,機。若目標(biāo)端口開放,目標(biāo)主機將不返回任何信息, 如圖如圖3-17所示。所示。 若目標(biāo)主機返回若目標(biāo)主機返回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)主機。在目標(biāo)端口開放的情況后發(fā)送給目標(biāo)主機。在目標(biāo)端口開放的情況 下,目標(biāo)主機將不返回任何信息,如圖下,目標(biāo)主機將不返回任何信息,如圖3-19所示。所示。 圖圖3-19 XMAS掃描建立連接成功掃描建立連接成功 若目標(biāo)端口關(guān)閉,則目標(biāo)主機將返回若目標(biāo)端口關(guān)閉
39、,則目標(biāo)主機將返回RST信息,如信息,如 圖圖3-20所示。所示。 圖圖3-20 XMAS掃描建立連接未成功掃描建立連接未成功 這里要說明的是,這里要說明的是,MS Windows、Cisco、BSDI、 HP/UX、MVS以及以及IRIX等操作系統(tǒng)如果通過等操作系統(tǒng)如果通過TCP FIN、XMAS以及以及NULL掃描等方式進(jìn)行掃描的話,掃描等方式進(jìn)行掃描的話, 對于打開的端口也會發(fā)送對于打開的端口也會發(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)打開的端口,操作掃描。如果出現(xiàn)打開的端口,操作 系統(tǒng)就會知道是屬于系統(tǒng)就會知道是屬于MS Windows、Cisco、BSDI、 HP/UX、MVS以及以及IRIX中的哪類了。中的哪類了。 (5) SYN/ACK掃描掃描 這種掃描故意忽略這種掃描故意忽略TCP的的3次握手。原來正常的次握手。原來正常的 TCP連接可以簡化為連接可以簡化為SYN- SYN /ACK-ACK形式的形式的 3次握手來進(jìn)行。這里,掃描主機不向目標(biāo)主機發(fā)次握手來進(jìn)行。這里,掃描主機不
41、向目標(biāo)主機發(fā) 送送SYN數(shù)據(jù)包,而先發(fā)送數(shù)據(jù)包,而先發(fā)送SYN/ACK數(shù)據(jù)包。目標(biāo)數(shù)據(jù)包。目標(biāo) 主機將報錯,并判斷為一次錯誤的連接。若目標(biāo)端主機將報錯,并判斷為一次錯誤的連接。若目標(biāo)端 口開放,目標(biāo)主機將返回口開放,目標(biāo)主機將返回RST信息,如圖信息,如圖3-21所示。所示。 圖圖3-21 SYN/ACK掃描建立連接成功掃描建立連接成功 若目標(biāo)端口關(guān)閉,目標(biāo)主機將不返回任何信息,數(shù)若目標(biāo)端口關(guān)閉,目標(biāo)主機將不返回任何信息,數(shù) 據(jù)包會被丟掉,如圖據(jù)包會被丟掉,如圖3-22所示。所示。 圖圖3-22 SYN/ACK掃描建立連接未成功掃描建立連接未成功 UDP是無連接不可靠的協(xié)議,因此,是無連接不可
42、靠的協(xié)議,因此,UDP端口掃描端口掃描 也是不可靠的。也是不可靠的。 (1) UDP ICMP端口不可到達(dá)掃描端口不可到達(dá)掃描 掃描主機發(fā)送掃描主機發(fā)送UDP數(shù)據(jù)包給目標(biāo)主機的數(shù)據(jù)包給目標(biāo)主機的UDP端口,端口, 等待目標(biāo)端口的端口不可到達(dá)等待目標(biāo)端口的端口不可到達(dá) (ICMP_PORT_UNREACH)的的ICMP信息。若超信息。若超 時也未能接收到端口不可到達(dá)的時也未能接收到端口不可到達(dá)的ICMP信息,則表信息,則表 明目標(biāo)端口可能處于監(jiān)聽的狀態(tài)。建立連接如圖明目標(biāo)端口可能處于監(jiān)聽的狀態(tài)。建立連接如圖3- 23所示。所示。 3.3 其他端口掃描技術(shù)其他端口掃描技術(shù) 3.3.1 UDP掃描掃
43、描 圖圖3-23 UDP ICMP掃描建立連接成功掃描建立連接成功 若這個若這個ICMP信息及時接收到,則表明目標(biāo)端口處信息及時接收到,則表明目標(biāo)端口處 于關(guān)閉的狀態(tài),如圖于關(guān)閉的狀態(tài),如圖3-24所示。所示。 圖圖3-24 UDP ICMP掃描建立連接未成功掃描建立連接未成功 這種掃描方法可以掃描非這種掃描方法可以掃描非TCP端口,避免了端口,避免了TCP的的 入侵檢測,但是由于是基于簡單的入侵檢測,但是由于是基于簡單的UDP協(xié)議,掃描協(xié)議,掃描 相對困難,速度很慢而且需要相對困難,速度很慢而且需要root權(quán)限。同時這種權(quán)限。同時這種 方法十分不可靠。方法十分不可靠。 (2) UDP rec
44、vfrom()和和write()掃描掃描 當(dāng)非當(dāng)非root用戶不能直接讀到端口不可到達(dá)錯誤時,用戶不能直接讀到端口不可到達(dá)錯誤時, Linux能間接地在它們到達(dá)時通知用戶。比如,對能間接地在它們到達(dá)時通知用戶。比如,對 一個關(guān)閉的端口的第二個一個關(guān)閉的端口的第二個write()調(diào)用將失敗。在非調(diào)用將失敗。在非 阻塞的阻塞的UDP套接字上調(diào)用套接字上調(diào)用recvfrom()時,如果時,如果 ICMP出錯還沒有到達(dá)時會返回出錯還沒有到達(dá)時會返回eagain(重試)。重試)。 如果如果ICMP到達(dá)時,將返回到達(dá)時,將返回econnrefused(連接被連接被 拒絕),這樣就能查看目標(biāo)端口是否打開。拒
45、絕),這樣就能查看目標(biāo)端口是否打開。 dumb主機與一般的主機相比,網(wǎng)絡(luò)接收或發(fā)出通主機與一般的主機相比,網(wǎng)絡(luò)接收或發(fā)出通 信量很少,是參與配合掃描的第三方主機。信量很少,是參與配合掃描的第三方主機。 首先掃描主機首先掃描主機A向向dumb主機主機B發(fā)送連續(xù)的發(fā)送連續(xù)的ping數(shù)據(jù)數(shù)據(jù) 包,包,dumb主機主機B接收到后,會返回包含有接收到后,會返回包含有ID頭的頭的 順序數(shù)據(jù)包,每一順序數(shù)據(jù)包的順序數(shù)據(jù)包,每一順序數(shù)據(jù)包的ID頭的值會順序增頭的值會順序增 1。掃描主機。掃描主機A為了測試出目標(biāo)主機為了測試出目標(biāo)主機C任一端口任一端口 (165 535)是開放還是關(guān)閉,就會使用)是開放還是關(guān)閉
46、,就會使用dumb主主 機機B的源地址向目標(biāo)主機的源地址向目標(biāo)主機C的該端口發(fā)送欺騙性的的該端口發(fā)送欺騙性的 SYN數(shù)據(jù)包。此時,目標(biāo)主機數(shù)據(jù)包。此時,目標(biāo)主機C向向dumb主機主機B發(fā)送發(fā)送 的數(shù)據(jù)包有兩種可能的結(jié)果:的數(shù)據(jù)包有兩種可能的結(jié)果: 3.3.2 IP頭信息頭信息dumb掃描掃描 (1) SYN/ACK 若目標(biāo)主機若目標(biāo)主機C向向dumb主機主機B響應(yīng)的是響應(yīng)的是SYN/ACK, 則表明目標(biāo)端口處于監(jiān)聽(打開)狀態(tài),則表明目標(biāo)端口處于監(jiān)聽(打開)狀態(tài),dumb主主 機機B將返回將返回RST響應(yīng),連接自動被切斷。響應(yīng),連接自動被切斷。 (2) RST/ACK 若目標(biāo)主機若目標(biāo)主機C向
47、向dumb主機主機B響應(yīng)的是響應(yīng)的是RST/ACK, 則表明端口處于關(guān)閉狀態(tài),則表明端口處于關(guān)閉狀態(tài),dumb主機主機B會忽略發(fā)會忽略發(fā) 送的數(shù)據(jù)包而不作任何響應(yīng)。送的數(shù)據(jù)包而不作任何響應(yīng)。 掃描主機從后面連續(xù)的響應(yīng)掃描主機從后面連續(xù)的響應(yīng)ping數(shù)據(jù)包的數(shù)據(jù)包的ID頭的值,頭的值, 可以判斷目標(biāo)端口的開放與否。若可以判斷目標(biāo)端口的開放與否。若ID頭的值不是遞頭的值不是遞 增增1,而是大于,而是大于1,則表明目標(biāo)端口是處于監(jiān)聽(開,則表明目標(biāo)端口是處于監(jiān)聽(開 放)狀態(tài)的;若放)狀態(tài)的;若ID頭的值規(guī)律的遞增頭的值規(guī)律的遞增1,則表明目,則表明目 標(biāo)端口是關(guān)閉的。標(biāo)端口是關(guān)閉的。 IP分段掃描
48、不能算是新方法,只是其他技術(shù)的變化。分段掃描不能算是新方法,只是其他技術(shù)的變化。 掃描主機并不是直接發(fā)送掃描主機并不是直接發(fā)送TCP探測數(shù)據(jù)包,而是將探測數(shù)據(jù)包,而是將 數(shù)據(jù)包分成兩個較小的數(shù)據(jù)包分成兩個較小的IP段。這樣就將一個段。這樣就將一個TCP頭頭 分成好幾個數(shù)據(jù)包,從而過濾器就很難探測到,掃分成好幾個數(shù)據(jù)包,從而過濾器就很難探測到,掃 描就可以在不被發(fā)現(xiàn)的情況下進(jìn)行。但是需要注意描就可以在不被發(fā)現(xiàn)的情況下進(jìn)行。但是需要注意 的是,一些程序在處理這些小數(shù)據(jù)包時會有些麻煩,的是,一些程序在處理這些小數(shù)據(jù)包時會有些麻煩, 并且不同的操作系統(tǒng)在處理這個數(shù)據(jù)包的時候,通并且不同的操作系統(tǒng)在處理
49、這個數(shù)據(jù)包的時候,通 常會出現(xiàn)問題。常會出現(xiàn)問題。 3.3.3 IP分段掃描分段掃描 隨著防火墻的廣泛應(yīng)用,普通的掃描很難穿過防火隨著防火墻的廣泛應(yīng)用,普通的掃描很難穿過防火 墻去掃描受防火墻保護(hù)的網(wǎng)絡(luò)。即使掃描能穿過防墻去掃描受防火墻保護(hù)的網(wǎng)絡(luò)。即使掃描能穿過防 火墻,掃描的行為仍然有可能會被防火墻記錄下來?;饓Γ瑨呙璧男袨槿匀挥锌赡軙环阑饓τ涗浵聛?。 如果掃描是對非連續(xù)性端口、源地址不一致、時間如果掃描是對非連續(xù)性端口、源地址不一致、時間 間隔很長且沒有規(guī)律的掃描的話,這些掃描的記錄間隔很長且沒有規(guī)律的掃描的話,這些掃描的記錄 就會淹沒在其他眾多雜亂的日志內(nèi)容中。使用慢速就會淹沒在其他眾
50、多雜亂的日志內(nèi)容中。使用慢速 掃描的目的也就是這樣,騙過防火墻和入侵檢測系掃描的目的也就是這樣,騙過防火墻和入侵檢測系 統(tǒng)而收集信息。雖然掃描所用的時間較長,但這是統(tǒng)而收集信息。雖然掃描所用的時間較長,但這是 一種比較難以被發(fā)現(xiàn)的掃描。一種比較難以被發(fā)現(xiàn)的掃描。 3.3.4 慢速掃描慢速掃描 亂序掃描也是一種常見的掃描技術(shù),掃描器掃描的亂序掃描也是一種常見的掃描技術(shù),掃描器掃描的 時候不是進(jìn)行有序的掃描,掃描端口號的順序是隨時候不是進(jìn)行有序的掃描,掃描端口號的順序是隨 機產(chǎn)生的,每次進(jìn)行掃描的順序都完全不一樣,這機產(chǎn)生的,每次進(jìn)行掃描的順序都完全不一樣,這 種方式能有效地欺騙某些入侵檢測系統(tǒng)而
51、不會被發(fā)種方式能有效地欺騙某些入侵檢測系統(tǒng)而不會被發(fā) 覺。覺。 3.3.5 亂序掃描亂序掃描 進(jìn)行掃描的方法很多,可以是手工方式,也可以利進(jìn)行掃描的方法很多,可以是手工方式,也可以利 用端口掃描軟件。在手工進(jìn)行掃描時,需要熟悉各用端口掃描軟件。在手工進(jìn)行掃描時,需要熟悉各 種命令,對命令執(zhí)行后的輸出進(jìn)行分析。用掃描軟種命令,對命令執(zhí)行后的輸出進(jìn)行分析。用掃描軟 件進(jìn)行掃描時,可以使用許多掃描器軟件提供的分件進(jìn)行掃描時,可以使用許多掃描器軟件提供的分 析數(shù)據(jù)功能。析數(shù)據(jù)功能。 3.4 端口掃描工具端口掃描工具 1. ping命令命令 ping命令經(jīng)常用來對命令經(jīng)常用來對TCP/IP網(wǎng)絡(luò)進(jìn)行診斷。
52、通過向網(wǎng)絡(luò)進(jìn)行診斷。通過向 目標(biāo)計算機發(fā)送一個數(shù)據(jù)包,讓它將這個數(shù)據(jù)包返目標(biāo)計算機發(fā)送一個數(shù)據(jù)包,讓它將這個數(shù)據(jù)包返 回,如果返回的數(shù)據(jù)包和發(fā)送的數(shù)據(jù)包一致,那就回,如果返回的數(shù)據(jù)包和發(fā)送的數(shù)據(jù)包一致,那就 表明表明ping命令成功了。通過這種方式對返回的數(shù)據(jù)命令成功了。通過這種方式對返回的數(shù)據(jù) 進(jìn)行分析,就能判斷目標(biāo)計算機是否在線,或者這進(jìn)行分析,就能判斷目標(biāo)計算機是否在線,或者這 個數(shù)據(jù)包從發(fā)送到返回需要多少時間。個數(shù)據(jù)包從發(fā)送到返回需要多少時間。 ping命令的基本格式:命令的基本格式: ping hostname 。ping命令命令 可以帶一些參數(shù),常用的兩個參數(shù)是可以帶一些參數(shù),常用
53、的兩個參數(shù)是“-n”和和“-l”。 3.4.1 常用網(wǎng)絡(luò)掃描命令常用網(wǎng)絡(luò)掃描命令 對目標(biāo)主機執(zhí)行對目標(biāo)主機執(zhí)行ping命令,但是沒有收到目標(biāo)主機命令,但是沒有收到目標(biāo)主機 返回的任何信息返回的任何信息,并不一定表示這個并不一定表示這個IP不存在或者不存在或者 沒有連接到網(wǎng)絡(luò)上,因為對方主機可能做了限制,沒有連接到網(wǎng)絡(luò)上,因為對方主機可能做了限制, 比如安裝了防火墻,因此,比如安裝了防火墻,因此,ping不通不表示不能使不通不表示不能使 用用FTP或者或者Telnet連接。連接。ping得到的結(jié)果包括字節(jié)得到的結(jié)果包括字節(jié) 數(shù)、反應(yīng)時間以及生存時間。數(shù)、反應(yīng)時間以及生存時間。ping程序通過在程
54、序通過在 ICMP報文數(shù)據(jù)中存放發(fā)送請求的時間來計算返回報文數(shù)據(jù)中存放發(fā)送請求的時間來計算返回 時間。當(dāng)應(yīng)答返回時,根據(jù)當(dāng)時時間減去報文中存時間。當(dāng)應(yīng)答返回時,根據(jù)當(dāng)時時間減去報文中存 放的發(fā)送時間就得到反應(yīng)時間了。生存時間放的發(fā)送時間就得到反應(yīng)時間了。生存時間 (TTL),),本來就存放在本來就存放在IP數(shù)據(jù)包的頭部,直接就數(shù)據(jù)包的頭部,直接就 能夠獲取。能夠獲取。 2. tracert命令命令 Windows下下tracert命令的作用是跟蹤一個消息從一命令的作用是跟蹤一個消息從一 臺計算機到另一臺計算機所走的路徑,它可以用來臺計算機到另一臺計算機所走的路徑,它可以用來 確定某個主機的位置
55、。確定某個主機的位置。 圖圖3-25 Windows下使用下使用tracert命令命令 3. net命令系列命令系列 很多很多Windows 2000的網(wǎng)絡(luò)命令都是以的網(wǎng)絡(luò)命令都是以net開頭的。開頭的。 利用利用net開頭的命令,可以實現(xiàn)很多的網(wǎng)絡(luò)管理功開頭的命令,可以實現(xiàn)很多的網(wǎng)絡(luò)管理功 能。下面介紹幾個比較常用的能。下面介紹幾個比較常用的net命令。命令。 net start server命令,可以用來啟動服務(wù)器。命令,可以用來啟動服務(wù)器。 net use命令,可以通過使用這個命令將計算機與共命令,可以通過使用這個命令將計算機與共 享資源連接或斷開,或者顯示關(guān)于計算機連接的信享資源連接或
56、斷開,或者顯示關(guān)于計算機連接的信 息。息。 net user命令,是用來添加或修改賬戶或者顯示用命令,是用來添加或修改賬戶或者顯示用 戶賬戶信息。戶賬戶信息。 4. rusers和和finger命令命令 這兩個都是這兩個都是UNIX命令。通過這兩個命令,可以收命令。通過這兩個命令,可以收 集目標(biāo)計算機上有關(guān)用戶的消息。使用集目標(biāo)計算機上有關(guān)用戶的消息。使用rusers命令,命令, 會產(chǎn)生類似下面的結(jié)果:會產(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) 最左邊的是通過遠(yuǎn)程登錄的用戶名,還包括上次登最左邊的是通過遠(yuǎn)程登錄的用戶名,還包括上次登 錄時間,使用的錄時間,使用的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 這個命令能顯示用戶的狀態(tài)。該命令是建立在客戶這個命令能顯示用戶的狀態(tài)。該命令是建立在客戶 服務(wù)器模型之上的。用戶通過客戶端軟件向服務(wù)器服
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年漿砌片石擋墻專項勞務(wù)合同
- 2024年肉雞養(yǎng)殖場租賃與養(yǎng)殖技術(shù)培訓(xùn)及咨詢服務(wù)合同2篇
- 2024醫(yī)療器械進(jìn)口代理與產(chǎn)品質(zhì)量追溯服務(wù)協(xié)議3篇
- 2024年設(shè)備租賃合同設(shè)備維修與保養(yǎng)責(zé)任
- 2024年草坪種植及相關(guān)服務(wù)合同3篇
- 畜牧養(yǎng)殖技術(shù)培訓(xùn)與知識更新項目的廣泛應(yīng)用考核試卷
- 潮流分析課程設(shè)計
- 拳擊沙袋租賃市場分析報告考核試卷
- 法語寫作課程設(shè)計
- 2024年油氣管道巡檢維護(hù)施工合同樣本3篇
- 2024至2030年中國沖調(diào)飲料行業(yè)市場深度研究及投資規(guī)劃建議報告
- DB23T 1727-2016 地理標(biāo)志產(chǎn)品 克東天然蘇打水
- 2023-2024學(xué)年黑龍江省哈爾濱市道里區(qū)七年級(下)期末數(shù)學(xué)試卷(五四學(xué)制)(含答案)
- SL+290-2009水利水電工程建設(shè)征地移民安置規(guī)劃設(shè)計規(guī)范
- 水電站施工合同水電站施工合同(2024版)
- 河南省周口市商水縣2023-2024學(xué)年七年級下學(xué)期期末語文試題
- 渭南市白水縣2021-2022學(xué)年七年級上學(xué)期期末考試數(shù)學(xué)試卷【帶答案】
- 2024年美國壓力襪市場現(xiàn)狀及上下游分析報告
- 2012建設(shè)工程造價咨詢成果文件質(zhì)量標(biāo)準(zhǔn)
- 心內(nèi)科介入手術(shù)圍手術(shù)期處理
- 2024年春季學(xué)期言語交際期末綜合試卷-國開(XJ)-參考資料
評論
0/150
提交評論