本帖最后由 494308843 于 2014-8-3 19:38 编辑
MC的通讯协议的安全实在是让人大跌眼界
(攻击程序和源码不会放出!以防小学生危害MC,各位大大自行看理论)效果图

随机生成的6位玩家号 (没多久服务器崩了)
身为一只腐竹 当然要以服务器的安全优先
很多腐竹几乎纯粹是为了收赞助而开服
很少在乎安全方面的问题 比如 OP满地是 创造满天飞 一堆不合理的配置
但是我不是讲如何配置服务器的
我说我这几天的一个发现
大家可知道MCCHAT这款手机软件
它能做什么?
连接到电脑服务器 进行聊天
但是呢 我进行流量监控的时候
发现会接收每秒100KB的数据大概
然后几秒后就稳定了
我估计的是服务器在确认玩家加入服务器后发送的区块数据
那么 如果知道MC的通讯协议意味着什么
MC专项攻击器非常容易完成
本人不推荐MC1.7.2服务器
因为 我测试发现 根本没什么加密
第一个无非就是含有本地连接服务器的连接地址(估计是跟服务器配置文件的IP对应 不对应就拒绝)
第二个就是含有玩家名的数据包 用一定的规则来生成的(我太笨了 看了几个小时才发现是根据长度)
于是 昨天我做了一个小程序(- -易语言 勿喷)
我测试的结果是什么
启动了几十个TCP客户 连接服务器 连接成功就发送预定的第一个封包(服务器IP设置为0应该通用)
第二个封包按成一定的规则生成
发生了什么?
服务器被刷屏了 N个随机玩家名的玩家上线 下线
然后呢
一分钟不到
一个可以带50人的服务器 挂了?
什么效果 完全是服务器崩了一样 标语插件都不能用了 只显示配置文件设置的内容
后台崩了
我是菜鸟
有什么方法可以防范?
可以通过设置防火墙规则屏蔽
比如 模拟N个玩家上线 需要频繁的连接
可以设置规则屏蔽IP
而且游戏服务端可设置连接间隔
(41楼指出可以限制单IP短时间内过快连接)
(我玩服务器的时候遇见过提示什么加入过快 不过我是刚启动游戏 之前没连接 也可能是所有玩家加入的间隔)
(不过不失为一种有效的方法 即使熊孩子可以模拟出 也能降低服务器内存和宽带的损耗)
但是!在屏蔽之前 攻击效果是实际已经发生了
因为服务器不可能知道这个IP的连接是有问题的
而且大部分辅助都对游戏端口设置了允许所有
屏蔽了其他端口
而且!及时设置了极为苛刻的规则
如!同时只允许一个连接
也是无法防御这种攻击
我刚才说的是单计算机进行攻击
如果有僵尸网络呢?
及时限制了同时连接数最多为1
几十台肉鸡 的流量吞噬还是很可观的
近十倍+
这意味着什么
如果你有一台百兆共享的服务器
模拟100个玩家+就可以吞掉服务器宽带
导致服务器网络卡顿 玩家掉线
而大部分防火墙都是在几十次频繁连接后进行屏蔽
但是这样我就想起来我之前试验的
当时我是想截取刷新多人游戏列表时发送的封包
可以返回1400多字节的数据包(好像是几个数据包 被分成了几块)
只需要发送20字节就可以达到效果(测试的1.7.2)
但是这种效果太低 而且会被防火墙屏蔽
针对主要说明的那个攻击方法 建议配合防火墙和服务器连接间隔设置
对于这种攻击方法 没有切实的防御方法 这不是漏洞 可以说是安全缺陷
我是菜鸟渣渣一个
欢迎吐槽
本帖中的方法是确实存在和可行的
MC服务器天大的缺陷 吞掉服务器大量的内存和宽带 不蹦服也网络耗尽
这种攻击会最大化流量(什么? 这是最大化利用客户端的宽带 完全跟下载文件一样的最大宽带利用)
{:10_512:} 求点人气 不会排版 各位如果有什么好的防御方法 请告诉大家
不会排版 凑合看吧
我是ESP{:10_564:}
(怎么添加可以展开的内容项啊 我不会排版。。。)
MC的通讯协议的安全实在是让人大跌眼界
(攻击程序和源码不会放出!以防小学生危害MC,各位大大自行看理论)效果图


