golang 实现 syn_sent flood洪水攻击

golang 实现 syn_sent 洪水攻击

最近看到一篇文章,一个人写的用python sync攻击,有百分之90的代码都是骗人用的,全是print 什么进度条,原理也不说,实现也不说,含糊不清。今天就我帮朋友攻击一国外游戏私服做实战讲解,注意,本章不会帖任何代码,但读完的人,有socket编程经验和会使用普通工具命令的朋友来说,一定知道我说的是什么,而且自己也能够马上实战写syn_sent洪水攻击。记得点赞收藏,代码有价,思路无价。我甚至不会给你贴图,你要是看睡着了就别看了,真的。

直接正题,我不说太多理论,网络协议七层模型不是摆设,传输层需要在传输数据前进行信号同步,此时状态就为SYN_SENT,前期工作就是找到你需要攻击的IP和端口号,并找到对方是以什么协议传输的,这就是为什么黑客大佬们一直在对你们说基础很重要。

以win10为例,现在开始
1、首先打开某个游戏,然后进入游戏后,打开任务管理器,找到游戏的进程后,右击转到详细信息,这时候你会得到当前有些的PID(比如这个pid数为3476),本次以TCP协议为基准实战讲解
2、之后打开cmd,输入netstat -ano|findstr 3476
通过上一部后,你就会发现第一列是传输协议,第二列是本地ip和端口,第三列是目标ip和端口,第四列是瞬时监听状态,第五列是pid号
3、有了思路,开始写代码进行攻击,我就以golang为例,直接上协程,首先开1W个协程,每个协程用for循环里加go开启后,把值传入进去,利用net包下的TCPAddr来设置本地源端口与IP,然后向net包下函数Dialer中传递超时时间与刚才设置好的ip与端口的地址&,最后端口号根据协程传入的值从5W开始递增。记得每个协程与协程之间可以有随机数的纳秒进行分割休眠,装模做样的以假乱真,设置IP的时候你可以用net包提供的IPv4函数来写byte类型的数字,这样传入进去的IP就没有问题了,记得defer func recover自己捕获一下,然后递归当前函数,记得defer close你废弃的连接
4、好了,上述代码写完,直接开跑;之后打开CMD,先查看一下已经成功没netstat -ano|find “目标ip:目标端口号”,如果看到一大堆,就表明已经攻击了,你会看到大部分监听状态均为syn_sent,非常好,你不需要向他发送任何数据,且不用去接收返回的Body,这样可以节约攻击者的流量,毕竟我们就是为了syn_sent而做出的行为。之后看看有多少数量的攻击 netstat -ano|find “目标ip:目标端口号” /c 基本上会在协程数量下波动,不会太大。

好了,等一会儿,看到你基本上所有的连接大部分都开始超时的时候,你可能会成功,为什么是可能,因为这个私服的防火墙策略我是猜了几次试验好了的,对方是按照传输下,有不规律且高于某个级别的时间间隔的连接才会通行,否则均直接砍掉。一般情况下,如果这1W个协程都打进去了,普通服务器都顶不住,别说1W,1Q普通私服可能都需要想办法了。

这个时候对方已经无响应了,关了你的程序吧,不用怕,基本上没有进程热重启机制的都死了,特别是老游戏,没有心跳检测或者段落检测的,除非人工重启。
最后贴图成果,也希望各位看官能够在我写出来这篇文章后能有更深的认识,能够为中国网络的防御添砖加瓦,感谢各位能看到现在,golang语言真的是新时代的产物,太强大。

golang 实现 syn_sent flood洪水攻击_第1张图片
golang 实现 syn_sent flood洪水攻击_第2张图片
golang 实现 syn_sent flood洪水攻击_第3张图片
golang 实现 syn_sent flood洪水攻击_第4张图片
golang 实现 syn_sent flood洪水攻击_第5张图片

别忘了记得点赞收藏,代码有价,思路无价

你可能感兴趣的:(Golang基本操作,golang,网络安全,网络协议)