自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

對DOS攻擊原理與常見方法描述

安全 黑客攻防
對于介紹DOS攻擊的文章有很多,但是多數(shù)人還是不知道DOS是什么,以及它是怎么實現(xiàn)的?;蛟S以下的文章你從中學(xué)到東西。

 

 

本文主要介紹的是DOS的機(jī)理和常見的實施方法。因前段時間仔細(xì)了解了TCP/IP協(xié)議以及RFC文檔,有點心得。同時本文也有部分內(nèi)容參考了Shaft的文章翻譯而得。要想了解DOS攻擊得實現(xiàn)機(jī)理,必須對TCP有一定的了解。

 

1、什么是DOS攻擊

DOS:即Denial Of Service,拒絕服務(wù)的縮寫,可不能認(rèn)為是微軟的dos操作系統(tǒng)了。好象在5·1的時候鬧過這樣的笑話。拒絕服務(wù),就相當(dāng)于必勝客在客滿的時候不再讓人進(jìn)去一樣,呵呵,你想吃餡餅,就必須在門口等吧。DOS攻擊即讓目標(biāo)機(jī)器停止提供服務(wù)或資源訪問。

2、有關(guān)TCP協(xié)議的東西

TCP(transmission control protocol,傳輸控制協(xié)議),是用來在不可*的因特網(wǎng)上提供可*的、端到端的字節(jié)流通訊協(xié)議,在RFC793中有正式定義,還有一些解決錯誤的東西在RFC 1122中有記錄,RFC 1323則有TCP的功能擴(kuò)展。我們常見到的TCP/IP協(xié)議中,IP層不保證將數(shù)據(jù)報正確傳送到目的地,TCP則從本地機(jī)器接受用戶的數(shù)據(jù)流,將其分成不超過64K字節(jié)的數(shù)據(jù)片段,將每個數(shù)據(jù)片段作為單獨(dú)的IP數(shù)據(jù)包發(fā)送出去,最后在目的地機(jī)器中再組合成完整的字節(jié)流,TCP協(xié)議必須保證可*性。

發(fā)送和接收方的TCP傳輸以數(shù)據(jù)段的形式交換數(shù)據(jù),一個數(shù)據(jù)段包括一個固定的20字節(jié),加上可選部分,后面再跟上數(shù)據(jù),TCP協(xié)議從發(fā)送方傳送一個數(shù)據(jù)段的時候,還要啟動計時器,當(dāng)數(shù)據(jù)段到達(dá)目的地后,接收方還要發(fā)送回一個數(shù)據(jù)段,其中有一個確認(rèn)序號,它等于希望收到的下一個數(shù)據(jù)段的順序號,如果計時器在確認(rèn)信息到達(dá)前超時了,發(fā)送方會重新發(fā)送這個數(shù)據(jù)段。

上面,我們總體上了解一點TCP協(xié)議,重要的是要熟悉TCP的數(shù)據(jù)頭(header)。因為數(shù)據(jù)流的傳輸最重要的就是header里面的東西,至于發(fā)送的數(shù)據(jù),只是header附帶上的??蛻舳撕头?wù)端的服務(wù)響應(yīng)就是同header里面的數(shù)據(jù)相關(guān),兩端的信息交流和交換是根據(jù)header中的內(nèi)容實施的,因此,要實現(xiàn)DOS,就必須對header中的內(nèi)容非常熟悉。

下面是TCP數(shù)據(jù)段頭格式。RFC793中的

(請大家注意網(wǎng)頁顯示空格使下面的格式錯位了)

 

  1. 0 1 2 3   
  2. 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1   
  3. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   
  4. | Source Port | Destination Port |   
  5. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   
  6. | Sequence Number |   
  7. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   
  8. | Acknowledgment Number |   
  9. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   
  10. | Data | |U|A|P|R|S|F| |   
  11. | Offset| Reserved |R|C|S|S|Y|I| Window |   
  12. | | |G|K|H|T|N|N| |   
  13. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   
  14. | Checksum | Urgent Pointer |   
  15. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   
  16. | Options | Padding |   
  17. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   
  18. | data |   
  19. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  