随机生成的6位玩家号 (没多久服务器崩了)
身为一只腐竹 当然要以服务器的安全优先
很多腐竹几乎纯粹是为了收赞助而开服
很少在乎安全方面的问题 比如 OP满地是 创造满天飞 一堆不合理的配置
但是我不是讲如何配置服务器的
我说我这几天的一个发现
大家可知道MCCHAT这款手机软件
它能做什么?
连接到电脑服务器 进行聊天
但是呢 我进行流量监控的时候
发现会接收每秒100KB的数据大概
然后几秒后就稳定了
我估计的是服务器在确认玩家加入服务器后发送的区块数据
那么 如果知道MC的通讯协议意味着什么
MC专项攻击器非常容易完成
本人不推荐MC1.7.2服务器
因为 我测试发现 根本没什么加密
第一个无非就是含有本地连接服务器的连接地址(估计是跟服务器配置文件的IP对应 不对应就拒绝)
第二个就是含有玩家名的数据包 用一定的规则来生成的(我太笨了 看了几个小时才发现是根据长度)
于是 昨天我做了一个小程序(- -易语言 勿喷)
我测试的结果是什么
启动了几十个TCP客户 连接服务器 连接成功就发送预定的第一个封包(服务器IP设置为0应该通用)
第二个封包按成一定的规则生成
发生了什么?
服务器被刷屏了 N个随机玩家名的玩家上线 下线
然后呢
一分钟不到
一个可以带50人的服务器 挂了?
什么效果 完全是服务器崩了一样 标语插件都不能用了 只显示配置文件设置的内容
后台崩了
我是菜鸟
有什么方法可以防范?
可以通过设置防火墙规则屏蔽
比如 模拟N个玩家上线 需要频繁的连接
可以设置规则屏蔽IP
而且游戏服务端可设置连接间隔
(41楼指出可以限制单IP短时间内过快连接)
(我玩服务器的时候遇见过提示什么加入过快 不过我是刚启动游戏 之前没连接 也可能是所有玩家加入的间隔)
(不过不失为一种有效的方法 即使熊孩子可以模拟出 也能降低服务器内存和宽带的损耗)
但是!在屏蔽之前 攻击效果是实际已经发生了
因为服务器不可能知道这个IP的连接是有问题的
而且大部分辅助都对游戏端口设置了允许所有
屏蔽了其他端口
而且!及时设置了极为苛刻的规则
如!同时只允许一个连接
也是无法防御这种攻击
我刚才说的是单计算机进行攻击
如果有僵尸网络呢?
及时限制了同时连接数最多为1
几十台肉鸡 的流量吞噬还是很可观的
近十倍+
这意味着什么
如果你有一台百兆共享的服务器
模拟100个玩家+就可以吞掉服务器宽带
导致服务器网络卡顿 玩家掉线
而大部分防火墙都是在几十次频繁连接后进行屏蔽
但是这样我就想起来我之前试验的
当时我是想截取刷新多人游戏列表时发送的封包
可以返回1400多字节的数据包(好像是几个数据包 被分成了几块)
只需要发送20字节就可以达到效果(测试的1.7.2)
但是这种效果太低 而且会被防火墙屏蔽
针对主要说明的那个攻击方法 建议配合防火墙和服务器连接间隔设置
对于这种攻击方法 没有切实的防御方法 这不是漏洞 可以说是安全缺陷
我是菜鸟渣渣一个
欢迎吐槽
本帖中的方法是确实存在和可行的
MC服务器天大的缺陷 吞掉服务器大量的内存和宽带 不蹦服也网络耗尽
这种攻击会最大化流量(什么? 这是最大化利用客户端的宽带 完全跟下载文件一样的最大宽带利用)
{:10_512:} 求点人气 不会排版 各位如果有什么好的防御方法 请告诉大家
不会排版 凑合看吧
我是ESP{:10_564:}
(怎么添加可以展开的内容项啊 我不会排版。。。)
好吧 楼主的话好长 看不懂耶
好吧 楼主的话好长 看不懂耶
昨天我的服务器也悲哀了。。
虽然看不懂,但总觉得lz好厉害= =
求楼主别回车=。=顺便带图=。=
逍遥jin 发表于 2014-8-3 08:39
求楼主别回车=。=顺便带图=。=
补图了...
494308843 发表于 2014-8-3 08:38
补图了...
我怎么木有看见QAQ
逍遥jin 发表于 2014-8-3 08:41
我怎么木有看见QAQ
刷新 。。。。。。。。。。
494308843 发表于 2014-8-3 08:42
刷新 。。。。。。。。。。
= =好吧,我是不是没救了
好长啊,言之有理
xcc 发表于 2014-8-3 08:45
好长啊,言之有理
语文差。。。凑合看
leavessoft 发表于 2014-8-3 08:36
昨天我的服务器也悲哀了。。
????????什么
你说的不就是普通的ddos攻击?防火墙规则,负载均衡这些都能有效防护ddos。
eyz1993 发表于 2014-8-3 08:49
你说的不就是普通的ddos攻击?防火墙规则,负载均衡这些都能有效防护ddos。
不是DDOS
ddos是洪水攻击
这种方法是利用通讯协议 让服务器对外发包
最大化攻击方流量 也就是说 你下行有多少 几乎就能达到多少
而且- - 模拟玩家 我试了 防火墙鸡肋了
服务器直接崩了
服务器内被刷屏
一直显示玩家上线下线 欢迎新玩家
几分钟就崩了
eyz1993 发表于 2014-8-3 08:49
你说的不就是普通的ddos攻击?防火墙规则,负载均衡这些都能有效防护ddos。
而且 DDOS是群集攻击
这个方法危害太大
是利用服务器通讯协议!!!!
不是纯粹的堵塞服务器网络那么简单
而且 一个玩家在服务器会消耗几十兆内存
小服承受不了多少连接就会挂掉
恐怖!
即使是大服
几台电脑就能模拟几百连接
也承受不了!
494308843 发表于 2014-8-3 08:50
不是DDOS
ddos是洪水攻击
这种方法是利用通讯协议 让服务器对外发包
普通的ddos是攻击tcpip协议本身,你这是从应用层攻击,确实有新意。但是,我读完你的文章发现其基本特征与ddos非常相似,都是短时间建立与取消大量连接迫使服务器忙于处理新连接。Windows防火墙我不清楚,linux防火墙通过设置连接速率和频率能有效防范这种攻击。
eyz1993 发表于 2014-8-3 08:56
普通的ddos是攻击tcpip协议本身,你这是从应用层攻击,确实有新意。但是,我读完你的文章发现其基本特征 ...
不是那种常见的纯粹是流量攻击
那种需要用比服务器更大的网络才能得到攻击效果
而这种 就是四两拨千斤了
494308843 发表于 2014-8-3 09:00
不是那种常见的纯粹是流量攻击
那种需要用比服务器更大的网络才能得到攻击效果
我笑了,ddos移动到应用层,你就分析不出其本质了?
可以试试连接->bungeecord->服务器,看看bungeecord有没做出什么限制
fyxridd 发表于 2014-8-3 09:09
可以试试连接->bungeecord->服务器,看看bungeecord有没做出什么限制
有的,bungeecord不允许同ip短时间反复连接。
LZ大触。顶起!虽然不明觉厉啊,
fyxridd 发表于 2014-8-3 09:09
可以试试连接->bungeecord->服务器,看看bungeecord有没做出什么限制
没空测试
我测试1.6.2 因为是加密的
放弃了 如果我有生成的对应的数据包的源码
就可以测试了
可惜还不会java
那TM不是崩了 是我关服了小**- -
儿子
儿子
我再说一次 后台 没 崩!就是我关服了而已
你没看到co插件的保存数据么 那是关服前的提示

