新人学习,如有错误请见谅和指正。如果大家参考,请多找资料和实验进行比对研究。谢谢

iphdr->tot_len

总长度字段(16位)是指整个IP数据报的长度,以字节为单位。利用首部长度字段和总长度字段,就可以知道 IP数据报中数据内容的起始位置和长度。由于该字段长16比特,所以IP数据报最长可达65535字节
总长度字段是IP首部中必要的内容,因为一些数据链路(如以太网)需要填充一些数据以达到最小长度。尽管以太网的最小帧长为46字节,但是IP数据可能会更短。如果没有总长度字段,那么IP层就不知道46字节中有多少是IP数据报的内容。

tcphdr->doff
TCP头长度,指明了在TCP头部包含多少个32位的字。此信息是必须的,因为options域的长度是可变的,所以整个TCP头部的长度也是变化的。从技术上讲,这个域实际上指明了数据部分在段内部的其起始地址(以32位字作为单位进行计量),因为这个数值正好是按字为单位的TCP头部的长度,所以,二者的效果是等同的

由这两个参数来规定tcp内数据包的大小?但是以太网的填充字段(Padding)怎么办。

TCP数据包的大小是很大的,但是如果超过MTU就需要分片发送数据包。所以在syn攻击里应尽可能采用单包发送,提高效率。【详见附1】

test1:
操作:修改ip.tot_len字段(加20)并且给发送的总包加上相应字段内存
结果:失败了,收到数据包大小为74(54+20),尾部的填充6Byte不见了,并且协议解析为NBSS
【通过搜索相关知识,了解到eth.padding的6Byte是以太网的填充字段,为了让数据包对齐32bits进行传输】
【通过相关查询,了解到NBSS是139端口(我攻击的端口)提供的共享打印机服务,那是不是我换个端口就好了?】

test2:
操作:./awl -i 192.168.45.1 -p 1399 -I 192.168.45.129 -t 20【自己改的syn攻击程序,-i是对方ip,-I是自己ip,-p是对方端口,其他未设定参数(mac、port)默认采用随机】
结果:成功了,收到数据包大小为74,Data字段为0填充。看来这个真的是跟端口有关系呢。。

test3:
操作:./awl -i 192.168.45.1 -p 8080 -I 192.168.45.129 -m 00:50:56:c0:00:08 -n 1【打开了主机的apache,端口8080开启,指定对象的mac和随机的源ip位】
结果:成功造成攻击,服务器收到syn后进行arp请求查找源ip的mac地址,保持SYN_RECEIVE状态(回复syn+ack后由于对方主机的响应端口并没有开启的程序,收到ICMP的回执并继续进行重试),如下图。当停止攻击后,保持的状态迅速被删掉。(增加包大小成功)
图示:

test4:
操作:同3,把数据包降为无data的包,并且随机4个ip进行攻击
结果:apache死掉了。。所以我也不知道速度,需要重启一下- -不过参见以前的记录,六个进程同时开启情况下有64Kpackages/s,在单包60Byte情况下占用带宽30Mbits/s

【附1:MTU大小】
以太网EthernetII最大的数据帧是1518Bytes,刨去以太网帧的帧头14Bytes和帧尾CRC校验部分4Bytes,那么剩下承载上层协议的Data域最大就只有1500Bytes,这个值我们就把它称之为MTU。

UDP 包的大小就应该是 1500 - IP头(20) - UDP头(8) = 1472(BYTES)
TCP 包的大小就应该是 1500 - IP头(20) - TCP头(20) = 1460 (BYTES)

当发送包大小大于MTU时,就会再ip层做分包处理。如果使用UDP协议,当IP层组包发生错误,那么包就会被丢弃。接收方无法重组数据报,将导致丢弃整个IP数据报。UDP不保证可靠传输;但是TCP发生组包错误时,该包会被重传,保证可靠传输。

