当前位置: 首页 > article >正文

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

目录

✅ 一、实验环境准备(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攻击。

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

相关文章:

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

目录 ✅ 一、实验环境准备(3 个终端) 👉 所以最终推荐做法: 2️⃣ 配置 seed-attacker 为攻击者,开启 telnet 服务: 3️⃣ 配置 victim-10.9.0.5 为受害者服务器,开启 telnet 客户端并监听&…...

使用 Ansys Fluent 评估金属管道腐蚀

金属管道的维护和完整性在石油和天然气、石化和供水等各个行业中都至关重要。腐蚀对这些管道构成了重大威胁,可能导致泄漏、结构故障和环境危害。Ansys Fluent 提供了一个强大的平台来建模和分析金属管道腐蚀。 腐蚀是一种自然过程,金属材料会因与环境发…...

firefly经典蓝牙和QProcess、QFileSystemWatcher记录

QProcess 默认不会启动一个 shell 来解析命令,而是直接调用操作系统的系统调用来启动外部程序。也就是通过fork一个子线程或者exec一个子进程来执行命令。 QProcess的参数模式 QProcess 需要明确指定命令的可执行文件路径或参数列表。 如果命令是一个可执行文件的路径…...

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

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

Blender配置渲染设置并输出动画

在Blender中,渲染设置和渲染动画的选项位于不同的面板中。以下是具体步骤: 渲染设置 渲染设置用于配置输出格式、分辨率、帧率等参数。 打开右侧的 属性面板(按 N 键可切换显示)。 点击 “输出属性” 选项卡(图标是…...

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

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

C++11 引入了的新特性与实例说明

C11 引入了许多重要的新特性&#xff0c;以下是一些关键特性及其对应的示例代码&#xff0c;用于体现这些特性的用法和优势。 1. 自动类型推导 (auto) auto 关键字允许编译器自动推导变量的类型&#xff0c;简化代码书写。 #include <iostream> #include <vector>…...

二手Mac验机过程

1.1 外观检查 螺丝是否拧过螺丝 1.2 关于本机中 序列号&#xff0c;盒子序列号&#xff0c;机器背部 核对参数 https://checkcoverage.apple.com/coverage 1.3 检查apple ID与查找 1 登出 iCloud、iTunes、FaceTime、iMessage 在 Mac 上打開「訊息」應用程式&#xff0c;從上方…...

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

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

Android 13深度定制:SystemUI状态栏时间居中显示终极实战指南

一、架构设计与技术解析 1. SystemUI状态栏核心布局机制 层级结构 mermaid 复制 graph TDPhoneStatusBarView --> StatusBarContents[status_bar_contents]StatusBarContents --> LeftLayout[status_bar_left_side]StatusBarContents --> ClockLayout[Clock控件]Left…...

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

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

【leetcode hot 100 22】括号生成

解法一&#xff1a;&#xff08;回溯法&#xff09;用两个整数记录左右括号数&#xff0c;以在回溯过程中保证先生成左括号&#xff0c;且左右括号数不能大于n。 class Solution {public List<String> generateParenthesis(int n) {List<String> result new Arra…...

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

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

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

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

PHP PSR(PHP Standards Recommendations)介绍

PHP PSR&#xff08;PHP Standards Recommendations&#xff09;是 PHP 社区制定的一系列标准化规范&#xff0c;旨在统一 PHP 代码的编写方式、接口设计和开发实践&#xff0c;以提高代码的可读性、可维护性和互操作性。以下是核心 PSR 标准的解读和具体使用方法&#xff1a; …...

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

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

F28335进入非法中断ILLEGAL_ISR定位

在非法中断函数中&#xff0c;再调用一个函数接口&#xff0c;比如save_illegal_error()&#xff0c;然后在save_illegal_error中实现如下代码&#xff1a; g_illegal_isr_sp 0;(这个是全局变量&#xff0c;需要先定义 &#xff09; asm( “ MOVW ACC, SP\n” " MOVL …...

PreparedStatement 和 Statement 从 功能、性能、安全性、适用场景 等维度详细对比分析

以下是 PreparedStatement 和 Statement 的对比分析&#xff0c;从 功能、性能、安全性、适用场景 等维度详细说明&#xff1a; 1. 核心区别 特性PreparedStatementStatement定义预编译的 SQL 语句&#xff0c;支持参数化查询执行静态 SQL 语句&#xff0c;不支持参数占位符安…...

VLAN综合实验报告

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

使用 Docker 部署 mysql 应用

使用 Docker 部署 环境搭建 Docker 安装文档 创建容器 在系统任意位置创建一个文件夹&#xff08;可选&#xff09; mkdir -p /opt/docker/mysql && cd /opt/docker/mysqlmkdir ./{conf,data,logs}搜索 & 拉取镜像 docker search mysql docker pull mysql:5.6启…...

美团Leaf分布式ID实战:深入解析雪花算法原理与应用

&#x1f4d6; 前言 在分布式系统中&#xff0c;全局唯一ID生成是保证数据一致性的核心技术之一。传统方案&#xff08;如数据库自增ID、UUID&#xff09;存在性能瓶颈或无序性问题&#xff0c;而美团开源的Leaf框架提供了高可用、高性能的分布式ID解决方案。本文重点解析Leaf…...

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

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

【人工智能】LM Studio 的 GPU 加速:释放大模型推理潜能的极致优化

《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 随着大语言模型(LLM)的广泛应用,其推理效率成为限制性能的关键瓶颈。LM Studio 作为一个轻量级机器学习框架,通过 GPU 加速显著提升了大…...

S32K144入门笔记(十七):PDB的API函数解读

文章目录 1. SDK中的函数2. API函数的释义 1. SDK中的函数 在SDK中并没有转为PDB设置专门的PAL驱动&#xff0c;在基本的DRIVER库中一共有21个API函数&#xff0c;本文将解读这些函数的功能。 2. API函数的释义 void PDB_DRV_Init(const uint32_t instance,const pdb_timer_…...

3.5 平滑滤波

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

自动化测试框架pytest+requests+allure

Pytest requests Allure 这个框架基于python的的 Pytest 进行测试执行&#xff0c;并结合 Allure插件 生成测试报告的测试框架。采用 关键字驱动 方式&#xff0c;使测试用例更加清晰、模块化&#xff0c;同时支持 YAML 文件来管理测试用例&#xff0c;方便维护和扩展。 测试…...

Sympy入门之微积分基本运算

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

Qemu-STM32(十):STM32F103开篇

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

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

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

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

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