caominjia168 发表于 2014-8-3 08:33
好吧 楼主的话好长 看不懂耶
前排说一下 - -esp 那不是我的服务器崩了 那是我看你在那刷屏我在后台/stop.......然后你又来 就是卡了一下小下而已 不过你还是没有说怎么解决
494308843 发表于 2014-8-3 11:47
- -半夜 1分钟 崩了
睡觉忘了关
我那叫骂你么= =那明个你爸管你叫哥们?
494308843 发表于 2014-8-3 11:56
去死- -
继续作死
- -你要再弄我就跪这不起来了
799371437 发表于 2014-8-3 11:57
- -你要再弄我就跪这不起来了
- -还喊不= =
你们终于研究出对MC的CC攻击了= =
果然只对菜鸟有用
其实水桶可以限制单IP的连接时间
其实水桶可以限制单IP的连接时间
还有这贴~
高防ddos
xhbg888 发表于 2014-8-3 13:35
其实水桶可以限制单IP的连接时间
在僵尸网络面前还是。。鸡肋
不过确实是个好办法
熊孩子没办法用自己的电脑进行高频率的攻击
不过 在 群组服上好像不适用
494308843 发表于 2014-8-3 13:49
在僵尸网络面前还是。。鸡肋
不过确实是个好办法
熊孩子没办法用自己的电脑进行高频率的攻击
限制单IP的下载速度
有些登录插件可以设置/login以后才显示登录信息
实在不行就白名单
应用层方面的
防火墙没什么用
因为没法区分和正常连接的区别
在游戏服务器看来 这些就是正常的上线
只能用规则屏蔽ip
虽然会被攻击一会 但是是最好的方法了。。。{:10_527:}
banIP也可以 不过后台会刷一堆玩家上线信息
banIP后攻击不会对服务器照成太大影响 只是后台被刷 如果换IP因为随机玩家名模拟连接
banIP就起不到作用了 推荐防火墙规则(虽然我不会A.A)
xhbg888 发表于 2014-8-3 13:51
限制单IP的下载速度
有些登录插件可以设置/login以后才显示登录信息
实在不行就白名单 ...
我是模拟连接
你说的/login是登陆服务器
那是进入游戏后提示的
在此之前 攻击目的已经达到了
因为目的不是去登陆 而是模拟玩家上线
占用大量的内存和宽带 影响服务器正常运行
而不是模拟玩家去登陆服务器 移动什么的
对于白名单 可以收集在白名单的玩家名字 然后进行模拟上线
{:10_499:}
{:10_522:}
在一群玩家和模拟连接中间
如何判断哪个是模拟的。。。
我只知道 前面的数据包都是一样的 然后服务器就会等待我发登陆插件登陆指令
然后没登陆 超时了就掉线了
如果判断是否只发送了前2个数据包 然后不发送了 就判断为模拟的
(我不懂防火墙)
那样还不是达到了攻击目的
因为游戏服务端已经接到了数据包啊 认为是正常的玩家上线
而且 即使开启防火墙 可能用这种规矩屏蔽ip的话
容易误判 而且 会消耗很多资源