第一篇,怎么增加SYN数据包的大小(syn flood攻击实验)相关推荐

  1. 负载均衡原理与实践详解 第五篇 负载均衡时数据包流程详解

    负载均衡原理与实践详解 第五篇 负载均衡时数据包流程详解 系列文章: 负载均衡详解第一篇:负载均衡的需求 负载均衡详解第二篇:服务器负载均衡的基本概念-网络基础 负载均衡详解第三篇:服务器负载均衡的基 ...

  2. Python之SYN数据包探测端口

    本篇文章叙述的是运用TCP里面的SYN来探测端口是否开放,如果开放则返回一个SYN+ACK包,是非常实用的小程序,因为在信息收集中,几乎都是需要探测端口号,之后便可以对该端口做些不可描述的事情. 代码 ...

  3. 第一篇Markdown博客---数据中心光互连

    光互连调研学习笔记 云计算的发展对数据中心网络架构提出了严格的要求,传统电互连网络架构难以在带宽.开销.能耗.管理复杂度等方面同时满足云应用的要求.为了应对这种网络负载,大型数据中心需要成千上万的服务 ...

  4. JAVA+网络数据包的抓取与分析实验

    一.实验目的 熟悉TC P/IP数据包的结构. 掌握Wireshark的使用方法. 能够利用JNet Pcap编程实现数据包的抓取与分析. 二.实验准备 1.通过抓包,可以进行网络故障分析.流量监控. ...

  5. TCP,UDP数据包的大小以及MTU

    TCP.UDP数据包大小的确定 UDP和TCP协议利用端口号实现多项应用同时发送和接收数据.数据通过源端口发送出去,通过目标端口接收.有的网络应用只能使用预留或注册的静态端口:而另外一些网络应用则可以 ...

  6. 关于fi dd ler 手机抓包 网卡地址地址_一篇不错的网络数据抓包

    一,网络抓包 Android 手机抓包  adb shell tcpdump -p -vv -s 0 -w /sdcard/capture.pcap adb pull /sdcard/capture. ...

  7. 一篇不错的网络数据抓包

    一,网络抓包 Android 手机抓包  adb shell tcpdump -p -vv -s 0 -w /sdcard/capture.pcap adb pull /sdcard/capture. ...

  8. A7139 无线通信驱动(STM32) 增加FIFO扩展模式,可以发送超大数据包

    A7139 拥有电磁波唤醒以及10mW的发射功率,非常容易实现长距离通信,目前测试有障碍物可以轻松达到300m以上. 通过几天的调试,目前可以发送任意大小的数据包,大小为1-16KB,全部使用中断收发 ...

  9. 抓包分析以太网帧和IP数据包,头部那么多东东用来干啥的,扫盲篇

    目录 抓包过程 以太网帧(也叫MAC帧)首部分析 IP数据包首部分析 抓包过程 使用了 Wireshark 进行抓包,用两个最常用的 curl 和 ping 命令来演示抓包情况,开启抓包. ## 先访 ...

最新文章

  1. 设计模式:状态模式(State Pattern)
  2. Silverlight 3发布新版3.0.50106.0
  3. T extends Serializable这是什么意思呢?看明白这个,你的问题就自然而然的明白了!...
  4. 创建虚拟环境 安装pytorch 0.3.1
  5. 苹果android 对比,苹果安卓旗舰差距有多少?看了这份对比,果粉傻眼了
  6. 面试官系统精讲Java源码及大厂真题 - 26 惊叹面试官:由浅入深手写队列
  7. MyCat分布式数据库集群架构工作笔记0024---高可用_单表存储千万级_海量存储_分表扩展_按照日期分片
  8. python多维列表索引越界怎么处理_Python中remove漏删和索引越界问题的解决
  9. Oracle10g expdp impdp
  10. python清空屏幕代码_python代码怎样清屏
  11. 用计算机知道手机号码,知道手机号怎么整贱人-原来微信的“+”号还有这些隐藏用法?居然可以一键检测真假好友...
  12. 浅谈数据监控数据分析
  13. 信息课为什么不叫计算机课,让信息技术课“美”起来
  14. 数据库第九章习题作业
  15. 【时间序列】ICML 2020 时间序列相关论文总结(附原文源码)
  16. fzu 1891 升降序列
  17. 神经网络低比特量化——LSQ
  18. Aop切面编程原理和Spring实现
  19. cadence基本操作
  20. 环信 php后台集成,集成环信IM功能

热门文章

  1. How to get admin priviledge in Vista using ziguang holes
  2. 租房合同中维修费需要谁出呢
  3. Redis 部署方式(单点、master/slaver、sentinel、cluster) 概念与区别
  4. 软件测试工程师面试题汇总
  5. jBox----弹出层插件
  6. 猴子分桃子,递归算法简练通俗易懂
  7. dataframe横向和纵向拼接
  8. ASUS AC88U 路由器开机自启方法
  9. Asuswrt RT-AC68U 华硕路由器文件删除漏洞 栈溢出
  10. 三个数中寻找最大值的5种方法-C语言实现