




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、TCPIP攻擊原理.txt如果有來(lái)生,要做一棵樹(shù),站成永恒,沒(méi)有悲傷的姿勢(shì)。一半在土里安詳,一半在風(fēng)里飛揚(yáng),一半灑落陰涼,一半沐浴陽(yáng)光,非常沉默非常驕傲,從不依靠從不尋找。TCP/IP攻擊原理在本章,將要介紹一些利用TCP/IP協(xié)議的處理程序中錯(cuò)誤進(jìn)行攻擊的原理、方法以及一些防范對(duì)策。這些攻擊包括當(dāng)前流行的Teardrop和Land攻擊。利用協(xié)議實(shí)現(xiàn)的攻擊方法,都是故意錯(cuò)誤地設(shè)定數(shù)據(jù)包頭的一些重要字段,例如,IP包頭部的Total Length、Fragment offset、IHL和Source address等字段。使用Raw Socket將這些錯(cuò)誤的IP數(shù)據(jù)包發(fā)送出去。在接受數(shù)據(jù)端,接收
2、程序通常都存在一些問(wèn)題,因而在將接受到的數(shù)據(jù)包組裝成一個(gè)完整的數(shù)據(jù)包的過(guò)程中,就會(huì)使系統(tǒng)當(dāng)機(jī)、掛起或系統(tǒng)崩潰。在最后,是一個(gè)服務(wù)程序錯(cuò)誤而導(dǎo)致攻擊的例子:OOB。在本章,我們將結(jié)合一些程序來(lái)討論這種攻擊能夠?qū)嵤┑脑淼耐瑫r(shí),讀者也可以使用這些程序來(lái)檢查自己系統(tǒng)針對(duì)這類攻擊的安全程度,并采取相應(yīng)的措施。1 攻擊的現(xiàn)象及其后果使用了Windows 95和Windows 98 NT的人們都經(jīng)歷過(guò)系統(tǒng)陷入混亂,對(duì)任何輸入都沒(méi)有響應(yīng)的情況。這時(shí)候,屏幕出現(xiàn)藍(lán)屏,遲遲無(wú)法重新刷新。按下Ctrl+Alt+Del時(shí),看到系統(tǒng)CPU利用率達(dá)到100%,同時(shí)顯示一個(gè)應(yīng)用程序無(wú)響應(yīng)。這是程序出錯(cuò)或者使用了盜版軟件的
3、緣故。通過(guò)網(wǎng)絡(luò),也可以使正在使用的計(jì)算機(jī)出現(xiàn)這種無(wú)響應(yīng)、死機(jī)的現(xiàn)象。事實(shí)上,大量的程序往往經(jīng)不住人們惡意的攻擊。人們已經(jīng)使用了許多方法來(lái)專門對(duì)付上網(wǎng)的Windows 95和Windows NT。目前,能夠?qū)indows 95和Windows NT進(jìn)行攻擊的方法很多,當(dāng)前流行的有:tearDrop(也稱為“淚滴”)、OOB、Land和Ping of Death等。其中,關(guān)于Ping of Death在緩沖區(qū)溢出一章中對(duì)這種攻擊做了介紹,并給出了一些對(duì)策。一般的攻擊過(guò)程是這樣的:當(dāng)入侵者發(fā)現(xiàn)了一臺(tái)Windows 95或者Windows NT(這只需用端口掃描工具掃一下就可以辨認(rèn)出來(lái)),便用一個(gè)O
4、OB或者TearDrop攻擊,再次用ping命令時(shí),目標(biāo)主機(jī)就沒(méi)有響應(yīng)了。事實(shí)上,這些攻擊并不是局限于Windows NT和Windows 95平臺(tái),一些攻擊,如Land已被發(fā)現(xiàn)對(duì)Linux、Cisco路由器以及其他大量的UNIX操作系統(tǒng)都具有相當(dāng)?shù)墓裟芰ΑD軌驅(qū)嵤┻@種攻擊的原因是在Windows 95和Windows NT中存在錯(cuò)誤,這是一種處理TCP/IP協(xié)議或者服務(wù)程序的錯(cuò)誤。人們利用這些錯(cuò)誤。通過(guò)給端口送一些故意弄錯(cuò)的數(shù)據(jù)包,在這個(gè)數(shù)據(jù)包的偏移字段和長(zhǎng)度字段,寫(xiě)入一個(gè)過(guò)大或過(guò)小的值。Windows 95和Windows NT都不能處理這個(gè)情況,然后Windows 95就先變成藍(lán)屏,W
5、indows NT是非死機(jī)不可。據(jù)稱TearDrop可以使被攻擊的主機(jī)立刻當(dāng)機(jī)。這些攻擊的危險(xiǎn)性在于可以通過(guò)網(wǎng)絡(luò)發(fā)起攻擊,當(dāng)攻擊者發(fā)現(xiàn)了一臺(tái)上網(wǎng)的Windows 95、Windows NT或者Linux操作系統(tǒng)主機(jī)時(shí),只需啟動(dòng)這一程序,輸入入口參數(shù)假冒IP、端口號(hào),被攻擊主機(jī)的IP地址和端口號(hào),便可以發(fā)起攻擊了。通常是Linux一遭到攻擊就當(dāng)機(jī),而Windows在受到十幾次攻擊之后也會(huì)死機(jī)。這時(shí)候,用ping命令,被攻擊的主機(jī)就再也沒(méi)有回應(yīng)了。服務(wù)程序存在錯(cuò)誤的情況是很多的,例如,Windows NT中的RPC服務(wù)存在漏洞。某個(gè)用戶可以遠(yuǎn)程登錄到Windows NT 3。5x或者服務(wù)器的端口1
6、35,并任意輸入10個(gè)字符,然后回車,切斷連接。這便可以使目標(biāo)主機(jī)的CPU利用率達(dá)到100%。雖然一個(gè)簡(jiǎn)單的重啟動(dòng)就消除了這個(gè)問(wèn)題,但畢竟這是很討厭的,是系統(tǒng)安全的重要隱患并嚴(yán)重地影響系統(tǒng)性能。對(duì)于OOB攻擊,人們已經(jīng)提出一些對(duì)策,如在Windows NT 4.0 中,呆以對(duì)發(fā)到端口若懸河39的包進(jìn)行過(guò)濾等,都需要對(duì)系統(tǒng)的網(wǎng)絡(luò)設(shè)置進(jìn)行一番配置,來(lái)分別處理拔號(hào)上網(wǎng)和使用LAN的情況。目前網(wǎng)上已經(jīng)出現(xiàn)補(bǔ)丁程序,用來(lái)對(duì)付這些攻擊方法的攻擊。在 Windows 95和Windows NT上的安裝非常簡(jiǎn)單,只需運(yùn)行一下安裝包即可。在沒(méi)有找到補(bǔ)丁程序之前,也可能性安裝一個(gè)PC防火墻。該工具非常有效,例如,
7、當(dāng)禁止從主機(jī)的所有端口發(fā)出數(shù)據(jù)包,同時(shí)禁止數(shù)據(jù)包發(fā)向本主機(jī)的所有端口時(shí),實(shí)際上已將本主機(jī)應(yīng)用層的服務(wù)功能和訪問(wèn)功能切斷。此時(shí),雖然可以ping通一臺(tái)有帳戶和口令的UNIX主機(jī),但卻地法登上(telnet)該主機(jī)或從該主機(jī)用ftp取回文件。可以用該工具來(lái)過(guò)濾發(fā)向本主機(jī)一些端口(例如139)的數(shù)據(jù)包。2 淚滴(TearDrop)攻擊工具 這個(gè)攻擊工具起名為淚滴,它確實(shí)可以讓人們恨得咬牙切齒。當(dāng)辛苦的勞動(dòng)成果突然因?yàn)橐淮文涿畹漠?dāng)機(jī)而化為烏有。也許,這次當(dāng)機(jī)便是一個(gè)人隨意地向你的計(jì)算機(jī)動(dòng)了一次小小的攻擊所致。這個(gè)攻擊利用的是系統(tǒng)在實(shí)現(xiàn)時(shí)的一個(gè)錯(cuò)誤,我們以Linux上的一個(gè)實(shí)現(xiàn)為例,也就是說(shuō),某些L
8、inux操作系統(tǒng)也是脆弱的,我們也可以用這種方法攻擊Linux操作系統(tǒng)。Linux操作系統(tǒng)在它的IP數(shù)據(jù)包重裝模塊有一個(gè)嚴(yán)重的錯(cuò)誤,更確切一點(diǎn)地說(shuō),是在ip-glue()函數(shù)中。當(dāng)Linux收到一個(gè)個(gè)IP包,送到IP層進(jìn)行組裝,以形成發(fā)送端原來(lái)的IP包時(shí),它將進(jìn)入了一個(gè)循環(huán)中,將接收隊(duì)列中的一個(gè)個(gè)數(shù)據(jù)包中的有效數(shù)據(jù),拷貝到一個(gè)新分配的緩沖區(qū)中。這段代碼如下:fp = qp->fragments;while (fp ! =NULL)if (count +fp ->len >skb ->len)error-to-big;memcpy (ptr + fp ->offae
9、t ), fp-> ptr, fp->len);count +=fp ->len;fp =fp->next;在程序中,檢查了每段數(shù)據(jù)是否過(guò)長(zhǎng),因?yàn)槿绻麛?shù)據(jù)部分過(guò)長(zhǎng),將會(huì)向內(nèi)核拷貝過(guò)多的數(shù)據(jù),引起內(nèi)核發(fā)生某種危險(xiǎn)。然而在程序中并沒(méi)有檢查包中有效數(shù)據(jù)的長(zhǎng)度是否過(guò)分小,例如,當(dāng)表示包中數(shù)據(jù)長(zhǎng)度的變量變成了一個(gè)負(fù)數(shù)時(shí)(例如 fp->len<0),對(duì)這種情況,并沒(méi)有進(jìn)行檢查,結(jié)果是系統(tǒng)將過(guò)多的數(shù)據(jù)拷貝到內(nèi)核中去。以下,讓我們看看Linux是如何將收到的IP數(shù)據(jù)加入到組裝隊(duì)列中去的。 計(jì)算這一fragmrnt的終結(jié)位置:/* l Determine the positi
10、on of this fragmrment.l /end =offset +ntohs(iph ->tot-len) ihl;在正常情況下一切也正常。但是,當(dāng)我們精心準(zhǔn)備這樣的數(shù)據(jù)包,讓前后包中的“fragment offset”字段交疊在一起,會(huì)發(fā)生什么呢?看看程序?qū)Α癴ragment offset”做了那些處理:if (prev != NULL&& offset I =prev->end offset;Offset +=I : /*ptr into datagram */Ptr += I /* ptr into fragment data */如果我們發(fā)現(xiàn)當(dāng)前包
11、的段偏移在前一包數(shù)據(jù)內(nèi)部,也就是說(shuō)根據(jù)偏移字段的值,前后兩數(shù)據(jù)包的數(shù)據(jù)部分有重疊。組裝程序試圖正確對(duì)齊它們的邊界。程序代碼如上所示。這一步是對(duì)的。除非當(dāng)前包中的有效數(shù)據(jù)碰巧沒(méi)有足夠的數(shù)據(jù)來(lái)滿足對(duì)齊的要求。在這種情況下,“offset”域中的值將會(huì)比“ end”域中的值大。這兩個(gè)數(shù)值被交給“ip-frag-create()”模塊,在這個(gè)模塊中,將會(huì)計(jì)算當(dāng)前包的長(zhǎng)度。/* Fill in the structure. */fp->offset =offset;fp->end =end;fp->len =end offset;在這種極少見(jiàn)的情況下,計(jì)算出來(lái)的fp-len竟變成了一個(gè)
12、負(fù)數(shù),于是memcpy()最終將會(huì)把大量的數(shù)據(jù)拷貝到內(nèi)核中,因?yàn)閙emcpy()中的記數(shù)器是一個(gè)反碼,是一個(gè)非常大的數(shù)值。根據(jù)使用的內(nèi)存管理機(jī)制的不同,將會(huì)引起系統(tǒng)重啟動(dòng)或停機(jī)。這種情況完全可以通過(guò)編程來(lái)實(shí)現(xiàn),例如可以發(fā)送兩個(gè)特殊的數(shù)據(jù)包,第一個(gè)包中的“offset”域置為0,包中有效數(shù)據(jù)(IP數(shù)據(jù))長(zhǎng)度為N,MF位置1。第二個(gè)包中MF位置0,“offset”為一個(gè)小于N的數(shù),包中的IP數(shù)據(jù)也少于N。當(dāng)將收到的兩個(gè)數(shù)據(jù)包組裝時(shí),先將第一個(gè)數(shù)據(jù)包拷貝到一個(gè)緩沖區(qū)中去,然后拷貝第二個(gè)數(shù)據(jù)包。因?yàn)閚ext->offset cur ->offset =next ->offset +(
13、pre->end-next->offest);cur ->end =next ->offest +(next->iph ->tot-len)-ihl);cur ->len =cur->end-cur->offest;當(dāng)ntohs(next->iph->tot-len)-ihl<(pre->end-next->offset)時(shí),錯(cuò)誤就發(fā)生了。這時(shí)候,cur->len為負(fù)數(shù)。在正常情況下,無(wú)法預(yù)言這種情況是否會(huì)發(fā)生,發(fā)生的頻率如何。但是在人為的情況下,尤其是在一處故意的情況下,那就一定會(huì)發(fā)生的。人們可以自己編寫(xiě)發(fā)送raw數(shù)據(jù)包的程序。在數(shù)據(jù)包中,從IP包頭開(kāi)始,都可以填入自己想要的任意數(shù)值。而我們使用軟件并不能處理這類非常復(fù)雜的情況。事實(shí)上,即使對(duì)軟件曾經(jīng)進(jìn)行了詳細(xì)的測(cè)試,也很難說(shuō)會(huì)發(fā)現(xiàn)這種錯(cuò)誤。當(dāng)前的許多Linux的實(shí)現(xiàn)中都有這個(gè)錯(cuò)誤,向Linux發(fā)送很少幾個(gè)這樣的數(shù)據(jù)包,便可以引起
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 綠化苗木工程施工方案
- 人行道磚鋪設(shè)施工方案
- TSP203超前地質(zhì)預(yù)報(bào)系統(tǒng)
- Brand KPIs for health insurance:UnitedHealth in the United States英文培訓(xùn)課件
- 新疆烏魯木齊市六校聯(lián)考2022-2023學(xué)年高二下學(xué)期期末化學(xué)試卷(含答案)
- Brand KPIs for neobanking Monzo in the United Kingdom-英文培訓(xùn)課件2025.4
- 汽車傳感器與檢測(cè)技術(shù)電子教案:蓄能器壓力傳感器電子教案
- 倉(cāng)庫(kù)管理活動(dòng)方案
- 仙桃采摘活動(dòng)方案
- 代表小組一季度活動(dòng)方案
- DB32-T 4357-2022 建筑工程施工機(jī)械安裝質(zhì)量檢驗(yàn)規(guī)程
- DB15T 2537-2022涉路工程安全性評(píng)價(jià)報(bào)告編制指南
- 淺談?lì)I(lǐng)導(dǎo)干部如何當(dāng)好副職
- DB51∕T 1627-2013 渠道工程施工質(zhì)量檢驗(yàn)與評(píng)定規(guī)程
- 信息報(bào)送審批表
- 化工精餾知識(shí)考試題庫(kù)及答案
- 奇美牌口風(fēng)琴吹奏說(shuō)明電子版
- 把信送給加西亞(英文版)
- 全文解讀《教育督導(dǎo)問(wèn)責(zé)辦法》PPT內(nèi)容講授
- 尾礦庫(kù)堆壩模型試驗(yàn)
- 設(shè)備三級(jí)保養(yǎng)記錄表
評(píng)論
0/150
提交評(píng)論