關(guān)于《網(wǎng)絡(luò)攻擊原理與技術(shù)》的介紹
最近有網(wǎng)友想了解下《網(wǎng)絡(luò)攻擊原理與技術(shù)》這本書,所以學(xué)習(xí)啦小編就整理了相關(guān)資料分享給大家,具體內(nèi)容如下.希望大家參考參考!!!
《網(wǎng)絡(luò)攻擊原理與技術(shù)》
基本信息
作 者 王航
頁(yè) 數(shù) 430
定 價(jià) 43.00元
出版社 科學(xué)出版社
出版時(shí)間 2004-4
裝 幀 平裝
ISBN 9787030127396
內(nèi)容介紹
本書講述了利用計(jì)算機(jī)網(wǎng)絡(luò)進(jìn)行攻擊和入侵的原理及相關(guān)技術(shù),從整體結(jié)構(gòu)上分為兩個(gè)部分:第1章至第8章為技術(shù)篇,講述各種流行的網(wǎng)絡(luò)攻擊及相關(guān)的防御對(duì)策,包括用于收集目標(biāo)信息的網(wǎng)絡(luò)調(diào)查技術(shù),用于非法獲取或提升目標(biāo)系統(tǒng)訪問權(quán)限的口令破解、系統(tǒng)后門、緩沖區(qū)溢出和格式化字符串攻擊,以及用于破壞目標(biāo)系統(tǒng)可用性的拒絕服務(wù)攻擊等,對(duì)常見的安全漏洞和不安全編程問題進(jìn)行了細(xì)致的分析,在此基礎(chǔ)上介紹了一些常用的工具軟件和Windows系統(tǒng)的取證技術(shù);第9章至第11章為應(yīng)用篇,講述針對(duì)各種實(shí)際系統(tǒng)的攻擊方法,介紹了針對(duì)Windows,9x/NT/200O/XP、Unix、Novell Netware操作系統(tǒng)的攻擊,分析了利用遠(yuǎn)程訪問破壞網(wǎng)絡(luò)設(shè)備和訪問控制機(jī)制的網(wǎng)絡(luò)攻擊方法,最后講述了如何攻擊常見的應(yīng)用軟件,如遠(yuǎn)程控制軟件、Web服務(wù)軟件、瀏覽器、郵件客戶端以及IRC軟件等。在介紹各種攻擊方法的同時(shí),作者也給出了一些相關(guān)的防范措施和安全建議,并列舉了詳細(xì)的參考資料和文獻(xiàn),供讀者參考。
本書可作為計(jì)算機(jī)、通信、信息安全、密碼學(xué)等專業(yè)的本科生、研究生的參考教材,也可供從事相關(guān)領(lǐng)域工作的科研和工程技術(shù)人員參考。
下面學(xué)習(xí)啦小編就再給大家介紹下常見的網(wǎng)絡(luò)攻擊原理
1.1 TCP SYN拒絕服務(wù)攻擊
一般情況下,一個(gè)TCP連接的建立需要經(jīng)過三次握手的過程,即:
1、 建立發(fā)起者向目標(biāo)計(jì)算機(jī)發(fā)送一個(gè)TCP SYN報(bào)文;
2、目標(biāo)計(jì)算機(jī)收到這個(gè)SYN報(bào)文后,在內(nèi)存中創(chuàng)建TCP連接控制塊(TCB),然后向發(fā)起者回送一個(gè)TCP ACK報(bào)文,等待發(fā)起者的回應(yīng);
3、 發(fā)起者收到TCP ACK報(bào)文后,再回應(yīng)一個(gè)ACK報(bào)文,這樣TCP連接就建立起來了。
利用這個(gè)過程,一些惡意的攻擊者可以進(jìn)行所謂的TCP SYN拒絕服務(wù)攻擊:
1、 攻擊者向目標(biāo)計(jì)算機(jī)發(fā)送一個(gè)TCP SYN報(bào)文;
2、目標(biāo)計(jì)算機(jī)收到這個(gè)報(bào)文后,建立TCP連接控制結(jié)構(gòu)(TCB),并回應(yīng)一個(gè)ACK,等待發(fā)起者的回應(yīng);
3、而發(fā)起者則不向目標(biāo)計(jì)算機(jī)回應(yīng)ACK報(bào)文,這樣導(dǎo)致目標(biāo)計(jì)算機(jī)一致處于等待狀態(tài)。
可以看出,目標(biāo)計(jì)算機(jī)如果接收到大量的TCP SYN報(bào)文,而沒有收到發(fā)起者的第三次ACK回應(yīng),會(huì)一直等待,處于這樣尷尬狀態(tài)的半連接如果很多,則會(huì)把目標(biāo)計(jì)算機(jī)的資源(TCB控制結(jié)構(gòu),TCB,一般情況下是有限的)耗盡,而不能響應(yīng)正常的TCP連接請(qǐng)求。
1.2 ICMP洪水
正常情況下,為了對(duì)網(wǎng)絡(luò)進(jìn)行診斷,一些診斷程序,比如PING等,會(huì)發(fā)出ICMP響應(yīng)請(qǐng)求報(bào)文(ICMP ECHO),接收計(jì)算機(jī)接收到ICMP ECHO后,會(huì)回應(yīng)一個(gè)ICMP ECHO Reply報(bào)文。而這個(gè)過程是需要CPU處理的,有的情況下還可能消耗掉大量的資源,比如處理分片的時(shí)候。這樣如果攻擊者向目標(biāo)計(jì)算機(jī)發(fā)送大量的ICMP ECHO報(bào)文(產(chǎn)生ICMP洪水),則目標(biāo)計(jì)算機(jī)會(huì)忙于處理這些ECHO報(bào)文,而無法繼續(xù)處理其它的網(wǎng)絡(luò)數(shù)據(jù)報(bào)文,這也是一種拒絕服務(wù)攻擊(DOS)。
1.3 UDP洪水
原理與ICMP洪水類似,攻擊者通過發(fā)送大量的UDP報(bào)文給目標(biāo)計(jì)算機(jī),導(dǎo)致目標(biāo)計(jì)算機(jī)忙于處理這些UDP報(bào)文而無法繼續(xù)處理正常的報(bào)文。
1.4 端口掃描
根據(jù)TCP協(xié)議規(guī)范,當(dāng)一臺(tái)計(jì)算機(jī)收到一個(gè)TCP連接建立請(qǐng)求報(bào)文(TCP SYN)的時(shí)候,做這樣的處理:
1、 如果請(qǐng)求的TCP端口是開放的,則回應(yīng)一個(gè)TCP ACK報(bào)文,并建立TCP連接控制結(jié)構(gòu)(TCB);
2、 如果請(qǐng)求的TCP端口沒有開放,則回應(yīng)一個(gè)TCP RST(TCP頭部中的RST標(biāo)志設(shè)為1)報(bào)文,告訴發(fā)起計(jì)算機(jī),該端口沒有開放。
相應(yīng)地,如果IP協(xié)議棧收到一個(gè)UDP報(bào)文,做如下處理:
1、如果該報(bào)文的目標(biāo)端口開放,則把該UDP報(bào)文送上層協(xié)議(UDP)處理,不回應(yīng)任何報(bào)文(上層協(xié)議根據(jù)處理結(jié)果而回應(yīng)的報(bào)文例外);
2、如果該報(bào)文的目標(biāo)端口沒有開放,則向發(fā)起者回應(yīng)一個(gè)ICMP不可達(dá)報(bào)文,告訴發(fā)起者計(jì)算機(jī)該UDP報(bào)文的端口不可達(dá)。
利用這個(gè)原理,攻擊者計(jì)算機(jī)便可以通過發(fā)送合適的報(bào)文,判斷目標(biāo)計(jì)算機(jī)哪些TCP或UDP端口是開放的,過程如下:
1、 發(fā)出端口號(hào)從0開始依次遞增的TCP SYN或UDP報(bào)文(端口號(hào)是一個(gè)16比特的數(shù)字,這樣最大為65535,數(shù)量很有限);
2、如果收到了針對(duì)這個(gè)TCP報(bào)文的RST報(bào)文,或針對(duì)這個(gè)UDP報(bào)文的ICMP不可達(dá)報(bào)文,則說明這個(gè)端口沒有開放;
3、 相反,如果收到了針對(duì)這個(gè)TCP SYN報(bào)文的ACK報(bào)文,或者沒有接收到任何針對(duì)該UDP報(bào)文的ICMP報(bào)文,則說明該TCP端口是開放的,UDP端口可能開放(因?yàn)橛械膶?shí)現(xiàn)中可能不回應(yīng)ICMP不可達(dá)報(bào)文,即使該UDP端口沒有開放)。
這樣繼續(xù)下去,便可以很容易的判斷出目標(biāo)計(jì)算機(jī)開放了哪些TCP或UDP端口,然后針對(duì)端口的具體數(shù)字,進(jìn)行下一步攻擊,這就是所謂的端口掃描攻擊。
1.5 分片IP報(bào)文攻擊
為了傳送一個(gè)大的IP報(bào)文,IP協(xié)議棧需要根據(jù)鏈路接口的MTU對(duì)該IP報(bào)文進(jìn)行分片,通過填充適當(dāng)?shù)腎P頭中的分片指示字段,接收計(jì)算機(jī)可以很容易的把這些IP分片報(bào)文組裝起來。
目標(biāo)計(jì)算機(jī)在處理這些分片報(bào)文的時(shí)候,會(huì)把先到的分片報(bào)文緩存起來,然后一直等待后續(xù)的分片報(bào)文,這個(gè)過程會(huì)消耗掉一部分內(nèi)存,以及一些IP協(xié)議棧的數(shù)據(jù)結(jié)構(gòu)。如果攻擊者給目標(biāo)計(jì)算機(jī)只發(fā)送一片分片報(bào)文,而不發(fā)送所有的分片報(bào)文,這樣攻擊者計(jì)算機(jī)便會(huì)一直等待(直到一個(gè)內(nèi)部計(jì)時(shí)器到時(shí)),如果攻擊者發(fā)送了大量的分片報(bào)文,就會(huì)消耗掉目標(biāo)計(jì)算機(jī)的資源,而導(dǎo)致不能相應(yīng)正常的IP報(bào)文,這也是一種DOS攻擊。
1.6 SYN比特和FIN比特同時(shí)設(shè)置
在TCP報(bào)文的報(bào)頭中,有幾個(gè)標(biāo)志字段:
1、 SYN:連接建立標(biāo)志,TCP SYN報(bào)文就是把這個(gè)標(biāo)志設(shè)置為1,來請(qǐng)求建立連接;
2、 ACK:回應(yīng)標(biāo)志,在一個(gè)TCP連接中,除了第一個(gè)報(bào)文(TCP SYN)外,所有報(bào)文都設(shè)置該字段,作為對(duì)上一個(gè)報(bào)文的相應(yīng);
3、 FIN:結(jié)束標(biāo)志,當(dāng)一臺(tái)計(jì)算機(jī)接收到一個(gè)設(shè)置了FIN標(biāo)志的TCP報(bào)文后,會(huì)拆除這個(gè)TCP連接;
4、 RST:復(fù)位標(biāo)志,當(dāng)IP協(xié)議棧接收到一個(gè)目標(biāo)端口不存在的TCP報(bào)文的時(shí)候,會(huì)回應(yīng)一個(gè)RST標(biāo)志設(shè)置的報(bào)文;
5、 PSH:通知協(xié)議棧盡快把TCP數(shù)據(jù)提交給上層程序處理。
正常情況下,SYN標(biāo)志(連接請(qǐng)求標(biāo)志)和FIN標(biāo)志(連接拆除標(biāo)志)是不能同時(shí)出現(xiàn)在一個(gè)TCP報(bào)文中的。而且RFC也沒有規(guī)定IP協(xié)議棧如何處理這樣的畸形報(bào)文,因此,各個(gè)操作系統(tǒng)的協(xié)議棧在收到這樣的報(bào)文后的處理方式也不同,攻擊者就可以利用這個(gè)特征,通過發(fā)送SYN和FIN同時(shí)設(shè)置的報(bào)文,來判斷操作系統(tǒng)的類型,然后針對(duì)該操作系統(tǒng),進(jìn)行進(jìn)一步的攻擊。
1.7 沒有設(shè)置任何標(biāo)志的TCP報(bào)文攻擊
正常情況下,任何TCP報(bào)文都會(huì)設(shè)置SYN,F(xiàn)IN,ACK,RST,PSH五個(gè)標(biāo)志中的至少一個(gè)標(biāo)志,第一個(gè)TCP報(bào)文(TCP連接請(qǐng)求報(bào)文)設(shè)置SYN標(biāo)志,后續(xù)報(bào)文都設(shè)置ACK標(biāo)志。有的協(xié)議?;谶@樣的假設(shè),沒有針對(duì)不設(shè)置任何標(biāo)志的TCP報(bào)文的處理過程,因此,這樣的協(xié)議棧如果收到了這樣的報(bào)文,可能會(huì)崩潰。攻擊者利用了這個(gè)特點(diǎn),對(duì)目標(biāo)計(jì)算機(jī)進(jìn)行攻擊。
1.8 設(shè)置了FIN標(biāo)志卻沒有設(shè)置ACK標(biāo)志的TCP報(bào)文攻擊
正常情況下,ACK標(biāo)志在除了第一個(gè)報(bào)文(SYN報(bào)文)外,所有的報(bào)文都設(shè)置,包括TCP連接拆除報(bào)文(FIN標(biāo)志設(shè)置的報(bào)文)。但有的攻擊者卻可能向目標(biāo)計(jì)算機(jī)發(fā)送設(shè)置了FIN標(biāo)志卻沒有設(shè)置ACK標(biāo)志的TCP報(bào)文,這樣可能導(dǎo)致目標(biāo)計(jì)算機(jī)崩潰。
1.9 死亡之PING
TCP/IP規(guī)范要求IP報(bào)文的長(zhǎng)度在一定范圍內(nèi)(比如,0-64K),但有的攻擊計(jì)算機(jī)可能向目標(biāo)計(jì)算機(jī)發(fā)出大于64K長(zhǎng)度的PING報(bào)文,導(dǎo)致目標(biāo)計(jì)算機(jī)IP協(xié)議棧崩潰。
1.10 地址猜測(cè)攻擊
跟端口掃描攻擊類似,攻擊者通過發(fā)送目標(biāo)地址變化的大量的ICMP ECHO報(bào)文,來判斷目標(biāo)計(jì)算機(jī)是否存在。如果收到了對(duì)應(yīng)的ECMP ECHO REPLY報(bào)文,則說明目標(biāo)計(jì)算機(jī)是存在的,便可以針對(duì)該計(jì)算機(jī)進(jìn)行下一步的攻擊。
1.11 淚滴攻擊
對(duì)于一些大的IP包,需要對(duì)其進(jìn)行分片傳送,這是為了迎合鏈路層的MTU(最大傳輸單元)的要求。比如,一個(gè)4500字節(jié)的IP包,在MTU為1500的鏈路上傳輸?shù)臅r(shí)候,就需要分成三個(gè)IP包。
在IP報(bào)頭中有一個(gè)偏移字段和一個(gè)分片標(biāo)志(MF),如果MF標(biāo)志設(shè)置為1,則表面這個(gè)IP包是一個(gè)大IP包的片斷,其中偏移字段指出了這個(gè)片斷在整個(gè)IP包中的位置。例如,對(duì)一個(gè)4500字節(jié)的IP包進(jìn)行分片(MTU為1500),則三個(gè)片斷中偏移字段的值依次為:0,1500,3000。這樣接收端就可以根據(jù)這些信息成功的組裝該IP包。
如果一個(gè)攻擊者打破這種正常情況,把偏移字段設(shè)置成不正確的值,即可能出現(xiàn)重合或斷開的情況,就可能導(dǎo)致目標(biāo)操作系統(tǒng)崩潰。比如,把上述偏移設(shè)置為0,1300,3000。這就是所謂的淚滴攻擊。
1.12 帶源路由選項(xiàng)的IP報(bào)文
為了實(shí)現(xiàn)一些附加功能,IP協(xié)議規(guī)范在IP報(bào)頭中增加了選項(xiàng)字段,這個(gè)字段可以有選擇的攜帶一些數(shù)據(jù),以指明中間設(shè)備(路由器)或最終目標(biāo)計(jì)算機(jī)對(duì)這些IP報(bào)文進(jìn)行額外的處理。
源路由選項(xiàng)便是其中一個(gè),從名字中就可以看出,源路由選項(xiàng)的目的,是指導(dǎo)中間設(shè)備(路由器)如何轉(zhuǎn)發(fā)該數(shù)據(jù)報(bào)文的,即明確指明了報(bào)文的傳輸路徑。比如,讓一個(gè)IP報(bào)文明確的經(jīng)過三臺(tái)路由器R1,R2,R3,則可以在源路由選項(xiàng)中明確指明這三個(gè)路由器的接口地址,這樣不論三臺(tái)路由器上的路由表如何,這個(gè)IP報(bào)文就會(huì)依次經(jīng)過R1,R2,R3。而且這些帶源路由選項(xiàng)的IP報(bào)文在傳輸?shù)倪^程中,其源地址不斷改變,目標(biāo)地址也不斷改變,因此,通過合適的設(shè)置源路由選項(xiàng),攻擊者便可以偽造一些合法的IP地址,而蒙混進(jìn)入網(wǎng)絡(luò)。
1.13 帶記錄路由選項(xiàng)的IP報(bào)文
記錄路由選項(xiàng)也是一個(gè)IP選項(xiàng),攜帶了該選項(xiàng)的IP報(bào)文,每經(jīng)過一臺(tái)路由器,該路由器便把自己的接口地址填在選項(xiàng)字段里面。這樣這些報(bào)文在到達(dá)目的地的時(shí)候,選項(xiàng)數(shù)據(jù)里面便記錄了該報(bào)文經(jīng)過的整個(gè)路徑。
通過這樣的報(bào)文可以很容易的判斷該報(bào)文經(jīng)過的路徑,從而使攻擊者可以很容易的尋找其中的攻擊弱點(diǎn)。
1.14 未知協(xié)議字段的IP報(bào)文
在IP報(bào)文頭中,有一個(gè)協(xié)議字段,這個(gè)字段指明了該IP報(bào)文承載了何種協(xié)議,比如,如果該字段值為1,則表明該IP報(bào)文承載了ICMP報(bào)文,如果為6,則是TCP,等等。目前情況下,已經(jīng)分配的該字段的值都是小于100的,因此,一個(gè)帶大于100的協(xié)議字段的IP報(bào)文,可能就是不合法的,這樣的報(bào)文可能對(duì)一些計(jì)算機(jī)操作系統(tǒng)的協(xié)議棧進(jìn)行破壞。
1.15 IP地址欺騙
一般情況下,路由器在轉(zhuǎn)發(fā)報(bào)文的時(shí)候,只根據(jù)報(bào)文的目的地址查路由表,而不管報(bào)文的源地址是什么,因此,這樣就可能面臨一種危險(xiǎn):如果一個(gè)攻擊者向一臺(tái)目標(biāo)計(jì)算機(jī)發(fā)出一個(gè)報(bào)文,而把報(bào)文的源地址填寫為第三方的一個(gè)IP地址,這樣這個(gè)報(bào)文在到達(dá)目標(biāo)計(jì)算機(jī)后,目標(biāo)計(jì)算機(jī)便可能向毫無知覺的第三方計(jì)算機(jī)回應(yīng)。這便是所謂的IP地址欺騙攻擊。
比較著名的SQL Server蠕蟲病毒,就是采用了這種原理。該病毒(可以理解為一個(gè)攻擊者)向一臺(tái)運(yùn)行SQL Server解析服務(wù)的服務(wù)器發(fā)送一個(gè)解析服務(wù)的UDP報(bào)文,該報(bào)文的源地址填寫為另外一臺(tái)運(yùn)行SQL Server解析程序(SQL Server 2000以后版本)的服務(wù)器,這樣由于SQL Server 解析服務(wù)的一個(gè)漏洞,就可能使得該UDP報(bào)文在這兩臺(tái)服務(wù)器之間往復(fù),最終導(dǎo)致服務(wù)器或網(wǎng)絡(luò)癱瘓。
1.16 WinNuke攻擊
NetBIOS作為一種基本的網(wǎng)絡(luò)資源訪問接口,廣泛的應(yīng)用于文件共享,打印共享,進(jìn)程間通信(IPC),以及不同操作系統(tǒng)之間的數(shù)據(jù)交換。一般情況下,NetBIOS是運(yùn)行在LLC2鏈路協(xié)議之上的,是一種基于組播的網(wǎng)絡(luò)訪問接口。為了在TCP/IP協(xié)議棧上實(shí)現(xiàn)NetBIOS,RFC規(guī)定了一系列交互標(biāo)準(zhǔn),以及幾個(gè)常用的TCP/UDP端口:
139:NetBIOS會(huì)話服務(wù)的TCP端口;
137:NetBIOS名字服務(wù)的UDP端口;
136:NetBIOS數(shù)據(jù)報(bào)服務(wù)的UDP端口。
WINDOWS操作系統(tǒng)的早期版本(WIN95/98/NT)的網(wǎng)絡(luò)服務(wù)(文件共享等)都是建立在NetBIOS之上的,因此,這些操作系統(tǒng)都開放了139端口(最新版本的WINDOWS 2000/XP/2003等,為了兼容,也實(shí)現(xiàn)了NetBIOS over TCP/IP功能,開放了139端口)。
WinNuke攻擊就是利用了WINDOWS操作系統(tǒng)的一個(gè)漏洞,向這個(gè)139端口發(fā)送一些攜帶TCP帶外(OOB)數(shù)據(jù)報(bào)文,但這些攻擊報(bào)文與正常攜帶OOB數(shù)據(jù)報(bào)文不同的是,其指針字段與數(shù)據(jù)的實(shí)際位置不符,即存在重合,這樣WINDOWS操作系統(tǒng)在處理這些數(shù)據(jù)的時(shí)候,就會(huì)崩潰。
1.17 Land攻擊
LAND攻擊利用了TCP連接建立的三次握手過程,通過向一個(gè)目標(biāo)計(jì)算機(jī)發(fā)送一個(gè)TCP SYN報(bào)文(連接建立請(qǐng)求報(bào)文)而完成對(duì)目標(biāo)計(jì)算機(jī)的攻擊。與正常的TCP SYN報(bào)文不同的是,LAND攻擊報(bào)文的源IP地址和目的IP地址是相同的,都是目標(biāo)計(jì)算機(jī)的IP地址。這樣目標(biāo)計(jì)算機(jī)接收到這個(gè)SYN報(bào)文后,就會(huì)向該報(bào)文的源地址發(fā)送一個(gè)ACK報(bào)文,并建立一個(gè)TCP連接控制結(jié)構(gòu)(TCB),而該報(bào)文的源地址就是自己,因此,這個(gè)ACK報(bào)文就發(fā)給了自己。這樣如果攻擊者發(fā)送了足夠多的SYN報(bào)文,則目標(biāo)計(jì)算機(jī)的TCB可能會(huì)耗盡,最終不能正常服務(wù)。這也是一種DOS攻擊。
1.18 Script/ActiveX攻擊
Script是一種可執(zhí)行的腳本,它一般由一些腳本語(yǔ)言寫成,比如常見的JAVA SCRIPT,VB SCRIPT等。這些腳本在執(zhí)行的時(shí)候,需要一個(gè)專門的解釋器來翻譯,翻譯成計(jì)算機(jī)指令后,在本地計(jì)算機(jī)上運(yùn)行。這種腳本的好處是,可以通過少量的程序?qū)懽?,而完成大量的功能?/p>
這種SCRIPT的一個(gè)重要應(yīng)用就是嵌入在WEB頁(yè)面里面,執(zhí)行一些靜態(tài)WEB頁(yè)面標(biāo)記語(yǔ)言(HTML)無法完成的功能,比如本地計(jì)算,數(shù)據(jù)庫(kù)查詢和修改,以及系統(tǒng)信息的提取等。這些腳本在帶來方便和強(qiáng)大功能的同時(shí),也為攻擊者提供了方便的攻擊途徑。如果攻擊者寫一些對(duì)系統(tǒng)有破壞的SCRIPT,然后嵌入在WEB頁(yè)面中,一旦這些頁(yè)面被下載到本地,計(jì)算機(jī)便以當(dāng)前用戶的權(quán)限執(zhí)行這些腳本,這樣,當(dāng)前用戶所具有的任何權(quán)限,SCRIPT都可以使用,可以想象這些惡意的SCRIPT的破壞程度有多強(qiáng)。這就是所謂的SCRIPT攻擊。
ActiveX是一種控件對(duì)象,它是建立在MICROSOFT的組件對(duì)象模型(COM)之上的,而COM則幾乎是Windows操作系統(tǒng)的基礎(chǔ)結(jié)構(gòu)。可以簡(jiǎn)單的理解,這些控件對(duì)象是由方法和屬性構(gòu)成的,方法即一些操作,而屬性則是一些特定的數(shù)據(jù)。這種控件對(duì)象可以被應(yīng)用程序加載,然后訪問其中的方法或?qū)傩?,以完成一些特定的功能??梢哉f,COM提供了一種二進(jìn)制的兼容模型(所謂二進(jìn)制兼容,指的是程序模塊與調(diào)用的編譯環(huán)境,甚至操作系統(tǒng)沒有關(guān)系)。但需要注意的是,這種對(duì)象控件不能自己執(zhí)行,因?yàn)樗鼪]有自己的進(jìn)程空間,而只能由其它進(jìn)程加載,并調(diào)用其中的方法和屬性,這時(shí)候,這些控件便在加載進(jìn)程的進(jìn)程空間運(yùn)行,類似與操作系統(tǒng)的可加載模塊,比如DLL庫(kù)。
ActiveX控件可以嵌入在WEB頁(yè)面里面,當(dāng)瀏覽器下載這些頁(yè)面到本地后,相應(yīng)地也下載了嵌入在其中的ActiveX控件,這樣這些控件便可以在本地瀏覽器進(jìn)程空間中運(yùn)行(ActiveX空間沒有自己的進(jìn)程空間,只能由其它進(jìn)程加載并調(diào)用),因此,當(dāng)前用戶的權(quán)限有多大,ActiveX的破壞性便有多大。如果一個(gè)惡意的攻擊者編寫一個(gè)含有惡意代碼的ActiveX控件,然后嵌入在WEB頁(yè)面中,被一個(gè)瀏覽用戶下載后執(zhí)行,其破壞作用是非常大的。這便是所謂的ActiveX攻擊。
1.19 Smurf攻擊
ICMP ECHO請(qǐng)求包用來對(duì)網(wǎng)絡(luò)進(jìn)行診斷,當(dāng)一臺(tái)計(jì)算機(jī)接收到這樣一個(gè)報(bào)文后,會(huì)向報(bào)文的源地址回應(yīng)一個(gè)ICMP ECHO REPLY。一般情況下,計(jì)算機(jī)是不檢查該ECHO請(qǐng)求的源地址的,因此,如果一個(gè)惡意的攻擊者把ECHO的源地址設(shè)置為一個(gè)廣播地址,這樣計(jì)算機(jī)在恢復(fù)REPLY的時(shí)候,就會(huì)以廣播地址為目的地址,這樣本地網(wǎng)絡(luò)上所有的計(jì)算機(jī)都必須處理這些廣播報(bào)文。如果攻擊者發(fā)送的ECHO 請(qǐng)求報(bào)文足夠多,產(chǎn)生的REPLY廣播報(bào)文就可能把整個(gè)網(wǎng)絡(luò)淹沒。這就是所謂的smurf攻擊。
除了把ECHO報(bào)文的源地址設(shè)置為廣播地址外,攻擊者還可能把源地址設(shè)置為一個(gè)子網(wǎng)廣播地址,這樣,該子網(wǎng)所在的計(jì)算機(jī)就可能受影響。
1.20 虛擬終端(VTY)耗盡攻擊
這是一種針對(duì)網(wǎng)絡(luò)設(shè)備的攻擊,比如路由器,交換機(jī)等。這些網(wǎng)絡(luò)設(shè)備為了便于遠(yuǎn)程管理,一般設(shè)置了一些TELNET用戶界面,即用戶可以通過TELNET到該設(shè)備上,對(duì)這些設(shè)備進(jìn)行管理。
一般情況下,這些設(shè)備的TELNET用戶界面?zhèn)€數(shù)是有限制的,比如,5個(gè)或10個(gè)等。這樣,如果一個(gè)攻擊者同時(shí)同一臺(tái)網(wǎng)絡(luò)設(shè)備建立了5個(gè)或10個(gè)TELNET連接,這些設(shè)備的遠(yuǎn)程管理界面便被占盡,這樣合法用戶如果再對(duì)這些設(shè)備進(jìn)行遠(yuǎn)程管理,則會(huì)因?yàn)門ELNET連接資源被占用而失敗。
1.21 路由協(xié)議攻擊
網(wǎng)絡(luò)設(shè)備之間為了交換路由信息,常常運(yùn)行一些動(dòng)態(tài)的路由協(xié)議,這些路由協(xié)議可以完成諸如路由表的建立,路由信息的分發(fā)等功能。常見的路由協(xié)議有RIP,OSPF,IS-IS,BGP等。這些路由協(xié)議在方便路由信息管理和傳遞的同時(shí),也存在一些缺陷,如果攻擊者利用了路由協(xié)議的這些權(quán)限,對(duì)網(wǎng)絡(luò)進(jìn)行攻擊,可能造成網(wǎng)絡(luò)設(shè)備路由表紊亂(這足可以導(dǎo)致網(wǎng)絡(luò)中斷),網(wǎng)絡(luò)設(shè)備資源大量消耗,甚至導(dǎo)致網(wǎng)絡(luò)設(shè)備癱瘓。
下面列舉一些常見路由協(xié)議的攻擊方式及原理:
1.21.1 針對(duì)RIP協(xié)議的攻擊
RIP,即路由信息協(xié)議,是通過周期性(一般情況下為30S)的路由更新報(bào)文來維護(hù)路由表的,一臺(tái)運(yùn)行RIP路由協(xié)議的路由器,如果從一個(gè)接口上接收到了一個(gè)路由更新報(bào)文,它就會(huì)分析其中包含的路由信息,并與自己的路由表作出比較,如果該路由器認(rèn)為這些路由信息比自己所掌握的要有效,它便把這些路由信息引入自己的路由表中。
這樣如果一個(gè)攻擊者向一臺(tái)運(yùn)行RIP協(xié)議的路由器發(fā)送了人為構(gòu)造的帶破壞性的路由更新報(bào)文,就很容易的把路由器的路由表搞紊亂,從而導(dǎo)致網(wǎng)絡(luò)中斷。
如果運(yùn)行RIP路由協(xié)議的路由器啟用了路由更新信息的HMAC驗(yàn)證,則可從很大程度上避免這種攻擊。
1.21.2 針對(duì)OSPF路由協(xié)議的攻擊
OSPF,即開放最短路徑優(yōu)先,是一種應(yīng)用廣泛的鏈路狀態(tài)路由協(xié)議。該路由協(xié)議基于鏈路狀態(tài)算法,具有收斂速度快,平穩(wěn),杜絕環(huán)路等優(yōu)點(diǎn),十分適合大型的計(jì)算機(jī)網(wǎng)絡(luò)使用。OSPF路由協(xié)議通過建立鄰接關(guān)系,來交換路由器的本地鏈路信息,然后形成一個(gè)整網(wǎng)的鏈路狀態(tài)數(shù)據(jù)庫(kù),針對(duì)該數(shù)據(jù)庫(kù),路由器就可以很容易的計(jì)算出路由表。
可以看出,如果一個(gè)攻擊者冒充一臺(tái)合法路由器與網(wǎng)絡(luò)中的一臺(tái)路由器建立鄰接關(guān)系,并向攻擊路由器輸入大量的鏈路狀態(tài)廣播(LSA,組成鏈路狀態(tài)數(shù)據(jù)庫(kù)的數(shù)據(jù)單元),就會(huì)引導(dǎo)路由器形成錯(cuò)誤的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),從而導(dǎo)致整個(gè)網(wǎng)絡(luò)的路由表紊亂,導(dǎo)致整個(gè)網(wǎng)絡(luò)癱瘓。
當(dāng)前版本的WINDOWS 操作系統(tǒng)(WIN 2K/XP等)都實(shí)現(xiàn)了OSPF路由協(xié)議功能,因此一個(gè)攻擊者可以很容易的利用這些操作系統(tǒng)自帶的路由功能模塊進(jìn)行攻擊。
跟RIP類似,如果OSPF啟用了報(bào)文驗(yàn)證功能(HMAC驗(yàn)證),則可以從很大程度上避免這種攻擊。
1.21.3 針對(duì)IS-IS路由協(xié)議的攻擊
IS-IS路由協(xié)議,即中間系統(tǒng)到中間系統(tǒng),是ISO提出來對(duì)ISO的CLNS網(wǎng)絡(luò)服務(wù)進(jìn)行路由的一種協(xié)議,這種協(xié)議也是基于鏈路狀態(tài)的,原理與OSPF類似。IS-IS路由協(xié)議經(jīng)過擴(kuò)展,可以運(yùn)行在IP網(wǎng)絡(luò)中,對(duì)IP報(bào)文進(jìn)行選路。這種路由協(xié)議也是通過建立鄰居關(guān)系,收集路由器本地鏈路狀態(tài)的手段來完成鏈路狀態(tài)數(shù)據(jù)庫(kù)同步的。該協(xié)議的鄰居關(guān)系建立比OSPF簡(jiǎn)單,而且也省略了OSPF特有的一些特性,使該協(xié)議簡(jiǎn)單明了,伸縮性更強(qiáng)。
對(duì)該協(xié)議的攻擊與OSPF類似,通過一種模擬軟件與運(yùn)行該協(xié)議的路由器建立鄰居關(guān)系,然后傳頌給攻擊路由器大量的鏈路狀態(tài)數(shù)據(jù)單元(LSP),可以導(dǎo)致整個(gè)網(wǎng)絡(luò)路由器的鏈路狀態(tài)數(shù)據(jù)庫(kù)不一致(因?yàn)檎麄€(gè)網(wǎng)絡(luò)中所有路由器的鏈路狀態(tài)數(shù)據(jù)庫(kù)都需要同步到相同的狀態(tài)),從而導(dǎo)致路由表與實(shí)際情況不符,致使網(wǎng)絡(luò)中斷。
與OSPF類似,如果運(yùn)行該路由協(xié)議的路由器啟用了IS-IS協(xié)議單元(PDU)HMAC驗(yàn)證功能,則可以從很大程度上避免這種攻擊。
1.22 針對(duì)設(shè)備轉(zhuǎn)發(fā)表的攻擊
為了合理有限的轉(zhuǎn)發(fā)數(shù)據(jù),網(wǎng)絡(luò)設(shè)備上一般都建立一些寄存器表項(xiàng),比如MAC地址表,ARP表,路由表,快速轉(zhuǎn)發(fā)表,以及一些基于更多報(bào)文頭字段的表格,比如多層交換表,流項(xiàng)目表等。這些表結(jié)構(gòu)都存儲(chǔ)在設(shè)備本地的內(nèi)存中,或者芯片的片上內(nèi)存中,數(shù)量有限。如果一個(gè)攻擊者通過發(fā)送合適的數(shù)據(jù)報(bào),促使設(shè)備建立大量的此類表格,就會(huì)使設(shè)備的存儲(chǔ)結(jié)構(gòu)消耗盡,從而不能正常的轉(zhuǎn)發(fā)數(shù)據(jù)或崩潰。
下面針對(duì)幾種常見的表項(xiàng),介紹其攻擊原理:
1.22.1 針對(duì)MAC地址表的攻擊
MAC地址表一般存在于以太網(wǎng)交換機(jī)上,以太網(wǎng)通過分析接收到的數(shù)據(jù)幀的目的MAC地址,來查本地的MAC地址表,然后作出合適的轉(zhuǎn)發(fā)決定。
這些MAC地址表一般是通過學(xué)習(xí)獲取的,交換機(jī)在接收到一個(gè)數(shù)據(jù)幀后,有一個(gè)學(xué)習(xí)的過程,該過程是這樣的:
a) 提取數(shù)據(jù)幀的源MAC地址和接收到該數(shù)據(jù)幀的端口號(hào);
查MAC地址表,看該MAC地址是否存在,以及對(duì)應(yīng)的端口是否符合;
c) 如果該MAC地址在本地MAC地址表中不存在,則創(chuàng)建一個(gè)MAC地址表項(xiàng);
d) 如果存在,但對(duì)應(yīng)的出端口跟接收到該數(shù)據(jù)幀的端口不符,則更新該表;
e) 如果存在,且端口符合,則進(jìn)行下一步處理。
分析這個(gè)過程可以看出,如果一個(gè)攻擊者向一臺(tái)交換機(jī)發(fā)送大量源MAC地址不同的數(shù)據(jù)幀,則該交換機(jī)就可能把自己本地的MAC地址表學(xué)滿。一旦MAC地址表溢出,則交換機(jī)就不能繼續(xù)學(xué)習(xí)正確的MAC表項(xiàng),結(jié)果是可能產(chǎn)生大量的網(wǎng)絡(luò)冗余數(shù)據(jù),甚至可能使交換機(jī)崩潰。
而構(gòu)造一些源MAC地址不同的數(shù)據(jù)幀,是非常容易的事情。
1.22.2 針對(duì)ARP表的攻擊
ARP表是IP地址和MAC地址的映射關(guān)系表,任何實(shí)現(xiàn)了IP協(xié)議棧的設(shè)備,一般情況下都通過該表維護(hù)IP地址和MAC地址的對(duì)應(yīng)關(guān)系,這是為了避免ARP解析而造成的廣播數(shù)據(jù)報(bào)文對(duì)網(wǎng)絡(luò)造成沖擊。ARP表的建立一般情況下是通過二個(gè)途徑:
1、主動(dòng)解析,如果一臺(tái)計(jì)算機(jī)想與另外一臺(tái)不知道MAC地址的計(jì)算機(jī)通信,則該計(jì)算機(jī)主動(dòng)發(fā)ARP請(qǐng)求,通過ARP協(xié)議建立(前提是這兩臺(tái)計(jì)算機(jī)位于同一個(gè)IP子網(wǎng)上);
2、被動(dòng)請(qǐng)求,如果一臺(tái)計(jì)算機(jī)接收到了一臺(tái)計(jì)算機(jī)的ARP請(qǐng)求,則首先在本地建立請(qǐng)求計(jì)算機(jī)的IP地址和MAC地址的對(duì)應(yīng)表。
因此,如果一個(gè)攻擊者通過變換不同的IP地址和MAC地址,向同一臺(tái)設(shè)備,比如三層交換機(jī)發(fā)送大量的ARP請(qǐng)求,則被攻擊設(shè)備可能會(huì)因?yàn)锳RP緩存溢出而崩潰。
針對(duì)ARP表項(xiàng),還有一個(gè)可能的攻擊就是誤導(dǎo)計(jì)算機(jī)建立正確的ARP表。根據(jù)ARP協(xié)議,如果一臺(tái)計(jì)算機(jī)接收到了一個(gè)ARP請(qǐng)求報(bào)文,在滿足下列兩個(gè)條件的情況下,該計(jì)算機(jī)會(huì)用ARP請(qǐng)求報(bào)文中的源IP地址和源MAC地址更新自己的ARP緩存:
1、 如果發(fā)起該ARP請(qǐng)求的IP地址在自己本地的ARP緩存中;
2、 請(qǐng)求的目標(biāo)IP地址不是自己的。
可以舉一個(gè)例子說明這個(gè)過程,假設(shè)有三臺(tái)計(jì)算機(jī)A,B,C,其中B已經(jīng)正確建立了A和C計(jì)算機(jī)的ARP表項(xiàng)。假設(shè)A是攻擊者,此時(shí),A發(fā)出一個(gè)ARP請(qǐng)求報(bào)文,該請(qǐng)求報(bào)文這樣構(gòu)造:
1、 源IP地址是C的IP地址,源MAC地址是A的MAC地址;
2、 請(qǐng)求的目標(biāo)IP地址是A的IP地址。
這樣計(jì)算機(jī)B在收到這個(gè)ARP請(qǐng)求報(bào)文后(ARP請(qǐng)求是廣播報(bào)文,網(wǎng)絡(luò)上所有設(shè)備都能收到),發(fā)現(xiàn)B的ARP表項(xiàng)已經(jīng)在自己的緩存中,但MAC地址與收到的請(qǐng)求的源MAC地址不符,于是根據(jù)ARP協(xié)議,使用ARP請(qǐng)求的源MAC地址(即A的MAC地址)更新自己的ARP表。
這樣B的ARP混存中就存在這樣的錯(cuò)誤ARP表項(xiàng):C的IP地址跟A的MAC地址對(duì)應(yīng)。這樣的結(jié)果是,B發(fā)給C的數(shù)據(jù)都被計(jì)算機(jī)A接收到。
1.22.3 針對(duì)流項(xiàng)目表的攻擊
有的網(wǎng)絡(luò)設(shè)備為了加快轉(zhuǎn)發(fā)效率,建立了所謂的流緩存。所謂流,可以理解為一臺(tái)計(jì)算機(jī)的一個(gè)進(jìn)程到另外一臺(tái)計(jì)算機(jī)的一個(gè)進(jìn)程之間的數(shù)據(jù)流。如果表現(xiàn)在TCP/IP協(xié)議上,則是由(源IP地址,目的IP地址,協(xié)議號(hào),源端口號(hào),目的端口號(hào))五元組共同確定的所有數(shù)據(jù)報(bào)文。
一個(gè)流緩存表一般由該五元組為索引,每當(dāng)設(shè)備接收到一個(gè)IP報(bào)文后,會(huì)首先分析IP報(bào)頭,把對(duì)應(yīng)的五元組數(shù)據(jù)提取出來,進(jìn)行一個(gè)HASH運(yùn)算,然后根據(jù)運(yùn)算結(jié)果查詢流緩存,如果查找成功,則根據(jù)查找的結(jié)果進(jìn)行處理,如果查找失敗,則新建一個(gè)流緩存項(xiàng),查路由表,根據(jù)路由表查詢結(jié)果填完整這個(gè)流緩存,然后對(duì)數(shù)據(jù)報(bào)文進(jìn)行轉(zhuǎn)發(fā)(具體轉(zhuǎn)發(fā)是在流項(xiàng)目創(chuàng)建前還是創(chuàng)建后并不重要)。
可以看出,如果一個(gè)攻擊者發(fā)出大量的源IP地址或者目的IP地址變化的數(shù)據(jù)報(bào)文,就可能導(dǎo)致設(shè)備創(chuàng)建大量的流項(xiàng)目,因?yàn)椴煌脑碔P地址和不同的目標(biāo)IP地址對(duì)應(yīng)不同的流。這樣可能導(dǎo)致流緩存溢出。