TCP Header Format

 

Source Port和 Destination Port :是本地端口和目標(biāo)端口

Sequence Number 和 Acknowledgment Number :是順序號和確認(rèn)號,確認(rèn)號是希望接收的字節(jié)號。這都是32位的,在TCP流中,每個數(shù)據(jù)字節(jié)都被編號。

 

Data offset :表明TCP頭包含多少個32位字,用來確定頭的長度,因為頭中可選字段長度是不定的。

 

Reserved : 保留的6位,現(xiàn)在沒用,都是0

 

接下來是6個1位的標(biāo)志,這是兩個計算機(jī)數(shù)據(jù)交流的信息標(biāo)志。接收和發(fā)送斷根據(jù)這些標(biāo)志來確定信息流的種類。下面是一些介紹:

URG:(Urgent Pointer field significant)緊急指針。用到的時候值為1,用來處理避免TCP數(shù)據(jù)流中斷

 

ACK:(Acknowledgment field significant)置1時表示確認(rèn)號(Acknowledgment Number)為合法,為0的時候表示數(shù)據(jù)段不包含確認(rèn)信息,確認(rèn)號被忽略。

 

PSH:(Push Function),PUSH標(biāo)志的數(shù)據(jù),置1時請求的數(shù)據(jù)段在接收方得到后就可直接送到應(yīng)用程序,而不必等到緩沖區(qū)滿時才傳送。

 

RST:(Reset the connection)用于復(fù)位因某種原因引起出現(xiàn)的錯誤連接,也用來拒絕非法數(shù)據(jù)和請求。如果接收到RST位時候,通常發(fā)生了某些錯誤。

 

SYN:(Synchronize sequence numbers)用來建立連接,在連接請求中,SYN=1,ACK=0,連接響應(yīng)時,SYN=1,ACK=1。即,SYN和ACK來區(qū)分Connection Request和Connection Accepted。

 

FIN:(No more data from sender)用來釋放連接,表明發(fā)送方已經(jīng)沒有數(shù)據(jù)發(fā)送了。

 

知道這重要的6個指示標(biāo)志后,我們繼續(xù)來。

16位的WINDOW字段:表示確認(rèn)了字節(jié)后還可以發(fā)送多少字節(jié)??梢詾?,表示已經(jīng)收到包括確認(rèn)號減1(即已發(fā)送所有數(shù)據(jù))在內(nèi)的所有數(shù)據(jù)段。

接下來是16位的Checksum字段,用來確???性的。

 

16位的Urgent Pointer,和下面的字段我們這里不解釋了。不然太多了。呵呵,偷懶啊。

 

我們進(jìn)入比較重要的一部分:TCP連接握手過程。這個過程簡單地分為三步。

在沒有連接中,接受方(我們針對服務(wù)器),服務(wù)器處于LISTEN狀態(tài),等待其他機(jī)器發(fā)送連接請求。

第一步:客戶端發(fā)送一個帶SYN位的請求,向服務(wù)器表示需要連接,比如發(fā)送包假設(shè)請求序號為10,那么則為:SYN=10,ACK=0,然后等待服務(wù)器的響應(yīng)。

第二步:服務(wù)器接收到這樣的請求后,查看是否在LISTEN的是指定的端口,不然,就發(fā)送RST=1應(yīng)答,拒絕建立連接。如果接收連接,那么服務(wù)器發(fā)送確認(rèn),SYN為服務(wù)器的一個內(nèi)碼,假設(shè)為100,ACK位則是客戶端的請求序號加1,本例中發(fā)送的數(shù)據(jù)是:SYN=100,ACK=11,用這樣的數(shù)據(jù)發(fā)送給客戶端。向客戶端表示,服務(wù)器連接已經(jīng)準(zhǔn)備好了,等待客戶端的確認(rèn)

