前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >浅谈拒绝服务攻击的原理与防御(7):用Python和C实现syn flood攻击

浅谈拒绝服务攻击的原理与防御(7):用Python和C实现syn flood攻击

作者头像
FB客服
发布2018-02-23 18:06:26
2.4K0
发布2018-02-23 18:06:26
举报
文章被收录于专栏:FreeBufFreeBuf

01 前言

以前做DDOS的实验都是用python来编写工具的,开始不会编写结构不会算校验和的时候就用scapy写,后来学会了报文结构开始自己构造各种报文,但是用python写成之后虽然是能实现基本功能,但是性能太差,其不到攻击效果,然后又开始学c语言,用c语言重写了syn flood攻击工具,今天我把python和c的源码都发出来,分享给大家,如果是学习就用python的代码,因为比较方便修改其中的内容,如果是做压力测试的话就用c的代码,性能比较好威力也比较大。话不多说直接上代码了。

02 python攻击代码

环境:ubuntu/kali +python 2.7.11

使用方法如下:mode有三种模式 syn攻击、ack攻击、混合攻击,虽说是支持多线程但是多个线程反而不如单线程快,估计是我的多线程弄得有些问题,麻烦这方面比较懂的朋友帮我指点一下。

我电脑是i7-6700单线程也只能这点速度。cpu1已经使用89%了

看一下抓包情况吧,因为只是测试用我也没带tcp的options字段,报文长度也不够64字节,不过也能传到目的地址。

下面是代码: (阅读原文可直接复制粘贴代码)

03 C语言攻击代码

环境:ubuntu/kali gcc version 6.1.1 20160802 (Debian 6.1.1-11)

使用方法:支持两个参数 目的ip和目的端口

性能:限制发包速度的是带宽(我这是100M的网,除去报文的前导码和帧间隔极限速度差不多就是9m左右了),cpu利用才27%,我在1000Mbps的网速下测试,单线程的话速度能到40m左右,cpu占用率大约85%左右。所以说在这件事上(syn flood)C的性能要好过python10倍以上。

抓包情况:c的攻击代码模拟了真实的chrome发起tcp请求的情况,不仅仅是标准的ip头+tcp头还加上了tcp options字段,mss最大段大小、sack选择确认、window scale 窗口规模因子,大小总共66字节。

C语言代码:我以前没怎么写过c,所以写的比较糟糕,不过凑合还是能用的,各位可以拿去在修改修改,计算校验和的部分是我在网上抄来的,产生随机数的种子srand不能用time(),这样会造成很多报文随机数部分重复(时间精度是秒),我用的是clock(),这是cpu时间随机数每个都不会重复。pstcphdr是tcp的伪首部,只参与计算校验和而不真的发送,代码中用了linux定义好的Ip.h和tcp.h中的结构,这可能是程序比较快的原因之一。

(阅读原文可直接复制粘贴代码)

0×04 结语

还有些注意事项,就是测试的时候不要通过家用路由器(或者一切NAT设备),不然伪造的源地址全都会被替换成真实的,如果你带宽大的话c语言那个攻击代码威力还是很大的,我测试环境下发包30MB/s,能让一台空闲的双路E5+32G 的web服务器拒绝服务,也能让同等配置的DNS服务器拒绝服务(DNS 服务器一般也会开放TCP 53端口)。所以各位不要乱去攻击别人,就测测自己的服务器抗压能力就好了。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-04-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 01 前言
  • 02 python攻击代码
  • 03 C语言攻击代码
  • 0×04 结语
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档