云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

数据库_阿里云备案网站名称_怎么买

小七 141 0

愚蠢简单的DDoS协议(SSDP)生成100 Gbps DDoS

上个月,我们分享了一些流行的反射攻击的统计数据。当时,平均SSDP攻击大小约为12 Gbps,我们记录的最大SSDP反射为:30 Mpps(每秒数百万个数据包)80 Gbps(每秒数十亿位)使用940k反射器IPs几天前,当我们注意到一个异常大的SSDP放大时,情况发生了变化。由于它跨越了100 Gbps的象征性阈值,因此值得深入研究。攻击期间的每秒数据包图表如下所示:带宽使用:这包洪水持续了38分钟。根据我们采样的netflow数据,它使用了930k反射镜服务器。我们估计在攻击的38分钟内,每个反射器向Cloudflare发送了112k个数据包。反射器服务器遍布全球,在阿根廷、俄罗斯和中国都有大量应用。以下是每个国家的独特IP:$cat ips nf-ct.txt|uniq | cut-f 2 |分拣| uniq-c |分拣-nr |头部439126中国大陆135783卢比74825银币51222美国35413太瓦32850加州19558车型年款18962公司14234比尔10824韩元10334乌克兰先令9103信息技术...反射器IP在ASN上的分布是典型的。它几乎遵循了世界上最大的住宅ISP:$cat ips nf-asn.txt版|uniq | cut-f 2 |分拣| uniq-c |分拣-nr |头部318405 4837中国联通84781 4134中国电信72301 22927阿根廷电信23823 3462中华电信19518 6327加州肖氏通信公司。19464 4788我的TM网络18809 3816哥伦比亚电信公司11328 28573布雷克拉罗公司7070 10796美国时代华纳有线互联网6840 8402#RU OJSC"Vimpelcom"6604 3269意大利IT电信6377 12768#RU JSC"ER电信控股公司"...什么是SSDP?攻击由源端口为1900的UDP数据包组成。此端口由SSDP使用,并由UPnP协议使用。UPnP是零配置网络协议之一。很有可能你的家庭设备支持它,让它们很容易被你的电脑或手机发现。当一个新设备(如您的笔记本电脑)加入网络时,它可以在本地网络中查询特定的设备,如internet网关、音频系统、电视或打印机。阅读更多关于UPnP与Bonjour的比较。UPnP的标准化程度很低,但以下是关于M-SEARCH框架的规范片段-发现的主要方法:当控制点添加到网络时,UPnP发现协议允许该控制点搜索网络上感兴趣的设备。它通过在保留地址和端口(239.255.255.250:1900)上多播一条具有模式或目标的搜索消息,该模式或目标等同于设备或服务的类型或标识符。对M-SEARCH帧的响应:要通过网络搜索找到,设备应向源IP地址和向多播地址发送请求的端口发送单播UDP响应。如果M-SEARCH请求的ST header字段为"ssdp:全部", "upnp:根设备","uuid:"后跟与设备播发的uuid完全匹配的uuid,或者M-SEARCH请求与设备支持的设备类型或服务类型匹配。这在实践中是可行的。例如,我的Chrome浏览器经常要求智能电视,我猜:$sudo tcpdump-ni eth0 udp和端口1900-AIP 192.168.1.124.53044>239.255.255.250.1900:UDP,长度175M-SEARCH*HTTP/1.1主持人:239.255.255.250:1900男人:"ssdp:发现"墨西哥:1ST段:urn:拨号多屏幕组织:服务:拨号:1个用户代理:Google Chrome/58.0.3029.110 Windows此帧被发送到多播IP地址。监听该地址并支持此特定ST(搜索目标)多屏幕类型的其他设备应该应答。除了对特定设备类型的查询外,还有两种"通用"ST查询类型:upnp:根设备:搜索根设备ssdp:全部:搜索所有UPnP设备和服务要模拟这些查询,可以运行以下python脚本(基于此工作):#!/usr/bin/env蟒蛇2导入套接字导入系统dst="239.255.255.250"如果len(系统argv)>1:夏令时=系统argv[1]st="upnp:根设备"如果len(系统argv)>2:st=系统argv[2]消息=['M-SEARCH*HTTP/1.1','主机:239.255.255.250:1900','ST:%s'%(ST,),"男人"ssdp:发现"',"MX:1",'']s=插座.插座(插座, 承插式插座, 套接字.IPPROTO\u UDP)s、 设置超时(10)s、 发送到('\r\n'.join(msg),(dst,1900))如果是真的:尝试:数据,addr=s.recvfrom(32*1024)除了套接字超时:打破打印"[+]%s\n%s"%(地址,数据)在我的家庭网络上会显示两个设备:$python ssdp-查询.py[+]('192.168.1.71',1026)HTTP/1.1 200行CACHE-CONTROL:最大年龄=60提取:地点::5200个/打印机.xml打印机UP0.06-2009.00网络服务器ST段:upnp:根设备美国海军:uuid:Samsung-Printer-1_0-mrgutenberg::upnp:根设备[+]('192.168.1.70',36319)HTTP/1.1 200行地点::49154/媒体渲染器/说明.xml缓存控制:最大年龄=1800内容长度:0服务器:Linux/3.2 UPnP/1.0网络_模块/1.0(RX-S601D)提取:ST段:upnp:根设备美国海军:uuid:9ab0c000-f668-11de-9976-000adedd7411::upnp:根设备防火墙既然我们了解了SSDP的基本知识,那么理解反射攻击应该很容易。你看,事实上有两种方法可以提供M-SEARCH框架:我们介绍的,通过多播地址直接到普通单播地址上启用UPnP/SSDP的主机后一种方法有效。我们可以专门针对我的打印机IP地址:$python ssdp-查询.py192.168.1.71[+]('192.168.1.71',1026)HTTP/1.1 200行CACHE-CONTROL:最大年龄=60提取:地点::5200个/打印机.xml服务器:网络打印机服务器UPnP/1.0 OS 1.29.00.44 06-17-2009ST段:upnp:根设备美国海军:uuid:Samsung-Printer-1_0-mrgutenberg::upnp:根设备现在问题很容易看出:SSDP协议不检查查询方是否与设备在同一个网络中。它会很乐意对通过公共互联网发布的移动搜索做出回应。它所需要的只是在防火墙中的一个小小的错误配置-端口1900 UDP对世界开放-和一个完美的UDP放大目标将可用。给定一个错误配置的目标,我们的脚本将很高兴在互联网上运行:$python ssdp-查询.py100.42.x.x[+]('100.42.x.x',1900年)HTTP/1.1 200行CACHE-CONTROL:最大年龄=120ST段:upnp:根设备美国海军:uuid:3e55ade9-c344-4baa-841b-826bda77dcb2::upnp:根设备提取:服务器:TBS/R2 UPnP/1.0 MiniUPnPd/1.2地点::40464个/根描述.xml放大真正的损害是由ssdp:所有ST尽管如此。这些反应要大得多:$python ssdp-查询.py100.42.x.xssdp:全部[+]('100.42.x.x',1900年)HTTP/1.1 200行CACHE-CONTROL:最大年龄=120ST段:upnp:根设备美国海军:uuid:3e55ade9-c344-4baa-841b-826bda77dcb2::upnp:根设备提取:服务器:TBS/R2 UPnP/1.0 MiniUPnPd/1.2地点::40464个/根描述.xml[+]('100.42.x.x',1900年)HTTP/1.1 200行CACHE-CONTROL:最大年龄=120ST段:urn:schemas upnp组织:设备:InternetGatewayDevice:1个美国海军:uuid:3e55ade9-c344-4baa-841b-826bda77dcb2::urn:schemas upnp组织:设备:InternetGatewayDevice:1个提取:服务器:TBS/R2 UPnP/1.0 MiniUPnPd/1.2地点::40464个/根描述.xml... 6个响应包。。。。在这种特殊情况下,单个ssdpm-SEARCH包触发了8个响应包。tcpdump视图:$sudo tcpdump-ni en7主机100.42.x.x-ttttt00:00:00.000000IP 192.168.1.200.61794>100.42.x.x.1900:UDP,长度8800:00:00.197481 IP 100.42.x.x.1900>192.168.1.200.61794:UDP,长度22700:00:00.199634 IP 100.42.x.x.1900>192.168.1.200.61794:UDP,长度29900:00:00.202938 IP 100.42.x.x.1900>192.168.1.200.61794:UDP,长度29500:00:00.208425 IP 100.42.x.x.1900>192.168.1.200.61794:UDP,长度27500:00:00.209496 IP 100.42.x.x.1900>192.168.1.200.61794:UDP,长度30700:00:00.212795 IP 100.42.x.x.1900>192.168.1.200.61794:UDP,长度28900:00:00.215522 IP 100.42.x.x.1900>192.168.1.200.61794:UDP,长度29100:00:00.219190 IP 100.42.x.x.1900>192.168.1.200.61794:UDP,长度291该目标暴露出8倍的包计数放大和26倍的带宽放大。遗憾的是,这是SSDP的典型情况。要有抵抗地址冒认攻击的最后一步是欺骗易受攻击的服务器,使其淹没目标IP,而不是攻击者。为此,攻击者需要在查询时伪造源IP地址。我们探测了在所示的100gbps+攻击中使用的反射器ip。我们发现,在920k反射器IP中,只有350k(38%)仍然对SSDP探针有响应。在响应的反射器中,每个反射器平均发送7个数据包:$cat结果优先-运行.txt|cut-f1 | sort | uniq-c | sed-s#^\+##g'|cut-d""-f1 | ~/mmhistogram-t"每个IP的响应包数"-p每个IP的响应数据包最小值:平均1.00:6.99中=8.00最大值:186.00偏差:4.44分计数:350337每个IP的响应数据包:值|--------------------------------------------------计数0 |*************************23.29%1 |****3.30%2 |**2.29%4 |**********************************************38.73%8 |**********************************29.51%16 |***2.88%32 | 0.01%64 | 0.00%128 | 0.00%响应数据包平均有321字节(+/-29字节)。我们的请求包有110字节。根据我们的测量ssdp:所有M-SEARCH攻击者将能够实现:7x包号放大20倍带宽放大我们可以估计43 Mpps/112 Gbps的攻击产生的原因大致如下:6.1 Mpps欺骗容量5.6 Gbps欺骗带宽换言之:一台连接良好的10 Gbps服务器能够执行IP欺骗,可能会引发严重的SSDP攻击。更多关于SSDP服务器的信息由于我们探测了易受攻击的SSDP服务器,以下是我们收到的最常见的服务器头值:104833 Linux/2.4.22-1.2115.nptl UPnP/1.0 miniupnpd/1.0