版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、課 程 名 稱: 物聯(lián)網(wǎng)信息安全管理 設(shè) 計 題 目: 基于 TCP協(xié)議的網(wǎng)絡(luò)攻擊 學(xué)院(直屬系): 計算機學(xué)院 年級/專業(yè)/班: 物聯(lián)網(wǎng)工程 學(xué) 生 姓 名:宋 涌周禮佟胡 坤 指 導(dǎo) 教 師: 魏正曦 老 師 完成日期:2017.1.12 摘要本課程是物聯(lián)網(wǎng)工程專業(yè)所開設(shè)的一門重要實踐課程,主要要求掌握網(wǎng)絡(luò)安全原理和技術(shù)在實踐中的應(yīng)用。本課程設(shè)計的目的是在理論學(xué)習(xí)的基礎(chǔ)上,動手實踐網(wǎng)絡(luò)安全的相關(guān)理論,通過應(yīng)用所學(xué)習(xí)的知識,來解決一些實際的網(wǎng)絡(luò)安全應(yīng)用問題。在此基礎(chǔ)上,真正理解和掌握網(wǎng)絡(luò)安全的基本原理,具備網(wǎng)絡(luò)安全
2、方面的分析和動手能力。在網(wǎng)絡(luò)攻防實驗環(huán)境中完成TCP/IP協(xié)議棧中TCP層重點協(xié)議的攻擊實驗。包括TCP RST攻擊、TCP會話劫持和TCP SYN Flood攻擊。關(guān)鍵字:TCP RST攻擊、TCP會話劫持和TCP SYN Flood攻擊課題分工 宋 涌:TCP會話劫持,和編寫課程設(shè)計 胡 坤:TCP RST攻擊,和參考資料查詢。周禮?。篢CP SYN Flood攻擊,和課程設(shè)計分工摘要2一引言4二實驗原理5三設(shè)計過程83.1 TCP RST攻擊83.2 TCP會話劫持123.3 TCP SYN Flood攻擊22四 總結(jié)與體會25參考文獻26一引言 源于 Unix 的網(wǎng)絡(luò)協(xié)議 TC P/I
3、P隨著 Internet的飛迅發(fā) 展 ,已被越來越多的人所使用.然而由于 TCP/IP協(xié)議族在設(shè) 計時并沒有過多的考慮網(wǎng)絡(luò)安全問題 ,黑客事件不斷發(fā)生 ,使 如電子商務(wù)等 Internet應(yīng)用存在著許多不安全因素 .欲防網(wǎng) 絡(luò)攻擊 ,必應(yīng)先知其攻擊原理 ,才可正確實施安全策略. 下面是網(wǎng)絡(luò)內(nèi)部或外部人員常用的幾種網(wǎng)絡(luò)攻擊方式: 密碼猜測 ( Password Guessing): 主要通過窮舉的辦法 來試探被攻擊系統(tǒng)的密碼 ,為下一步攻擊做好準(zhǔn)備 . 窺探 ( Sniffing): 主要通過劫獲網(wǎng)絡(luò)上的數(shù)據(jù)包來獲 得被攻擊系統(tǒng)的認(rèn)證信息或其它有價值的信息. 電子欺騙 ( Spoofing):
4、通過假冒合法用戶的身份來進 行網(wǎng)絡(luò)攻擊 ,從而達(dá)到掩蓋攻擊者真實身份 ,嫁禍他人的目 的 . 信息剽竊 ( Information Theft): 這是網(wǎng)絡(luò)攻擊的主要 目的之一.攻擊者通過獲得訪問被攻擊主機的許可權(quán)而竊取 主機上的重要信息 . 讓主機拒絕服務(wù) (Denial of Service): 是網(wǎng)絡(luò)攻擊的主 要目的之一. 這種攻擊使主機或網(wǎng)絡(luò)不能為合法用戶提供服 務(wù) .例如攻擊者可以用 TC P的 SYN信號淹沒的方法來實現(xiàn) 這一攻擊 . 信息破壞 ( Information Destruction): 這也是網(wǎng)絡(luò)攻擊 的主要目的之一 .通過篡改或毀壞被攻擊主機上的信息達(dá)到 破壞的目的
5、 . 以上這些攻擊主要是利用 TCP /IP協(xié)議本身的漏洞而對 TCP/IP協(xié)議進行攻擊實現(xiàn)的 ,下面分析了幾種對 TC P/IP的 攻擊的實現(xiàn)方式 未來的高技術(shù)戰(zhàn)爭是信息網(wǎng)絡(luò)戰(zhàn), 以網(wǎng)絡(luò)中心信息為主的聯(lián)合作戰(zhàn)正在取代傳統(tǒng)的平臺中心戰(zhàn)。TCP/ IP 協(xié)議使得世界上不同體系結(jié)構(gòu)的計算機網(wǎng)絡(luò)互連在 一起形成一個全球性的廣域網(wǎng)絡(luò) Internet, 實現(xiàn)海、陸、 空、天立體戰(zhàn)埸信息共享。因此開展 TCP/IP 協(xié)議的分析 和研究, 尋求其簿弱環(huán)節(jié), 能否攻其一點, 而癱瘓一片, 即以小的投入達(dá)到大的產(chǎn)出, 是有效實施計算機網(wǎng)絡(luò) 對抗的關(guān)鍵。 在以 TCP/IP 為協(xié)議的通信計算機網(wǎng)絡(luò)中, 通常將
6、每臺計算機稱為主機, 在 Internet 中的每一臺計算機可 以訪問 Internet 上的其它任意一臺計算機, 好像它們在 一個局域網(wǎng)內(nèi)用雙絞線或同軸電纜直接連接起來一樣 (不同之處是速度比局域網(wǎng)的慢)。TCP/IP 通信計算機網(wǎng) 絡(luò)結(jié)構(gòu)如圖所示。 圖1.1 我們把計算機網(wǎng)絡(luò)之間相連的設(shè)備稱為路由器。 各主機之間可以通過數(shù)據(jù)鏈連接, 也可以通過路由器 間接相連。 TCP/IP 協(xié)議使用“包” (packet)這個數(shù)據(jù)單位來發(fā) 送信息, 圖中用箭頭指向描述了從主機 C 向主機 J 發(fā)送信息包的路徑。二實驗原理 TCP是在IP網(wǎng)絡(luò)層之上的傳輸層協(xié)議,用于提供port到port面向連接的可靠的字
7、節(jié)流傳輸。我來用土語解釋下上面的幾個關(guān)鍵字:port到port:IP層只管數(shù)據(jù)包從一個IP到另一個IP的傳輸,IP層之上的TCP層加上端口后,就是面向進程了,每個port都可以對應(yīng)到用戶進程??煽浚篢CP會負(fù)責(zé)維護實際上子虛烏有的連接概念,包括收包后的確認(rèn)包、丟包后的重發(fā)等來保證可靠性。由于帶寬和不同機器處理能力的不同,TCP要能控制流量。字節(jié)流:TCP會把應(yīng)用進程傳來的字節(jié)流數(shù)據(jù)切割成許多個數(shù)據(jù)包,在網(wǎng)絡(luò)上發(fā)送。IP包是會失去順序或者產(chǎn)生重復(fù)的,TCP協(xié)議要能還原到字節(jié)流本來面目。TCP(Transmission Control Protocol 傳輸控制協(xié)議)是一種面向連接(連接導(dǎo)向)的、
8、可靠的、 基于IP的傳輸層協(xié)議。TCP在IP報文的協(xié)議號是6。TCP是一個超級麻煩的協(xié)議,而它又是互聯(lián)網(wǎng)的基礎(chǔ),也是每個程序員必備的基本功。首先來看看OSI的七層模型:圖2.1 OSI的七層模型我們需要知道TCP工作在網(wǎng)絡(luò)OSI的七層模型中的第四層Transport層,IP在第三層Network層,ARP 在第二層Data Link層;在第二層上的數(shù)據(jù),我們把它叫Frame,在第三層上的數(shù)據(jù)叫Packet,第四層的數(shù) 據(jù)叫Segment。 同時,我們需要簡單的知道,數(shù)據(jù)從應(yīng)用層發(fā)下來,會在每一層都會加上頭部信息,進行 封裝,然后再發(fā)送到數(shù)據(jù)接收端。這個基本的流程你需要知道,就是每個數(shù)據(jù)都會經(jīng)過
9、數(shù)據(jù)的封裝和解封 裝的過程。 在OSI七層模型中,每一層的作用和對應(yīng)的協(xié)議如下:圖2.2 OSI七層模型中,每一層的作用和對應(yīng)的協(xié)議 TCP是一個協(xié)議,那這個協(xié)議是如何定義的,它的數(shù)據(jù)格式是什么樣子的呢?要進行更深層次的剖析,就 需要了解,甚至是熟記TCP協(xié)議中每個字段的含義。圖2.3 OSI含義上面就是TCP協(xié)議頭部的格式,由于它太重要了,是理解其它內(nèi)容的基礎(chǔ),下面就將每個字段的信息都詳 細(xì)的說明一下。Source Port和Destination Port:分別占用16位,表示源端口號和目的端口號;用于區(qū)別主機中的不同進程, 而IP地址是用來區(qū)分不同的主機的,源端口號和目的端口號配合上IP
10、首部中的源IP地址和目的IP地址就能唯一 的確定一個TCP連接;Sequence Number:用來標(biāo)識從TCP發(fā)端向TCP收端發(fā)送的數(shù)據(jù)字節(jié)流,它表示在這個報文段中的的第一個數(shù)據(jù) 字節(jié)在數(shù)據(jù)流中的序號;主要用來解決網(wǎng)絡(luò)報亂序的問題;Acknowledgment Number:32位確認(rèn)序列號包含發(fā)送確認(rèn)的一端所期望收到的下一個序號,因此,確認(rèn)序號應(yīng) 當(dāng)是上次已成功收到數(shù)據(jù)字節(jié)序號加1。不過,只有當(dāng)標(biāo)志位中的ACK標(biāo)志(下面介紹)為1時該確認(rèn)序列號的字 段才有效。主要用來解決不丟包的問題;Offset:給出首部中32 bit字的數(shù)目,需要這個值是因為任選字段的長度是可變的。這個字段占4bit(
11、最多能 表示15個32bit的的字,即4*15=60個字節(jié)的首部長度),因此TCP最多有60字節(jié)的首部。然而,沒有任選字段, 正常的長度是20字節(jié);TCP Flags:TCP首部中有6個標(biāo)志比特,它們中的多個可同時被設(shè)置為1,主要是用于操控TCP的狀態(tài)機的,依次 為URG,ACK,PSH,RST,SYN,F(xiàn)IN。每個標(biāo)志位的意思如下:URG:此標(biāo)志表示TCP包的緊急指針域(后面馬上就要說到)有效,用來保證TCP連接不被中斷,并且督促 中間層設(shè)備要盡快處理這些數(shù)據(jù);ACK:此標(biāo)志表示應(yīng)答域有效,就是說前面所說的TCP應(yīng)答號將會包含在TCP數(shù)據(jù)包中;有兩個取值:0和1, 為1的時候表示應(yīng)答域有效,
12、反之為0;PSH:這個標(biāo)志位表示Push操作。所謂Push操作就是指在數(shù)據(jù)包到達(dá)接收端以后,立即傳送給應(yīng)用程序, 而不是在緩沖區(qū)中排隊;RST:這個標(biāo)志表示連接復(fù)位請求。用來復(fù)位那些產(chǎn)生錯誤的連接,也被用來拒絕錯誤和非法的數(shù)據(jù)包;SYN:表示同步序號,用來建立連接。SYN標(biāo)志位和ACK標(biāo)志位搭配使用,當(dāng)連接請求的時候,SYN=1, ACK=0;連接被響應(yīng)的時候,SYN=1,ACK=1;這個標(biāo)志的數(shù)據(jù)包經(jīng)常被用來進行端口掃描。掃描者發(fā)送 一個只有SYN的數(shù)據(jù)包,如果對方主機響應(yīng)了一個數(shù)據(jù)包回來 ,就表明這臺主機存在這個端口;但是由于這 種掃描方式只是進行TCP三次握手的第一次握手,因此這種掃描的
13、成功表示被掃描的機器不很安全,一臺安全 的主機將會強制要求一個連接嚴(yán)格的進行TCP的三次握手;FIN: 表示發(fā)送端已經(jīng)達(dá)到數(shù)據(jù)末尾,也就是說雙方的數(shù)據(jù)傳送完成,沒有數(shù)據(jù)可以傳送了,發(fā)送FIN標(biāo)志 位的TCP數(shù)據(jù)包后,連接將被斷開。這個標(biāo)志的數(shù)據(jù)包也經(jīng)常被用于進行端口掃描。Window:窗口大小,也就是有名的滑動窗口,用來進行流量控制三設(shè)計過程3.1 TCP RST攻擊 RST攻擊原理: 圖3.1從上面TCP協(xié)議圖可以看到,標(biāo)志位共有六個,其中RST位就在TCP異常時出現(xiàn)通過三次握手建立連接下面我通過A向B建立TCP連接來說明三次握手怎么完成的。 圖3.2為了能夠說清楚下面的RST攻擊,需要結(jié)合
14、上圖說說:SYN標(biāo)志位、序號、滑動窗口大小。建立連接的請求中,標(biāo)志位SYN都要置為1,在這種請求中會告知MSS段大小,就是本機希望接收TCP包的最大大小。發(fā)送的數(shù)據(jù)TCP包都有一個序號。它是這么得來的:最初發(fā)送SYN時,有一個初始序號,根據(jù)RFC的定義,各個操作系統(tǒng)的實現(xiàn)都是與系統(tǒng)時間相關(guān)的。之后,序號的值會不斷的增加,比如原來的序號是100,如果這個TCP包的數(shù)據(jù)有10個字節(jié),那么下次的TCP包序號會變成110?;瑒哟翱谟糜诩铀賯鬏?,比如發(fā)了一個seq=100的包,理應(yīng)收到這個包的確認(rèn)ack=101后再繼續(xù)發(fā)下一個包,但有了滑動窗口,只要新包的seq與沒有得到確認(rèn)的最小seq之差小于滑動窗口
15、大小,就可以繼續(xù)發(fā)。滑動窗口毫無疑問是用來加速數(shù)據(jù)傳輸?shù)?。TCP要保證“可靠”,就需要對一個數(shù)據(jù)包進行ack確認(rèn)表示接收端收到。有了滑動窗口,接收端就可以等收到許多包后只發(fā)一個ack包,確認(rèn)之前已經(jīng)收到過的多個數(shù)據(jù)包。有了滑動窗口,發(fā)送端在發(fā)送完一個數(shù)據(jù)包后不用等待它的ack,在滑動窗口大小內(nèi)可以繼續(xù)發(fā)送其他數(shù)據(jù)包。 四次握手的正常TCP連接關(guān)閉: 圖3.3FIN標(biāo)志位也看到了,它用來表示正常關(guān)閉連接。圖的左邊是主動關(guān)閉連接方,右邊是被動關(guān)閉連接方,用netstat命令可以看到標(biāo)出的連接狀態(tài)。 FIN是正常關(guān)閉,它會根據(jù)緩沖區(qū)的順序來發(fā)的,就是說緩沖區(qū)FIN之前的包都發(fā)出去后再發(fā)FIN包,這與
16、RST不同。 RST表示復(fù)位,用來異常的關(guān)閉連接,在TCP的設(shè)計中它是不可或缺的。就像上面說的一樣,發(fā)送RST包關(guān)閉連接時,不必等緩沖區(qū)的包都發(fā)出去(不像上面的FIN包),直接就丟棄緩存區(qū)的包發(fā)送RST包。而接收端收到RST包后,也不必發(fā)送ACK包來確認(rèn)。 TCP處理程序會在自己認(rèn)為的異常時刻發(fā)送RST包。例如,A向B發(fā)起連接,但B之上并未監(jiān)聽相應(yīng)的端口,這時B操作系統(tǒng)上的TCP處理程序會發(fā)RST包。 又比如,AB正常建立連接了,正在通訊時,A向B發(fā)送了FIN包要求關(guān)連接,B發(fā)送ACK后,網(wǎng)斷了,A通過若干原因放棄了這個連接(例如進程重啟)。網(wǎng)通了后,B又開始發(fā)數(shù)據(jù)包,A收到后表示壓力很大,不
17、知道這野連接哪來的,就發(fā)了個RST包強制把連接關(guān)了,B收到后會出現(xiàn)connect reset by peer錯誤。RST攻擊 :A和服務(wù)器B之間建立了TCP連接,此時C偽造了一個TCP包發(fā)給B,使B異常的斷開了與A之間的TCP連接,就是RST攻擊了。實際上從上面RST標(biāo)志位的功能已經(jīng)可以看出這種攻擊如何達(dá)到效果了。 那么偽造什么樣的TCP包可以達(dá)成目的呢?我們至頂向下的看。假定C偽裝成A發(fā)過去的包,這個包如果是RST包的話,毫無疑問,B將會丟棄與A的緩沖區(qū)上所有數(shù)據(jù),強制關(guān)掉連接。如果發(fā)過去的包是SYN包,那么,B會表示A已經(jīng)發(fā)瘋了(與OS的實現(xiàn)有關(guān)),正常連接時又來建新連接,B主動向A發(fā)個R
18、ST包,并在自己這端強制關(guān)掉連接。 這兩種方式都能夠達(dá)到復(fù)位攻擊的效果。似乎挺恐怖,然而關(guān)鍵是,如何能偽造成A發(fā)給B的包呢?這里有兩個關(guān)鍵因素,源端口和序列號。 一個TCP連接都是四元組,由源IP、源端口、目標(biāo)IP、目標(biāo)端口唯一確定一個連接。所以,如果C要偽造A發(fā)給B的包,要在上面提到的IP頭和TCP頭,把源IP、源端口、目標(biāo)IP、目標(biāo)端口都填對。這里B作為服務(wù)器,IP和端口是公開的,A是我們要下手的目標(biāo),IP當(dāng)然知道,但A的源端口就不清楚了,因為這可能是A隨機生成的。當(dāng)然,如果能夠?qū)ΤR姷腛S如windows和linux找出生成source port規(guī)律的話,還是可以搞定的。 序列號問題是與
19、滑動窗口對應(yīng)的,偽造的TCP包里需要填序列號,如果序列號的值不在A之前向B發(fā)送時B的滑動窗口內(nèi),B是會主動丟棄的。所以我們要找到能落到當(dāng)時的AB間滑動窗口的序列號。這個可以暴力解決,因為一個sequence長度是32位,取值范圍0-4294967296,如果窗口大小像上圖中我抓到的windows下的65535的話,只需要相除,就知道最多只需要發(fā)65537(4294967296/65535=65537)個包就能有一個序列號落到滑動窗口內(nèi)。RST包是很小的,IP頭TCP頭也才40字節(jié),算算我們的帶寬就知道這實在只需要幾秒鐘就能搞定。 那么,序列號不是問題,源端口會麻煩點,如果各個操作系統(tǒng)不能完全隨
20、機的生成源端口,或者黑客們能通過其他方式獲取到source port,RST攻擊易如反掌,后果很嚴(yán)重 圖 3.4防御:對付這種攻擊也可以通過防火墻簡單設(shè)置就可以了。建議使用防火墻將進來的包帶RST位的包丟棄就可以了。RST攻擊只能針對tcp。對udp無效。RST用于復(fù)位因某種原因引起出現(xiàn)的錯誤連接,也用來拒絕非法數(shù)據(jù)和請求。如果接收到RST位時候,通常發(fā)生了某些錯誤。假設(shè)有一個合法用戶()已經(jīng)同服務(wù)器建立了正常的連接,攻擊者構(gòu)造攻擊的TCP數(shù)據(jù),偽裝自己的IP為,并向服務(wù)器發(fā)送一個帶有RST位的TCP數(shù)據(jù)段。服務(wù)器接收到這樣的數(shù)據(jù)后,認(rèn)為從發(fā)送的連接有
21、錯誤,就會清空緩沖區(qū)中建立好的連接。這時,如果合法用戶再發(fā)送合法數(shù)據(jù),服務(wù)器就已經(jīng)沒有這樣的連接了,該用戶就必須重新開始建立連接。對付這種攻擊也可以通過防火墻簡單設(shè)置就可以了。 3.2 TCP會話劫持 會話劫持原理: 例如你Telnet到某臺主機,這就是一次Telnet會話;你瀏覽某個網(wǎng)站,這就是一次HTTP會話。而會話劫持(Session Hijack),就是結(jié)合了嗅探以及欺騙技術(shù)在內(nèi)的攻擊手段。例如,在一次正常的會話過程當(dāng)中,攻擊者作為第三方參與到其中,他可以在正常數(shù)據(jù)包中插入惡意數(shù)據(jù),也可以在雙方的會話當(dāng)中進行監(jiān)聽,甚至可以是代替某一方主機接管會話。我們可以把會話劫持攻擊分
22、為兩種類型:1)中間人攻擊(Man In The Middle,簡稱MITM),2)注射式攻擊(Injection);并且還可以把會話劫持攻擊分為兩種形式:1)被動劫持,2)主動劫持;被動劫持實際上就是在后臺監(jiān)視雙方會話的數(shù)據(jù)流,從中獲得敏感數(shù)據(jù);而主動劫持則是將會話當(dāng)中的某一臺主機踢下線,然后由攻擊者取代并接管會話,這種攻擊方法危害非常大,攻擊者可以做很多事情,比如cat etc/master.passwd(FreeBSD下的Shadow文件)。會話劫持利用了TCP/IP工作原理來設(shè)計攻擊。TCP使用端到端的連接,即TCP用(源IP,源TCP端口號,目的IP,目的TCP端號)來唯一標(biāo)識每一條
23、已經(jīng)建立連接的TCP鏈路。另外,TCP在進行數(shù)據(jù)傳輸時,TCP報文首部的兩個字段序號(seq)和確認(rèn)序號(ackseq)非常重要。序號(seq)和確認(rèn)序號(ackseq)是與所攜帶TCP數(shù)據(jù)凈荷(payload)的多少有數(shù)值上的關(guān)系:序號字段(seq)指出了本報文中傳送的數(shù)據(jù)在發(fā)送主機所要傳送的整個數(shù)據(jù)流中的順序號,而確認(rèn)序號字段(ackseq)指出了發(fā)送本報文的主機希望接收的對方主機中下一個八位組的順序號。因此,對于一臺主機來說,其收發(fā)的兩個相臨TCP報文之間的序號和確認(rèn)序號的關(guān)系為:它所要發(fā)出的報文中的seq值應(yīng)等于它所剛收到的報文中的ackseq的值,而它所要發(fā)送報文中ackseq的值應(yīng)
24、為它所收到報文中seq的值加上該報文中所發(fā)送的TCP凈荷的長度。TCP會話劫持的攻擊方式可以對基于TCP的任何應(yīng)用發(fā)起攻擊,如HTTP、FTP、Telnet等。對于攻擊者來說,所必須要做的就是窺探到正在進行TCP通信的兩臺主機之間傳送的報文,這樣攻擊者就可以得知該報文的源IP、源TCP端口號、目的IP、目的TCP端號,從而可以得知其中一臺主機對將要收到的下一個TCP報文段中seq和ackseq值的要求。這樣,在該合法主機收到另一臺合法主機發(fā)送的TCP報文前,攻擊者根據(jù)所截獲的信息向該主機發(fā)出一個帶有凈荷的TCP報文,如果該主機先收到攻擊報文,就可以把合法的TCP會話建立在攻擊主機與被攻擊主機之
25、間。帶有凈荷的攻擊報文能夠使被攻擊主機對下一個要收到的TCP報文中的確認(rèn)序號(ackseq)的值的要求發(fā)生變化,從而使另一臺合法的主機向被攻擊主機發(fā)出的報文被被攻擊主機拒絕。TCP會話劫持攻擊方式的好處在于使攻擊者避開了被攻擊主機對訪問者的身份驗證和安全認(rèn)證,從而使攻擊者直接進入對被攻擊主機的的訪問狀態(tài),因此對系統(tǒng)安全構(gòu)成的威脅比較嚴(yán)重。 攻擊過程:1找到一個活動的會話會話劫持的第一步要求攻擊者找到一個活動的會話。這要求攻擊者嗅探在子網(wǎng)上的通訊。攻擊者將尋找諸如FTP之類的一個已經(jīng)建立起來的TCP會話。如果這個子網(wǎng)使用一個集線器,查找這種會話是很容易的。一個交換的網(wǎng)絡(luò)需要攻擊者破壞地址解析協(xié)議
26、。2猜測正確的序列號碼下一步,攻擊者必須能夠猜測正確的序列號碼。請記住,一個基本的TCP協(xié)議設(shè)計是傳輸?shù)臄?shù)據(jù)的每一個字節(jié)必須要有一個序列號碼。這個序列號用來保持跟蹤數(shù)據(jù)和提供可靠性。最初的序列號碼是在TCP協(xié)議握手的第一步生成的。目的地系統(tǒng)使用這個值確認(rèn)發(fā)出的字節(jié)。這個序列號字段長度有32個字節(jié)。這就意味著可能有大約4,294,967,295個序列號。一旦這個序列號一致,這個賬戶就會隨著數(shù)據(jù)的每一個字節(jié)逐步增加。3把合法的用戶斷開一旦確定了序列號,攻擊者就能夠把合法的用戶斷開。這個技術(shù)包括拒絕服務(wù)、源路由或者向用戶發(fā)送一個重置命令。無論使用哪一種技術(shù),這個目的都是要讓用戶離開通訊路徑并且讓服務(wù)
27、器相信攻擊者就是合法的客戶機。如果這些步驟取得成功,攻擊者現(xiàn)在就可以控制這個會話。只要這個會話能夠保持下去,攻擊者就能夠通過身份驗證進行訪問。這種訪問能夠用來在本地執(zhí)行命令以便進一步利用攻擊者的地位。 圖3.5上機:TCP會話劫持?jǐn)?shù)據(jù)分析:首先用Ethereal打開telnet1_hijacked.cap文件。在分組1和分組2中可以看到SYN和SYNACK標(biāo)志。分組1是從IP地址為03的客戶端發(fā)送到IP地址為01服務(wù)器的。打開Ethernet可以看到客戶端的MAC地址為00:06:5b:d5:1e:e7,服務(wù)器端的MAC地址為:00:00:c0:29
28、:36:e8。在SYNACK分組中,源地址和目的地址則正好相反。圖3.6分析分組1和分組2數(shù)據(jù)這個TCP連接可用如下顯示過濾器分離出來:(ip.addr eq 03 and ip.addr eq 01) and (tcp.port eq 1073 and tcp.port eq 23)的TCP連接中總共有98125個分組。當(dāng)使用一下修改過濾規(guī)則后只有98123個分組。為了找到丟失的兩個分組。將過濾規(guī)則改為:!(eth.src eq 00:00:c0:29:36:e8)and !(eth.src eq 00:06:5b:d5:1e:e7)(如圖) 圖3
29、.7 排除非客戶端的MAC數(shù)據(jù)可以發(fā)現(xiàn),這兩個分組的發(fā)送方的IP地址都為客戶端(03)。但是以太網(wǎng)幀的源地址為00:01:03:87:a8:eb,而客戶端的MAC地址00:06:5b:d5:1e:e7。第一個偽造分組的序號為233,含有10個字節(jié)的數(shù)據(jù)。10個字節(jié)的數(shù)據(jù)代表10個ASCII碼字符,前8個ASCII碼為0x08字符,后面2個ASCII為0x0a字符。ASCII碼0x08代表退格符,ASCII碼0x0a代表換行符。當(dāng)這個分組加入TCP數(shù)據(jù)流后,服務(wù)器會認(rèn)為用戶鍵入退格符8次,然后回車符兩次。雖然看起來可能不會有太大的危害,它的目的僅僅是清空合法用戶的輸入,然后
30、顯示一個空白命令行給用戶。但是,這個可以幫組確保攻擊者構(gòu)造的下一組所能實現(xiàn)的功能,不再是簡單地在合法用戶輸入的任何命令行末尾添加一些信息。如圖所示圖3.8 分組1數(shù)據(jù)信息第二個偽造分組的序號為243,含有37個字節(jié)的數(shù)據(jù)。主要包括以下的命令:echo “echo HACKED” $HOME/.profile。這個命令后緊跟著一個ASCII碼為0x0a的字符,提示換行輸入新的命令。這個命令會把“echoHACKED”字符添加到用戶的根目錄下名為.profile的文件中。在一些命令行shell中,用戶登錄后首先讀?。簆rofile文件并執(zhí)行其中所有命令。用戶通常都根據(jù)需要為創(chuàng)建他們的工作環(huán)境而執(zhí)行
31、一些列命令。將這些命令放置到.profile文件中意味著用戶在每次登錄后都不用手動地執(zhí)行這些設(shè)置命令。通過在.profile文件中添加“echoHACKED”命令,當(dāng)用戶下次登錄時,他會在屏幕上看見“HACKED”字符串。如圖所示圖3.9分組2數(shù)據(jù)信息TCP會話終止數(shù)據(jù)分析:在telnet1_hijacked.cap文件中,攻擊者成功地加入了實現(xiàn)其自身的“hijack”會話,同時使合法客戶端和服務(wù)器無法通信。在telnet2_fin.cap文件中,攻擊者發(fā)送了含有它自己的分組535。這次攻擊者是偽裝為服務(wù)器向客戶端發(fā)送偽造的分組。客戶端用它自己分組538中的FIN位作為響應(yīng)。而對于真正的服務(wù)器
32、,它是第一次接收到客戶端關(guān)閉連接的分組,這樣它會認(rèn)為客戶端希望斷開連接,并以一個分組540中的FIN位作為響應(yīng)。客戶端接收到這個分組后,服務(wù)器和客戶端的連接已經(jīng)斷開,客戶端會發(fā)送一個窗口位為0和RST位置的分組。這樣,就完全斷開了客戶端和服務(wù)器的連接。如圖所示 圖3.10 FIN攻擊telnet3_rst.cap文件中,攻擊者向客戶段發(fā)送了一個RST位置位的分組339。攻擊者再次偽裝服務(wù)器,并向客戶端發(fā)送偽造的分組??蛻舳藭⒖讨苯雨P(guān)閉與服務(wù)器的連接,而不是按通常的三次握手的步驟來關(guān)閉連接。而此時真正的服務(wù)器并不知道發(fā)生了這些,它會繼續(xù)向客戶端發(fā)送分組340。當(dāng)分組到達(dá)客戶端后,客戶端會響應(yīng)連
33、接已經(jīng)關(guān)閉的信息。如圖所示圖3.11 RST攻擊在attacker_ftp.cap文件,攻擊者使用通過網(wǎng)絡(luò)嗅探到用戶口令來與服務(wù)器建立一個FTP連接,并獲取服務(wù)器文件。在這個連接中,攻擊者不需要進行IP欺騙,它可以簡單的使用自己的IP地址:00。捕捉口令可以完全獲得用戶賬戶的訪問權(quán)限,而不再僅僅是插入一些命令到數(shù)據(jù)流中。如圖所示圖3.12 ftp攻擊結(jié)果分析:在TCP會話劫持中,只有攻擊者發(fā)送的是接受者所期望的序號的分組,就可以成功地實現(xiàn)“會話竊用”。在“會話竊取”成功后,導(dǎo)致正常主機和服務(wù)器兩邊一直僵持狀態(tài)。 在TCP會話終止中,攻擊者發(fā)送了一個帶FIN或RST位的信息
34、到目標(biāo)主機,他會成功關(guān)閉這次連接。但是它沒有獲得非法途徑訪問資源,能阻止合法用戶訪問資源。然而攻擊者通過網(wǎng)絡(luò)嗅探到的用戶口令與服務(wù)器建立一個FTP連接,并獲取服務(wù)器文件。預(yù)防:處理會話劫持問題有兩種機制:預(yù)防和檢測。預(yù)防措施包括限制入網(wǎng)的連接和設(shè)置你的網(wǎng)絡(luò)拒絕假冒本地地址從互聯(lián)網(wǎng)上發(fā)來的數(shù)據(jù)包。加密也是有幫助的。如果你必須要允許來自可信賴的主機的外部連接,你可以使用Kerberos或者IPsec工具。使用更安全的協(xié)議,F(xiàn)TP和Telnet協(xié)議是最容易受到攻擊的。SSH是一種很好的替代方法。SSH在本地和遠(yuǎn)程主機之間建立一個加密的頻道。通過使用IDS或者IPS系統(tǒng)能夠改善檢測。交換機、SSH等協(xié)
35、議和更隨機的初始序列號的使用會讓會話劫持更加困難。此外,網(wǎng)絡(luò)管理員不應(yīng)該麻痹大意,有一種安全感。雖然會話劫持不像以前那樣容易了,但是,會話劫持仍是一種潛在的威脅。允許某人以經(jīng)過身份識別的身份連接到你的一個系統(tǒng)的網(wǎng)絡(luò)攻擊是需要認(rèn)真對付的。3.3 TCP SYN Flood攻擊 攻擊原理問題就出在TCP連接的三次握手中,假設(shè)一個用戶向服務(wù)器發(fā)送了SYN報文后突然死機或掉線,那么服務(wù)器在發(fā)出SYN+ACK應(yīng)答報文后是無法收到客戶端的ACK報文的(第三次握手無法完成),這種情況下服務(wù)器端一般會重試(再次發(fā)送SYN+ACK給客戶端)并等待一段時間后丟棄這個未完成的連接,這段時間的長度我們稱為SYN Ti
36、meout,一般來說這個時間是分鐘的數(shù)量級(大約為30秒-2分鐘);一個用戶出現(xiàn)異常導(dǎo)致服務(wù)器的一個線程等待1分鐘并不是什么很大的問題,但如果有一個惡意的攻擊者大量模擬這種情況,服務(wù)器端將為了維護一個非常大的半連接列表而消耗非常多的資源-數(shù)以萬計的半連接,即使是簡單的保存并遍歷也會消耗非常多的CPU時間和內(nèi)存,何況還要不斷對這個列表中的IP進行SYN+ACK的重試。實際上如果服務(wù)器的TCP/IP棧不夠強大,最后的結(jié)果往往是堆棧溢出崩潰-即使服務(wù)器端的系統(tǒng)足夠強大,服務(wù)器端也將忙于處理攻擊者偽造的TCP連接請求而無暇理睬客戶的正常請求(畢竟客戶端的正常請求比率非常之?。藭r從正??蛻舻慕嵌瓤磥?/p>
37、,服務(wù)器失去響應(yīng),這種情況我們稱作:服務(wù)器端受到了SYN Flood攻擊通常主機A與主機B的每一次TP連接都要經(jīng)過三次握手的過程第一次握手主機A向主機B發(fā)送SYN請求主機A將它隨機產(chǎn)生的初始序列號ISN傳送給主機B請求建立TP連接。第二次握手主機B向主機A回應(yīng)SYN+AK主機B接收到來自主機A的帶有SYN標(biāo)志的ISN后將自己的隨機的初始序列號ISN連同應(yīng)答信息AK一同返回給主機A。第三次握手主機A向主機B回應(yīng)SYN十AK主機A再將主機B傳送來ISN及應(yīng)答信息AK返回給主機B。通過以上三次握手就建立了主機A與B的TP連接在TcP的三次握手中當(dāng)主機B接收到主機A中的SYN請求時即第一次握手與第二次
38、握手之間的連接稱為半開連接。如果計算機有限的內(nèi)存緩沖區(qū)中充滿了虛假的半開連接信息該計算機就會對接下來的連接停止響應(yīng)直到緩沖區(qū)里的連接企圖超時。根據(jù)TCP連接的漏洞惡意的主機A想攻擊主機B,A可以使用發(fā)包軟件在短時間用偽造的不存在的IP地址作為源地址不斷地向防火墻發(fā)送具有SYN請求的TCP數(shù)據(jù)包。主機B在收到SYN請求后會向請求SYN數(shù)據(jù)包的源地址發(fā)送一個SYN十ACK據(jù)包。由于源地址是一個偽造的地址主機B不可能收到偽造IP地址的SYN+ACK回應(yīng)數(shù)據(jù)包。主機B在短時間內(nèi)有大量的連接請求等待確認(rèn)。由于主機B的內(nèi)存緩沖區(qū)是有限的當(dāng)主機B中未釋放的連接請求數(shù)量超過主機B的限制時候主機B就無法再對新的
39、連接請求進行響應(yīng)就算是正常的連接請求也不會被主機B接受這時主機B受到了TCPSYNFlood攻擊。SYN攻擊實現(xiàn)起來非常的簡單在互聯(lián)網(wǎng)上有大量現(xiàn)成的SYN攻擊工具。如運行Windows系統(tǒng)下的SYN工具synkill.exe選擇隨機的源地址和源端口并填寫目標(biāo)機器地址和選擇允許訪問的TP端口通常Windows系統(tǒng)開放TP139端口UNIX系統(tǒng)開放TCP7、21、23等端口激活運行很快就會發(fā)現(xiàn)目標(biāo)系統(tǒng)運行緩慢。檢測TCPSYNFlood攻擊對于受到TCPSYNFlood攻擊的計算機檢測SYN攻擊比較容易。當(dāng)服務(wù)器上有大量的半連接狀態(tài)時特別是源IP地址是隨機的則可以斷定這是一次TCPSYNFlood
40、攻擊。在Linux系統(tǒng)中使用netstat工具可顯示網(wǎng)絡(luò)連接、路由表和網(wǎng)絡(luò)接口信息通過簡單的分析可判斷是否遭受了SYN攻擊可以發(fā)現(xiàn)很多連接處于SYN_RECV狀態(tài)Windows系統(tǒng)中是SYN_RECEIVED狀態(tài)源IP地址都是隨機的表明這是一帶有IP欺騙的TCPSYNFlood攻擊。實驗過程:測試平臺的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖所示。 圖3.3.11用軟件xdos.exe 對目標(biāo)計算機進行拒絕服務(wù)攻擊并測試攻擊效果。 在B機打開Sniffer Portable,配置好捕捉從任意主機發(fā)送給本機的IP 數(shù)據(jù)包并啟動捕捉進程如圖所示。圖3.3.2未攻擊前與B機連接的主機數(shù)2在A機上訪問可以迅速打開工資查詢站點。3在A機上訪問可以迅速打開工資查詢站點。如圖所示。 圖3.3.3 xdos攻擊端 4此時B機處理速度明顯下降甚至癱瘓死機再訪問http:/1
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《基于BSC的AK股份公司預(yù)算考核評價體系研究》
- 《溶酶體相關(guān)膜蛋白1在CXCL10-CXCR3軸調(diào)控巨噬細(xì)胞極化及肺損傷中的作用研究》
- 2024年合模機項目提案報告范文
- 《吉林省稅收營商環(huán)境優(yōu)化研究》
- 2024-2030年中國鹽酸左氧氟沙星膠囊市場競爭態(tài)勢及需求狀況分析報告
- 2024-2030年中國電視媒體行業(yè)競爭策略及投資商業(yè)模式分析報告
- 2024-2030年中國電瓶行業(yè)發(fā)展現(xiàn)狀及競爭力策略分析報告
- 2024-2030年中國電動高爾夫球車行業(yè)競爭戰(zhàn)略及發(fā)展?jié)摿Ψ治鰣蟾鏅?quán)威版
- 2024-2030年中國物流地產(chǎn)行業(yè)發(fā)展建設(shè)分析規(guī)劃研究報告
- 2024-2030年中國焗油膏市場營銷模式及發(fā)展競爭力研究報告
- 懷孕的hcg驗血報告單
- 應(yīng)力的概念講解
- JF-2023-合同中小學(xué)校校外供餐合同示范文本
- 入團答辯-演講模板
- 聶樹斌案-演講模板
- 只爭朝夕不負(fù)韶華崗位競聘述職報告
- 農(nóng)場工作制度與農(nóng)民崗位職責(zé)
- 2024年山東公務(wù)員考試行測真題及解析【完美打印版】
- 田賽裁判法與規(guī)則2
- 社區(qū)心肺復(fù)蘇術(shù)普及
- 冬棗植保知識培訓(xùn)課件
評論
0/150
提交評論