這時客戶端接收到消息后,分析得到的信息,準(zhǔn)備發(fā)送確認(rèn)連接信號到服務(wù)器

第三步:客戶端發(fā)送確認(rèn)建立連接的消息給服務(wù)器。確認(rèn)信息的SYN位是服務(wù)器發(fā)送的ACK位,ACK位是服務(wù)器發(fā)送的SYN位加1。即:SYN=11,ACK=101。

這時,連接已經(jīng)建立起來了。然后發(fā)送數(shù)據(jù),。這是一個基本的請求和連接過程。需要注意的是這些標(biāo)志位的關(guān)系,比如SYN、ACK。

3、服務(wù)器的緩沖區(qū)隊列(Backlog Queue)

服務(wù)器不會在每次接收到SYN請求就立刻同客戶端建立連接,而是為連接請求分配內(nèi)存空間,建立會話,并放到一個等待隊列中。如果,這個等待的隊列已經(jīng)滿了,那么,服務(wù)器就不在為新的連接分配任何東西,直接丟棄新的請求。如果到了這樣的地步,服務(wù)器就是拒絕服務(wù)了。

如果服務(wù)器接收到一個RST位信息,那么就認(rèn)為這是一個有錯誤的數(shù)據(jù)段,會根據(jù)客戶端IP,把這樣的連接在緩沖區(qū)隊列中清除掉。這對IP欺騙有影響,也能被利用來做DOS攻擊。#p#

 

上面的介紹,我們了解TCP協(xié)議,以及連接過程。要對SERVER實施拒絕服務(wù)攻擊,實質(zhì)上的方式就是有兩個:

一:迫使服務(wù)器的緩沖區(qū)滿,不接收新的請求。

 

二:使用IP欺騙,迫使服務(wù)器把合法用戶的連接復(fù)位,影響合法用戶的連接

 

這就是DOS攻擊實施的基本思想。具體實現(xiàn)有這樣的方法:

 

1、SYN FLOOD

 

利用服務(wù)器的連接緩沖區(qū)(Backlog Queue),利用特殊的程序,設(shè)置TCP的Header,向服務(wù)器端不斷地成倍發(fā)送只有SYN標(biāo)志的TCP連接請求。當(dāng)服務(wù)器接收的時候,都認(rèn)為是沒有建立起來的連接請求,于是為這些請求建立會話,排到緩沖區(qū)隊列中。

 

如果你的SYN請求超過了服務(wù)器能容納的限度,緩沖區(qū)隊列滿,那么服務(wù)器就不再接收新的請求了。其他合法用戶的連接都被拒絕掉??梢猿掷m(xù)你的SYN請求發(fā)送,直到緩沖區(qū)中都是你的只有SYN標(biāo)記的請求。

 

現(xiàn)在有很多實施SYN FLOOD的工具,呵呵,自己找去吧。

 

2、IP欺騙DOS攻擊

 

這種攻擊利用RST位來實現(xiàn)。假設(shè)現(xiàn)在有一個合法用戶(1.1.1.1)已經(jīng)同服務(wù)器建立了正常的連接,攻擊者構(gòu)造攻擊的TCP數(shù)據(jù),偽裝自己的IP為1.1.1.1,并向服務(wù)器發(fā)送一個帶有RST位的TCP數(shù)據(jù)段。服務(wù)器接收到這樣的數(shù)據(jù)后,認(rèn)為從1.1.1.1發(fā)送的連接有錯誤,就會清空緩沖區(qū)中建立好的連接。這時,如果合法用戶1.1.1.1再發(fā)送合法數(shù)據(jù),服務(wù)器就已經(jīng)沒有這樣的連接了,該用戶就必須從新開始建立連接。

攻擊時,偽造大量的IP地址,向目標(biāo)發(fā)送RST數(shù)據(jù),使服務(wù)器不對合法用戶服務(wù)。

 

 3、帶寬DOS攻擊

