syn flood 攻击 c 语言源代码,利用Python和C实现syn flood攻击

python  python  python  python  python  python  python  python  python俗话说,知己知彼,百战不殆。学习攻击代码的编写逻辑,反向实现防攻是每一个运维工程师所要学习的。

了解SYN/ACK Flood 攻击这种攻击方法是经典最有效的 DDOS 方法, 可通杀各种系统的网络服务, 主要是通过向受害主机发送大量伪造源 IP 和源端口的 SYN 或 ACK 包,导致主机的缓存资源被耗尽或忙于发送回应包而造成拒绝服务, 由于源都是伪造的故追踪起来比较困难, 缺点是实施起来有一定难度, 需要高带宽的僵尸主机支持。 少量的这种攻击会导致主机服务器无法访问, 但却可以 Ping 的通, 在服务器上用 Netstat -na 命令会观察到存在大量的 SYN_RECEIVED 状态,大量的这种攻击会导致 Ping 失败、TCP/IP 栈失效,并会出现系统凝固现象,即不响应键盘和鼠标。普通防火墙大多无法抵御此种攻击。HOSTSPACE 把python和c的源码都发出来,如果是学习就用python的代码,更方便修改其中的内容,如果是做压力测试的话就用c的代码,性能比较好威力也比较大。

python攻击代码环境:ubuntu/kali +python 2.7.11

使用方法如下:mode有三种模式 syn攻击、ack攻击、混合攻击,多个线程反而不如单线程快。

8c960984fdfd577ebd5f0c8fb71330d8.png

i7-6700单线程的速度下。cpu1已经使用89%了

8947b68bd167c0d0453e12124bd87b43.png

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

eb5911518838442f0686bd200361ce22.png

下面是代码:

e8de67dfb293b938fe6adc06c6b81363.png

a4e2d0d323320bdda2f0316a2af9748f.png

27028232f37773e2ec5a4c816d35109a.png

db14b6322a19d9eaab21b15664573061.png

7fefba76bca9382fa9a499c8d3a4f20b.png

C语言攻击代码环境:ubuntu/kali gcc version 6.1.1 20160802 (Debian 6.1.1-11)

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

6cd56aae1a7da599ff5ae4e016219592.png

性能:限制发包速度的是带宽(我这是100M的网,除去报文的前导码和帧间隔极限速度差不多就是9m左右了),

cpu利用才27%,我在1000Mbps的网速下测试,单线程的话速度能到40m左右,cpu占用率大约85%左右。

所以说在这件事上(syn flood)C的性能要好过python10倍上。

cbae4c4f1501ba5ef1263a050f3f5ba3.png

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

31b72024b0eb72dc6579bf1154275a04.png

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

d6e1d9eb82c07547d0d445108c1a0e7b.png

58efe3f541667939e8ae528604aaa7ad.png

717391787b1662c24d035ee22257eda1.png

3b3812b596e4b6942d0b08305bde2643.png

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

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值