
第二章網(wǎng)絡(luò)安全協(xié)議基礎(chǔ)
92頁第二章?網(wǎng)絡(luò)安全協(xié)議基礎(chǔ)?內(nèi)容提要1.本章介紹OSI七層網(wǎng)絡(luò)模型2.TCP/IP協(xié)議簇3.重點介紹IP協(xié)議、TCP協(xié)議、UDP協(xié)議和ICMP協(xié)議4.介紹常用的網(wǎng)絡(luò)服務(wù):文件傳輸服務(wù)、Telnet服務(wù)、電子郵件服務(wù)和、Web服務(wù)5.介紹常用的網(wǎng)絡(luò)服務(wù)端口和常用的網(wǎng)絡(luò)命令的使用OSI參考模型?nOSI參考模型是國際標準化組織ISO(International?Standards?Organization?)制定的模型,把計算機與計算機之間的通信分成七個互相連接的協(xié)議層,結(jié)構(gòu)如圖2-1所示OSI參考模型n很少有產(chǎn)品是完全的OSI模式,然而OSI參考模型為網(wǎng)絡(luò)的結(jié)構(gòu)提供了可行的機制nOSI模型將通信會話需要的各種進程劃分成7個相對獨立的層次1、物理層(Physical?Layer)n最底層是物理層,這一層負責傳送比特流負責傳送比特流,它從第二層數(shù)據(jù)鏈路層接收數(shù)據(jù)幀,并將幀的結(jié)構(gòu)和內(nèi)容串行發(fā)送,即每次發(fā)送一個比特n物理層只能看見0和1,只與電信號技術(shù)和光信號技術(shù)的物理特征相關(guān)這些特征包括用于傳輸信號電流的電壓、介質(zhì)類型以及阻抗特征該層的傳輸介質(zhì)是同軸電纜、光纖、同軸電纜、光纖、雙絞線雙絞線等,有時該層被稱為OSI參考模型的第0層。
n物理層可能受到的安全威脅是搭線竊聽和監(jiān)聽搭線竊聽和監(jiān)聽,可以利用數(shù)據(jù)加密、數(shù)據(jù)標簽加密,數(shù)據(jù)標簽,流量填充等方法保護物理層的安全2、數(shù)據(jù)鏈路層(Data?Link?Layer)n幀幀是該層的基本結(jié)構(gòu)幀中包含足夠的信息,確保數(shù)據(jù)可以安全地通過本地局域網(wǎng)到達目的地nOSI參考模型的第二層稱為數(shù)據(jù)鏈路層與其他層一樣,它肩負兩個責任:發(fā)送和接收數(shù)據(jù)發(fā)送和接收數(shù)據(jù)n提供數(shù)據(jù)有效傳輸?shù)亩说蕉诉B接連接n裝幀和拆幀裝幀和拆幀:在發(fā)送方,數(shù)據(jù)鏈路層負責將上層的指令、數(shù)據(jù)等包裝到幀包裝到幀中接收方,識別幀n差錯控制差錯控制(完整性和應(yīng)答):n流量控制流量控制:n共享信道訪問共享信道訪問(MAC):3、網(wǎng)絡(luò)層(Network?Layer)n網(wǎng)絡(luò)層(Network?Layer)的主要功能是完成網(wǎng)絡(luò)中主機間主機間的報文傳輸在廣域網(wǎng)中在廣域網(wǎng)中,這包括產(chǎn)生從源端到目的端的路由路由n當報文不得不跨越兩個或多個網(wǎng)絡(luò)時,又會產(chǎn)生很多新問題例如第二個網(wǎng)絡(luò)的尋址方法尋址方法可能不同于第一個網(wǎng)絡(luò);第二個網(wǎng)絡(luò)也可能因為第一個網(wǎng)絡(luò)的報文太長報文太長而無法接收;兩個網(wǎng)絡(luò)使用的協(xié)議協(xié)議也可能不同等網(wǎng)絡(luò)層必須解決這些問題,使異構(gòu)網(wǎng)絡(luò)能夠互連使異構(gòu)網(wǎng)絡(luò)能夠互連。
n擁塞控制:n在單個局域網(wǎng)中,網(wǎng)絡(luò)層是冗余的,在單個局域網(wǎng)中,網(wǎng)絡(luò)層是冗余的,因為報文是直接從一臺計算機傳送到另一臺計算機的4、傳輸層(Transport?Layer)n傳輸層的主要功能是完成網(wǎng)絡(luò)中不同主機上的用戶進程之進程之間間可靠的數(shù)據(jù)通信n最好的傳輸連接是一條無差錯的無差錯的、按順序按順序傳送數(shù)據(jù)的管道管道,即傳輸層連接是真正端到端的真正端到端的n由于絕大多數(shù)主機都支持多用戶操作,因而機器上有多道程序,這意味著多條連接將進出于這些主機,因此需要以某種方式區(qū)別報文屬于哪條連接區(qū)別報文屬于哪條連接識別這些連接的信息可識別這些連接的信息可以放入傳輸層的報文頭中以放入傳輸層的報文頭中5、會話層(Session?Layer)n會話層允許不同機器上的用戶之間建立會話關(guān)系建立會話關(guān)系會話層允許進行類似傳輸層的普通數(shù)據(jù)的傳送類似傳輸層的普通數(shù)據(jù)的傳送,在某些場合還提供了一些有用的增強型服務(wù)增強型服務(wù)允許用戶利用一次會話在遠端的分時系統(tǒng)上登錄分時系統(tǒng)上登錄,或者在兩臺機器間傳遞文件在兩臺機器間傳遞文件n會話層提供的服務(wù)之一是管理對話控制管理對話控制n會話層允許信息同時雙向傳輸雙向傳輸,或限制只能單向傳輸單向傳輸。
如果屬于后者,類似于物理信道上的半雙工模式,會話層將記錄此時該輪到哪一方n一種與對話控制有關(guān)的服務(wù)是令牌管理令牌管理(Token?Management)有些協(xié)議保證雙方不能同時進行同樣的操作有些協(xié)議保證雙方不能同時進行同樣的操作,這一點很重要為了管理這些活動,會話層提供了令牌,令牌可以在會話雙方之間移動,只有持有令牌的一方可以執(zhí)行某種操作6、表示層(Presentation?Layer)n表示層完成某些特定的功能,這些功能不必由每個用戶自己來實現(xiàn)n值得一提的是,表示層以下各層只關(guān)心從源端機到目標機可表示層以下各層只關(guān)心從源端機到目標機可靠地傳送比特靠地傳送比特,而表示層關(guān)心的是所傳送的信息的語法和語表示層關(guān)心的是所傳送的信息的語法和語義義n表示層服務(wù)的一個典型例子是用一種一致選定的標準方法對一致選定的標準方法對數(shù)據(jù)進行編碼數(shù)據(jù)進行編碼n大多數(shù)用戶程序之間并非交換隨機的比特,而是交換諸如人名、日期、貨幣數(shù)量和發(fā)票之類的信息這些對象是用字符字符串、整型數(shù)、浮點數(shù)的形式串、整型數(shù)、浮點數(shù)的形式,以及由幾種簡單類型組成的數(shù)據(jù)結(jié)構(gòu)來表示n表示層還涉及數(shù)據(jù)壓縮和解壓、數(shù)據(jù)加密和解密數(shù)據(jù)壓縮和解壓、數(shù)據(jù)加密和解密。
7、應(yīng)用層(Application?Layer)n應(yīng)用層包含大量人們普遍需要的協(xié)議雖然,對于需要通信的不同應(yīng)用來說,應(yīng)用層的協(xié)議都是必須的n例如,PC(Personal?Computer)機用戶使用仿真終端軟件通過網(wǎng)絡(luò)仿真某個遠程主機的終端并使用該遠程主機的資源n這個仿真終端程序使用虛擬終端協(xié)議將鍵盤輸入的數(shù)據(jù)傳送到主機的操作系統(tǒng),并接收顯示于屏幕的數(shù)據(jù)nFTP、telnet、HTTP、SMTP、POP3、DNSTCP/IP協(xié)議簇nTCP/IP參考模型實現(xiàn)了OSI模型中的所有功能功能n不同之處是TCP/IP協(xié)議模型將OSI模型的部分層進行了合并合并nOSI模型對層的劃分層的劃分更精確,而TCP/IP模型使用比較寬的層定義解剖TCP/IP模型(TCP/IP.vs.OSI)nTCP/IP組的四層、OSI參考模型和常用協(xié)議的對應(yīng)關(guān)系如圖2-3所示解剖TCP/IP模型nTCP/IP協(xié)議簇包括四個功能層:應(yīng)用層、傳輸層、網(wǎng)絡(luò)層及網(wǎng)絡(luò)接口層n這四層概括了相對于OSI參考模型中的七層n1、網(wǎng)絡(luò)接口層n網(wǎng)絡(luò)接口層包括用于物理連接、傳輸物理連接、傳輸?shù)乃泄δ躉SI模型把這一層功能分為兩層:物理層和數(shù)據(jù)鏈路層,TCP/IP參考模型把兩層合在一起。
竊聽;加密,交換式網(wǎng)絡(luò)n2、網(wǎng)絡(luò)層(Internet層)n網(wǎng)絡(luò)層由在兩個主機之間通信所必須的協(xié)議和過程協(xié)議和過程組成這意味著數(shù)據(jù)報文必須是可路由的n網(wǎng)絡(luò)層必須支持路由和路由管理功能網(wǎng)絡(luò)層必須支持路由和路由管理功能由外部對等協(xié)議提供IGP(Internal?Gateway?Protocol)、EGP.n威脅是IP欺騙攻擊保護措施:防火墻、系統(tǒng)補丁解剖TCP/IP模型n3、傳輸層n這一層支持的功能包括:為了在網(wǎng)絡(luò)中傳輸對應(yīng)用數(shù)據(jù)進行對應(yīng)用數(shù)據(jù)進行分段分段,執(zhí)行數(shù)學檢查來保證所收數(shù)據(jù)的完整性完整性,為多個應(yīng)用同時傳輸數(shù)據(jù)多路復用數(shù)據(jù)流(傳輸和接收)這意味著該層能識別特殊應(yīng)用,對亂序收到的數(shù)據(jù)進行重新排序?qū)y序收到的數(shù)據(jù)進行重新排序n當前的主機到主機層包括兩個協(xié)議實體:傳輸控制協(xié)議(TCP)和用戶數(shù)據(jù)報協(xié)議(UDP)DOS,縮短三次握手超時n4、應(yīng)用層n應(yīng)用層協(xié)議提供遠程訪問和資源共享應(yīng)用層協(xié)議提供遠程訪問和資源共享應(yīng)用包括Telnet服務(wù)、FTP服務(wù)、SMTP服務(wù)和HTTP服務(wù)等,很多其他應(yīng)用程序駐留并運行在此層,并且依賴于底層的功能該層是最難保護的一層網(wǎng)絡(luò)協(xié)議IP?nIP協(xié)議已經(jīng)成為世界上最重要的網(wǎng)際協(xié)議。
nIP的功能定義在由IP頭結(jié)構(gòu)的數(shù)據(jù)中IP是網(wǎng)絡(luò)層上的主要協(xié)議,同時被TCP協(xié)議和UDP協(xié)議使用nTCP/IP的整個數(shù)據(jù)報在數(shù)據(jù)鏈路層的結(jié)構(gòu)如表2-1所示n表2-1?TCP/IP數(shù)據(jù)報的結(jié)構(gòu)以太網(wǎng)數(shù)據(jù)包以太網(wǎng)數(shù)據(jù)包頭頭IP頭頭TCP/UDP/ICMP/IGMP頭頭數(shù)據(jù)數(shù)據(jù)n可以看出一條完整數(shù)據(jù)報由四部分組成n第三部分是該數(shù)據(jù)報采用的協(xié)議n第四部分是數(shù)據(jù)報傳遞的數(shù)據(jù)內(nèi)容n其中IP頭的結(jié)構(gòu)如表2-2所示IP頭的結(jié)構(gòu)版本(版本(4位)位)頭長頭長度(度(4位)位) 服服務(wù)類務(wù)類型(型(8位)位)封包封包總長總長度(度(16位)位)封包封包標識標識((16位)位)標標志(志(3位)位)片斷偏移地址(片斷偏移地址(13位)位)存活存活時間時間((8位)位) 協(xié)議協(xié)議((8位)位)校校驗驗和(和(16位)位)來源來源IP地址(地址(32位)位)目的目的IP地址(地址(32位)位)選項選項(可(可選選))填充(可選)數(shù)據(jù)數(shù)據(jù)IP頭的結(jié)構(gòu)nIP頭結(jié)構(gòu)在所有協(xié)議中都是固定的,對表2-2說明如下:n(1)字節(jié)和數(shù)字的存儲順序是從右到左從右到左,依次是從低位到高位從低位到高位,而網(wǎng)??????絡(luò)存儲順序是從左到右從左到右,依次從低位到高位從低位到高位。
n(2)版本版本:占第一個字節(jié)的高四位?????????????頭長度頭長度:占第一個字節(jié)的低四位,單位為單位為4個字節(jié)個字節(jié)n(3)服務(wù)類型服務(wù)類型:前3位為優(yōu)先字段權(quán),現(xiàn)在已經(jīng)被忽略接著4位用來????????????表示最小延遲、最大吞吐量、最高可靠性和最小費用n(4)封包總長度封包總長度:整個IP報的長度,單位為字節(jié)單位為字節(jié)n(5)存活時間存活時間:就是封包的生存時間通常用通過的路由器的個數(shù)來????????????衡量,比如初始值設(shè)置為32,則每通過一個路由器處理就會被減????????????一,當這個值為0的時候就會丟掉這個包,并用ICMP消息通知源主機IP頭的結(jié)構(gòu)n(6)協(xié)議:定義了數(shù)據(jù)的協(xié)議,分別為:TCP、UDP、ICMP和IGMP定義為:n#define?PROTOCOL_TCP????0x06n#define?PROTOCOL_UDP????0x11n#define?PROTOCOL_ICMP???0x01n#define?PROTOCOL_IGMP???0x02n(7)檢驗和:校驗的首先將該字段設(shè)置為0,然后將IP頭的每16位進行二進制取反求和,將結(jié)果保存在校驗和字段。
n(8)來源IP地址:將IP地址看作是32位數(shù)值則需要將網(wǎng)絡(luò)字節(jié)順序轉(zhuǎn)化位主機字節(jié)順序轉(zhuǎn)化的方法是:將每4個字節(jié)首尾互換,將2、3字節(jié)互換n(9)目的IP地址:轉(zhuǎn)換方法和來源IP地址一樣n在網(wǎng)絡(luò)協(xié)議中,IP是面向非連接的,所謂的非連接就是傳遞數(shù)據(jù)的時候,不檢測網(wǎng)絡(luò)是否連通所以是不可靠的數(shù)據(jù)報協(xié)議,IP協(xié)議主要負責在主機之間尋址和選擇數(shù)據(jù)包路由?抓取Ping指令發(fā)送的數(shù)據(jù)包n按照第一章Sniffer的設(shè)置抓取Ping指令發(fā)送的數(shù)據(jù)包,命令執(zhí)行如圖2-4所示?抓取Ping指令發(fā)送的數(shù)據(jù)包抓取Ping指令發(fā)送的數(shù)據(jù)包n其實IP報頭的所有屬性都在報頭中顯示出來,可以看出實際抓取的數(shù)據(jù)報和理論上的數(shù)據(jù)報一致,分析如圖2-6所示IPv4的IP地址分類?nIPv4地址在1981年9月實現(xiàn)標準化的基本的IP地址是8位一個單元的32位二進制數(shù)為了方便人們的使用,對機器友好的二進制地址轉(zhuǎn)變?yōu)槿藗兏煜さ氖M制地址nIP地址中的每一個8位組用0~255之間的一個十進制數(shù)表示這些數(shù)之間用點“.”隔開,因此,最小的IPv4地址值為0.0.0.0,最大的地址值為255.255.255.255,然而這兩個值是保留的,沒有分配給任何系統(tǒng)。
nIP地址分成五類:A類地址、B類地址、C類地址、D類地址和E類地址n每一個IP地址包括兩部分:網(wǎng)絡(luò)地址和主機地址,上面五類地址對所支持的網(wǎng)絡(luò)數(shù)和主機數(shù)有不同的組合1、A類地址n一個A類IP地址僅使用第一個8位組表示網(wǎng)絡(luò)地址剩下的3個8位組表示主機地址A類地址的第一個位總為0,這一點在數(shù)學上限制了A類地址的范圍小于127,因此理論上僅有127個可能的A類網(wǎng)絡(luò),而0.0.0.0地址又沒有分配,所以實際上只有126個A類網(wǎng)技術(shù)上講,127.0.0.0也是一個A類地址,但是它已被保留作閉環(huán)(Look?Back)測試之用而不能分配給一個網(wǎng)絡(luò)nA類地址后面的24位表示可能的主機地址,A類網(wǎng)絡(luò)地址的范圍從1.0.0.0到126.0.0.0每一個A類地址能支持16,777,214個不同的主機地址,這個數(shù)是由2的24次方再減去2得到的減2是必要的,因為IP把全0保留為表示網(wǎng)絡(luò)而全1表示網(wǎng)絡(luò)內(nèi)的廣播地址2、B類地址n設(shè)計B類地址的目的是支持中到大型的網(wǎng)絡(luò)B類網(wǎng)絡(luò)地址范圍從128.1.0.0到191.254.0.0B類地址蘊含的數(shù)學邏輯是相當簡單的n一個B類IP地址使用兩個8位組表示網(wǎng)絡(luò)號,另外兩個8位組表示主機號。
B類地址的第1個8位組的前兩位總是設(shè)置為1和0,剩下的6位既可以是0也可以是1,這樣就限制其范圍小于等于191,這里的191由128+32+16+8+4?+2+1得到n最后的16位(2個8位組)標識可能的主機地址每一個B類地址能支持64,534個惟一的主機地址,這個數(shù)由2的16次方減2得到,B類網(wǎng)絡(luò)有16,382個3、C類地址nC類地址用于支持大量的小型網(wǎng)絡(luò)這類地址可以認為與A類地址正好相反A類地址使用第一個8位組表示網(wǎng)絡(luò)號,剩下的3個表示主機號,而C類地址使用三個8位組表示網(wǎng)絡(luò)地址,僅用一個8位組表示主機號nC類地址的前3位數(shù)為110,前兩位和為192(128+64),這形成了C類地址空間的下界第三位等于十進制數(shù)32,這一位為0限制了地址空間的上界不能使用第三位限制了此8位組的最大值為255-32等于223因此C類網(wǎng)絡(luò)地址范圍從192.0.1.0至223.255.254.0n最后一個8位組用于主機尋址每一個C類地址理論上可支持最大2?5?6個主機地址(0~255),但是僅有254個可用,因為0和255不是有效的主機地址可以有2,097,150個不同的C類網(wǎng)絡(luò)地址n在IP地址中,0和255是保留的主機地址。
IP地址中所有的主機地址為0用于標識局域網(wǎng)同樣,全為1表示在此網(wǎng)段中的廣播地址4、D類地址nD類地址用于在IP網(wǎng)絡(luò)中的組播(Multicasting)D類組播地址機制僅有有限的用處一個組播地址是一個惟一的網(wǎng)絡(luò)地址它能指導報文到達預定義的IP地址組n因此,一臺機器可以把數(shù)據(jù)流同時發(fā)送到多個接收端,這比為每個接收端創(chuàng)建一個不同的流有效得多組播長期以來被認為是IP網(wǎng)絡(luò)最理想的特性,因為它有效地減小了網(wǎng)絡(luò)流量nD類地址空間,和其他地址空間一樣,有其數(shù)學限制,D類地址的前4位恒為1110,預置前3位為1意味著D類地址開始于128+64+32等于224第4位為0意味著D類地址的最大值為128+64+32+8+4+2+1為239,因此D類地址空間的范圍從224.0.0.0到239.255.255.2545、E類地址nE類地址雖被定義為保留研究之用因此Internet上沒有可用的E類地址nE類地址的前4位為1,因此有效的地址范圍從240.0.0.0至255.255.255.255子網(wǎng)掩碼n子網(wǎng)掩碼是用來判斷任意兩臺計算機的IP地址是否屬于同一子網(wǎng)絡(luò)的根據(jù)n最為簡單的理解就是兩臺計算機各自的IP地址與子網(wǎng)掩碼進行二進制“與”(AND)運算后,如果得出的結(jié)果是相同的,則說明這兩臺計算機是處于同一個子網(wǎng)絡(luò)上的,可以進行直接的通訊。
n計算機A的IP地址為192.168.0.1,子網(wǎng)掩碼為255.255.255.0,將轉(zhuǎn)化為二進制進行“與”運算,運算過程如表2-3所示子網(wǎng)掩碼n計算機A的IP地址為192.168.0.1,子網(wǎng)掩碼為255.255.255.0,將轉(zhuǎn)化為二進制進行“與”運算,運算過程如表2-3所示IP地址11010000.10101000.00000000.00000001子網(wǎng)掩碼11111111.11111111.11111111.00000000IP地址與子網(wǎng)掩碼按位“與”運算11000000.10101000.00000000.00000000運算的結(jié)果轉(zhuǎn)化為十進制192.168.0.0子網(wǎng)掩碼n計算機B的IP地址為192.168.0.254,子網(wǎng)掩碼為255.255.255.0,將轉(zhuǎn)化為二進制進行“與”運算運算過程如表2-4所示IP地址11010000.10101000.00000000.11111110子網(wǎng)掩碼11111111.11111111.11111111.00000000IP地址與子網(wǎng)掩碼按位“與”運算11000000.10101000.00000000.00000000運算的結(jié)果轉(zhuǎn)化為十進制192.168.0.0子網(wǎng)掩碼n計算機C的IP地址為192.168.0.4,子網(wǎng)掩碼為255.255.255.0,將轉(zhuǎn)化為二進制進行“與”運算。
運算過程如表2-5所示IP地址11010000.10101000.00000000. 00000100子網(wǎng)掩碼11111111.11111111.11111111.00000000IP地址與子網(wǎng)掩碼按位“與”運算11000000.10101000.00000000.00000000運算的結(jié)果轉(zhuǎn)化為十進制192.168.0.0傳輸控制協(xié)議協(xié)議TCP?nTCP是傳輸層協(xié)議,提供可靠的應(yīng)用數(shù)據(jù)傳輸nTCP在兩個或多個主機之間建立面向連接的通信nTCP支持多數(shù)據(jù)流操作,提供錯誤控制,甚至完成對亂序到達的報文進行新排重序TCP協(xié)議的頭結(jié)構(gòu)?n和IP一樣,TCP的功能受限于其頭中攜帶的信息因此理解TCP的機制和功能需要了解TCP頭中的內(nèi)容,表2-6顯示了TCP頭結(jié)構(gòu)來源端口(2字節(jié))目的端口(2字節(jié))序號(4字節(jié))確認序號(4字節(jié))頭長度(4位)保留(6位)URGACKPSHRSTSYNFIN窗口大?。?字節(jié))校驗和(16位)緊急指針(16位)選項(可選)數(shù)據(jù)TCP協(xié)議的頭結(jié)構(gòu)nTCP協(xié)議的頭結(jié)構(gòu)都是固定的,對表2-6說明如下:n(1)TCP源端口(Source?Port):16位的源端口包含初始化通信的端口號。
源端口和IP地址的作用是標識報文的返回地址n(2)TCP目的端口(Destination?Port):16位的目的端口域定義傳?輸?shù)哪康倪@個端口指明報文接收計算機上的應(yīng)用程序地址接口n(3)序列號(Sequence?Number):TCP連線發(fā)送方向接收方的封包順序號n(4)確認序號(Acknowledge?Number):接收方回發(fā)的應(yīng)答順序號n(5)頭長度(Header?Length):表示TCP頭的四字節(jié)數(shù),如果轉(zhuǎn)化為字節(jié)個數(shù)需要乘以4n(6)URG:是否使用緊急指針,0為不使用,1為使用n(7)ACK:請求/應(yīng)答狀態(tài)0為請求,1為應(yīng)答TCP協(xié)議的頭結(jié)構(gòu)n(8)PSH:以最快的速度傳輸數(shù)據(jù)n(9)RST:連線復位,首先斷開連接,然后重建n(10)SYN:同步連線序號,用來建立連線n(11)FIN:結(jié)束連線如果FIN為0是結(jié)束連線請求,F(xiàn)IN為1表示結(jié)?束連線n(12)窗口大?。╓indow):目的機使用16位的域告訴源主機,它想收到的每個TCP數(shù)據(jù)段大小n(13)校驗和(Check?Sum):這個校驗和和IP的校驗和有所不同,?不僅對頭數(shù)據(jù)進行校驗還對封包內(nèi)容校驗n(14)緊急指針(Urgent?Pointer):當URG為1的時候才有效。
TCP的緊急方式是發(fā)送緊急數(shù)據(jù)的一種方式一次完整的FTP會話?n首先開啟目標主機的FTP服務(wù),如圖2-7所示?一次完整的FTP會話n啟動Sniffer,然后在主機的DOS命令行下利用FTP指令連接目標主機上的FTP服務(wù)器,連接過程如圖2-8所示一次完整的FTP會話一次完整的FTP會話n登錄FTP的過程是一次典型的TCP連接,因為FTP服務(wù)使用的是TCP協(xié)議分析TCP報頭的結(jié)構(gòu)如圖2-10所示傳輸控制協(xié)議(TCP)的特點n傳輸控制協(xié)議(TCP)的特點是:提供可靠的、面向連接的數(shù)據(jù)報傳遞服務(wù)n傳輸控制協(xié)議可以做到如下的六點:n1、確保IP數(shù)據(jù)報的成功傳遞成功傳遞n2、對程序發(fā)送的大塊數(shù)據(jù)進行分段和重組分段和重組n3、確保正確排序正確排序以及按順序傳遞按順序傳遞分段的數(shù)據(jù)n4、通過計算校驗和校驗和,進行傳輸數(shù)據(jù)的完整性檢查完整性檢查n5、根據(jù)數(shù)據(jù)是否接收成功發(fā)送消息通過有選擇的確有選擇的確認認,也對沒有收到的數(shù)據(jù)發(fā)送確認n6、為必須使用可靠的基于會話可靠的基于會話的數(shù)據(jù)傳輸?shù)某绦蛱峁┲С?,如?shù)據(jù)庫服務(wù)和電子郵件服務(wù)TCP協(xié)議的工作原理?nTCP提供兩個網(wǎng)絡(luò)主機之間的點對點通訊TCP從程序中接收數(shù)據(jù)并將數(shù)據(jù)處理成字節(jié)流。
n首先將字節(jié)分成段,然后對段進行編號和排序以便傳輸在兩個TCP主機之間交換數(shù)據(jù)之前,必須先相互建立會話TCP會話通過三次握手的完成初始化這個過程使序號同步,并提供在兩個主機之間建立虛擬連接虛擬連接所需的控制信息控制信息nTCP在建立連接的時候需要三次確認,俗稱“三次握手”,在斷開連接的時候需要四次確認,俗稱“四次揮手”TCP協(xié)議的三次“握手”?TCP協(xié)議的三次“握手”n這個過程在FTP的會話過程中也明顯的顯示出來,如圖2-12所示第一次“握手”?n首先分析建立“握手”第一個過程包的結(jié)構(gòu),如圖2-13所示第二次“握手”?nSYN為1,開始建立請求連接,需要對方計算機確認,對方計算機確認返回的數(shù)據(jù)包如圖2-14所示?第三次“握手”?n對方計算機返回的數(shù)據(jù)包中ACK為1并且SYN為1,說明同意連接n這個時候需要源計算機的確認就可以建立連接了確認數(shù)據(jù)包的結(jié)構(gòu)如圖2-15所示?TCP協(xié)議的四次“揮手”?n需要斷開連接的時候,TCP也需要互相確認才可以斷開連接,四次交互過程如圖2-16所示第一次“揮手”?n第一次交互過程的數(shù)據(jù)報結(jié)構(gòu)如圖2-17所示第二次“揮手”?n第一次交互中,首先發(fā)送一個FIN=1的請求,要求斷開,目標主機在得到請求后發(fā)送ACK=1進行確認,如圖2-18所示。
?第三次“揮手”?n在確認信息發(fā)出后,就發(fā)送了一個FIN=1的包,與源主機斷開,如圖2-19所示?第四次“揮手”?n隨后源主機返回一條ACK=1的信息,這樣一次完整的TCP會話就結(jié)束了如圖2-20所示用戶數(shù)據(jù)報協(xié)議UDP?nUDP為應(yīng)用程序提供發(fā)送和接收數(shù)據(jù)報的功能n某些程序(比如騰訊的OICQ)使用的是UDP協(xié)議,UDP協(xié)議在TCP/IP主機之間建立快速、輕便、不可靠的數(shù)據(jù)傳輸通道?UDP和TCP的區(qū)別--UDP的結(jié)構(gòu)nUDP提供的是非連接的數(shù)據(jù)報服務(wù),意味著UDP無法保證任何數(shù)據(jù)報的傳遞和驗證nUDP的結(jié)構(gòu)如圖2-21所示?UDP和TCP傳遞數(shù)據(jù)的差異nUDP和TCP傳遞數(shù)據(jù)的差異類似于電話和明信片之間的差異nTCP就像電話,必須先驗證目標是否可以訪問后才開始通訊nUDP就像明信片,信息量很小而且每次傳遞成功的可能性很高,但是不能完全保證傳遞成功nUDP通常由每次傳輸少量數(shù)據(jù)或有實時需要的程序使用n在這些情況下,UDP?的低開銷比TCP?更適合nUDP?與TCP?提供的服務(wù)和功能直接對比?:UDP和TCP傳遞數(shù)據(jù)的比較?UDP協(xié)議TCP協(xié)議無連接的服務(wù);在主機之間不建立會話。
面向連接的服務(wù);在主機之間建立會話UDP不能確?;虺姓J數(shù)據(jù)傳遞或序列化數(shù)據(jù)TCP 通過確認和按順序傳遞數(shù)據(jù)來確保數(shù)據(jù)的傳遞使用 UDP 的程序負責提供傳輸數(shù)據(jù)所需的可靠性使用 TCP 的程序能確保可靠的數(shù)據(jù)傳輸UDP快速,具有低開銷要求,并支持點對點和一點對多點的通訊TCP 比較慢,有更高的開銷要求,而且只支持點對點通訊UDP 和 TCP 都使用端口標識每個 TCP/IP 程序的通訊?UDP協(xié)議的頭結(jié)構(gòu)?nUDP的頭結(jié)構(gòu)比較簡單,如表2-8所示?源端口(2字節(jié))目的端口(2字節(jié))封報長度(2字節(jié))校驗和(2字節(jié))數(shù)據(jù)UDP的頭結(jié)構(gòu)?n(1)源端口(Source Port):16位的源端口域包含初始化通信的端口號源端口和IP地址的作用是標識報文的返回地址n(2)目的端口(Destination Port):16位的目的端口域定義傳輸?shù)哪康倪@個端口指明報文接收計算機上的應(yīng)用程序地址接口n(3)封包長度(Length):UDP頭和數(shù)據(jù)的總長度n(4)校驗和(Check Sum):和TCP和校驗和一樣,不僅對頭數(shù)據(jù)進行校驗,還對包的內(nèi)容進行校驗UDP數(shù)據(jù)報分析?n常用的網(wǎng)絡(luò)服務(wù)中,DNS使用UDP協(xié)議。
DNS是域名系統(tǒng)?(Domain?Name?System)的縮寫n當用戶在應(yīng)用程序中輸入DNS名稱時,DNS服務(wù)可以將此名稱解析為與此名稱相關(guān)的IP地址設(shè)置DNS解析n需要在主機上設(shè)置DNS解析的主機,將主機的DNS的解析指向虛擬機,如圖2-22所示設(shè)置DNS解析n雖然虛擬機并沒有設(shè)置DNS解析,但是只要訪問DNS都可以抓到UDP數(shù)據(jù)報設(shè)置完畢后,在主機的DOS界面中輸入命令nslookup,如圖2-23所示UDP報頭n查看Sniffer抓取的數(shù)據(jù)報,可以看到UDP報頭,如圖2-24所示UDP報頭的分析n對UDP報頭的分析如圖2-25所示互聯(lián)網(wǎng)控制消息協(xié)議ICMP?n通過ICMP協(xié)議,主機和路由器可以報告錯誤并交換相關(guān)的狀態(tài)信息在下列情況中,通常自動發(fā)送ICMP消息:nIP數(shù)據(jù)報無法訪問目標nIP路由器(網(wǎng)關(guān))無法按當前的傳輸速率轉(zhuǎn)發(fā)數(shù)據(jù)報nIP路由器將發(fā)送主機重定向為使用更好的到達目標的路nICMP協(xié)議的結(jié)構(gòu)如圖2-26所示ICMP協(xié)議的結(jié)構(gòu)?ICMP協(xié)議的頭結(jié)構(gòu)?nICMP頭結(jié)構(gòu)比較簡單,如表2-9所示類類型(型(8位)位)代代碼碼((8位)位)校校驗驗和(和(8位)位)類類型或者代型或者代碼碼標識(標識(16位)、順序號(位)、順序號(16位)、數(shù)據(jù)(位)、數(shù)據(jù)(32B))ICMP數(shù)據(jù)報分析?n使用Ping命令發(fā)送ICMP回應(yīng)請求消息,使用Ping命令,可以檢測網(wǎng)絡(luò)或主機通訊故障并解決常見的TCP/IP連接問題。
分析Ping指令的數(shù)據(jù)報,如圖2-27所示?FTP服務(wù)?nFTP的缺省端口是20(用于數(shù)據(jù)傳輸)和21(用于命令傳輸)n在TCP/IP中FTP是非常獨特的,因為命令和數(shù)據(jù)能夠同時傳輸,而數(shù)據(jù)傳輸是實時的,其他協(xié)議不具有這個特性nFTP客戶端可以是命令界面的也可以是圖形界面的命令界面的如圖2-28所示命令行等錄FTP服務(wù)器?圖形界面登錄FTP服務(wù)器?n也可以在瀏覽器中輸入“ftp://主機IP地址”,利用圖形界面連接FTP服務(wù)器,如圖2-29所示更改登錄用戶信息n登錄FTP可以更改登錄用戶信息,選擇菜單“文件”下的菜單項“登錄”,出現(xiàn)用戶名輸入對話框,如圖2-30所示?Telnet服務(wù)?nTelnet是TELecommunications?NETwork的縮寫,其名字具有雙重含義,既指應(yīng)用也是指協(xié)議自身nTelnet給用戶提供了一種通過網(wǎng)絡(luò)登錄遠程服務(wù)器的方式nTelnet通過端口23工作開啟Telnet服務(wù)nTelnet要求有一個Telnet服務(wù)器,此服務(wù)器駐留在主機上,等待著遠端機器的授權(quán)登錄要使用Telnet服務(wù)首先需要在虛擬機上開啟Telnet服務(wù),選擇進入Telnet服務(wù)管理器,如圖2-31所示。
開啟Telnet服務(wù)n在Telnet服務(wù)管理器中選擇4,啟動Telnet服務(wù)器,如圖2-32所示連接Telnet服務(wù)器n虛擬機上的Telnet服務(wù)器就啟動了,然后在主機的DOS窗口中連接虛擬機的Telnet服務(wù)器,如圖2-33所示Email服務(wù)n目前Email服務(wù)用的兩個主要的協(xié)議是:簡單郵件傳輸協(xié)議SMTP(Simple?Mail?Transfer?Protocol)和郵局協(xié)議POP3(Post?Office?Protocol)nSMTP默認占用25端口,用來發(fā)送郵件,POP3占用110端口,用來接收郵件n在Windows平臺下,主要利用Microsoft?Exchange?Server作為電子郵件服務(wù)器Web服務(wù)nWeb服務(wù)是目前最常用的服務(wù),使用HTTP協(xié)議,默認Web服務(wù)占用80端口n在Windows平臺下一般使用IIS(Internet?Information?Server)作為Web服務(wù)器常用的網(wǎng)絡(luò)服務(wù)端口?端口協(xié)議服務(wù)21TCPFTP服務(wù)25TCPSMTP服務(wù)53 TCP/UDPDNS服務(wù)80TCPWeb服務(wù)135TCPRPC服務(wù)137UDPNetBIOS域名服務(wù)138UDPNetBIOS數(shù)據(jù)報服務(wù)139TCPNetBIOS會話服務(wù)443TCP基于SSL的HTTP服務(wù)445TCP/UDPMicrosoft SMB服務(wù)3389TCPWindows終端服務(wù)常用的網(wǎng)絡(luò)命令?n常用的網(wǎng)絡(luò)命令有:n判斷主機是否連通的ping指令n查看IP地址配置情況的ipconfig指令n查看網(wǎng)絡(luò)連接狀態(tài)的netstat指令n進行網(wǎng)絡(luò)操作的net指令n進行定時器操作的at指令。
??ping?nping指令通過發(fā)送ICMP包來驗證與另一臺TCP/IP計算機的IP級連接n應(yīng)答消息的接收情況將和往返過程的次數(shù)一起顯示出來nping指令用于檢測網(wǎng)絡(luò)的連接性和可到達性,如果不帶參數(shù),ping將顯示幫助,如圖2-39所示?ping??ping?n可以利用ping指令驗證和對方計算機的連通性,使用的語法是“ping?對方計算機名或者IP地址”如果連通的話,返回的信息如圖2-40所示?ipconfig指令?nipconfig指令顯示所有TCP/IP網(wǎng)絡(luò)配置信息、刷新動態(tài)主機配置協(xié)議(DHCP,?Dynamic?Host?Configuration?Protocol)和域名系統(tǒng)(DNS)設(shè)置n使用不帶參數(shù)的ipconfig可以顯示所有適配器的IP地址、子網(wǎng)掩碼和默認網(wǎng)關(guān)在DOS命令行下輸入ipconfig指令netstat指令?nnetstat指令顯示活動的連接、計算機監(jiān)聽的端口、以太網(wǎng)統(tǒng)計信息、IP?路由表、IPv4統(tǒng)計信息(IP、ICMP、TCP和UDP協(xié)議)n使用“netstat?-an”命令可以查看目前活動的連接和開放的端口,是網(wǎng)絡(luò)管理員查看網(wǎng)絡(luò)是否被入侵的最簡單方法。
使用的方法如圖2-43所示net指令?nnet指令的功能非常的強大,net指令在網(wǎng)絡(luò)安全領(lǐng)域通常用來查看計算機上的用戶列表、添加和刪除用戶、和對方計算機建立連接、啟動或者停止某網(wǎng)絡(luò)服務(wù)等n?n利用“net?user”查看計算機上的用戶列表,如圖2-44所示net指令n利用“net?user?用戶名?密碼”給某用戶修改密碼,比如把管理員的密碼修改成“123456”,如圖2-45所示案例2-2?建立用戶并添加到管理員組?n案例名稱:添加用戶到管理員組案例名稱:添加用戶到管理員組n文件名稱:文件名稱:2-01.batn?nnet?user?jack?123456?/addnnet?localgroup?administrators?jack?/addnnet?usern?和對方計算機建立信任連接?n只要擁有某主機的用戶名和密碼,就可以用“IPC$(Internet?Protocol?Control)”建立信任連接,建立完信任連接后,可以在命令行下完全控制對方計算機n比如得到IP為172.18.25.109計算機的管理員密碼為123456,可以利用指令“net?use?\\172.18.25.109\ipc$?123456?/user:administrator”,如圖2-47所示。
和對方計算機建立信任連接n建立完畢后,就可以操作對方的計算機,比如查看對方計算機上的文件,如圖2-48所示at指令?n案例名稱:創(chuàng)建定時器案例名稱:創(chuàng)建定時器n文件名稱:文件名稱:2-02.batn?nnet?use?*?/delnnet?use?\\172.18.25.109\ipc$?123456?/user:administratornnet?time?\\172.18.25.109nat?8:40?notepad.exe本章總結(jié)n本章需要重點理解OSI參考模型和TCP/IP協(xié)議簇的聯(lián)系和區(qū)別n理解IP/TCP/UDP/ICMP協(xié)議頭的結(jié)構(gòu)并且學會使用Sniffer進行分析n了解常用的網(wǎng)絡(luò)服務(wù)以及它們提供服務(wù)的端口n熟練掌握常用網(wǎng)絡(luò)命令及其使用方法本章習題n【1】、簡述OSI參考模型的結(jié)構(gòu)n【2】、簡述TCP/IP協(xié)議簇的基本結(jié)構(gòu),并分析每層可能受到的威脅以及如何防御n【4】、抓取telnet的數(shù)據(jù)報,并簡要分析IP頭的結(jié)構(gòu)上機完成)n【5】、抓取telnet的數(shù)據(jù)報,并分析TCP頭的結(jié)構(gòu)、分析TCP的三次“握手”和四次“揮手”的過程上機完成)n【6】、簡述常用的網(wǎng)絡(luò)服務(wù)以及提供服務(wù)的默認端口。
n【7】、簡述ping指令、ipconfig指令、netstat指令、net指令和at指令的功能和用途。