如果你的連接帶寬足夠大而服務(wù)器又不是很大,你可以發(fā)送請求,來消耗服務(wù)器的緩沖區(qū)消耗服務(wù)器的帶寬。這種攻擊就是人多力量大了,配合上SYN一起實施DOS,威力巨大。不過是初級DOS攻擊。呵呵。Ping白宮??你發(fā)瘋了??!

 

4、自身消耗的DOS攻擊

 

這是一種老式的攻擊手法。說老式,是因為老式的系統(tǒng)有這樣的自身BUG。比如Win95 (winsock v1), Cisco IOS v.10.x, 和其他過時的系統(tǒng)。

 

這種DOS攻擊就是把請求客戶端IP和端口弄成主機(jī)的IP端口相同,發(fā)送給主機(jī)。使得主機(jī)給自己發(fā)送TCP請求和連接。這種主機(jī)的漏洞會很快把資源消耗光。直接導(dǎo)致當(dāng)機(jī)。這中偽裝對一些身份認(rèn)證系統(tǒng)還是威脅巨大的。

 

上面這些實施DOS攻擊的手段最主要的就是構(gòu)造需要的TCP數(shù)據(jù),充分利用TCP協(xié)議。這些攻擊方法都是建立在TCP基礎(chǔ)上的。還有其他的DOS攻擊手段。

 

5、塞滿服務(wù)器的硬盤

 

通常,如果服務(wù)器可以沒有限制地執(zhí)行寫操作,那么都能成為塞滿硬盤造成DOS攻擊的途徑,比如:

 

發(fā)送垃圾郵件。一般公司的服務(wù)器可能把郵件服務(wù)器和WEB服務(wù)器都放在一起。破壞者可以發(fā)送大量的垃圾郵件,這些郵件可能都塞在一個郵件隊列中或者就是壞郵件隊列中,直到郵箱被撐破或者把硬盤塞滿。

 

讓日志記錄滿。入侵者可以構(gòu)造大量的錯誤信息發(fā)送出來,服務(wù)器記錄這些錯誤,可能就造成日志文件非常龐大,甚至?xí)麧M硬盤。同時會讓管理員痛苦地面對大量的日志,甚至就不能發(fā)現(xiàn)入侵者真正的入侵途徑。

 

向匿名FTP塞垃圾文件。這樣也可以塞滿硬盤空間。

 

6、合理利用策略

 

一般服務(wù)器都有關(guān)于帳戶鎖定的安全策略,比如,某個帳戶連續(xù)3次登陸失敗,那么這個帳號將被鎖定。這點也可以被破壞者利用,他們偽裝一個帳號去錯誤登陸,這樣使得這個帳號被鎖定,而正常的合法用戶就不能使用這個帳號去登陸系統(tǒng)了。

 

 

 

責(zé)任編輯:佚名 來源: csscss.org
相關(guān)推薦

2010-09-17 15:24:02

2024-09-25 15:32:23

2010-09-29 10:21:50

2015-08-13 13:47:17

2010-08-24 09:43:33

2010-01-14 16:48:29

交換機(jī)故障

2020-08-23 11:52:10

Docker容器技術(shù)

2022-01-04 06:50:12

數(shù)據(jù)摘要方法

2010-09-29 12:52:14

2020-06-09 08:11:33

MESI協(xié)議MM

2010-08-16 16:49:30

DIV CSS居中

2019-09-02 15:33:23

AI換臉人臉轉(zhuǎn)換深度學(xué)習(xí)

2010-09-07 09:33:20

2010-09-30 10:41:29

2009-08-12 16:52:10

.NET二進(jìn)制圖片存儲

2010-09-08 15:10:48

2010-09-08 13:31:24

2014-12-31 09:10:57

2010-01-12 09:37:48

VB.NET調(diào)用IE

2010-07-29 10:22:38

點贊
收藏

51CTO技術(shù)棧公眾號