目录
[✅ 一、实验环境准备(3 个终端)](#✅ 一、实验环境准备(3 个终端))
[👉 所以最终推荐做法:](#👉 所以最终推荐做法:)
[2️⃣ 配置 seed-attacker 为攻击者,开启 telnet 服务:](#2️⃣ 配置 seed-attacker 为攻击者,开启 telnet 服务:)
[3️⃣ 配置 victim-10.9.0.5 为受害者服务器,开启 telnet 客户端并监听:](#3️⃣ 配置 victim-10.9.0.5 为受害者服务器,开启 telnet 客户端并监听:)
[4️⃣ user1 作为观察用户,连接 victim-10.9.0.5 服务器:](#4️⃣ user1 作为观察用户,连接 victim-10.9.0.5 服务器:)
[5️⃣ 使用 netwox 工具对 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目录打开终端构建容器
防止构建新容器冲突先把以前下载旧的容器关掉小技巧(以后你每次可以这么操作):
执行:
java
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
如果你想删掉容器
cs
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
命令来进入并获取最高权限。使用以下命令:
cs
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
服务:
cpp
# 更新系统
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
客户端并监听:
cs
# 更新系统
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
:
cs
# 使用 telnet 连接到 victim 服务器(假设 IP 为 10.9.0.5)
telnet 10.9.0.5
用户退出tlenet

5️⃣ 使用 netwox
工具对 victim-10.9.0.5
进行拒绝服务攻击:
在 seed-attacker
容器中,使用 netwox
工具进行拒绝服务攻击,命令如下:
cs
# 安装 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 服务端

好了,已经无法服务

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

关闭攻击流量下降

👉完整流程总结:
- 进入所有三个终端并获取
--privileged
权限。 - 在
seed-attacker
上启动telnet
服务,作为攻击者。 - 在
victim-10.9.0.5
上启动telnet
客户端并监听,作为受害者。 - 在
user1-10.9.0.6
上连接到victim-10.9.0.5
以观察。 - 使用
netwox
工具从seed-attacker
发起拒绝服务攻击。
👉SYN-Flooding 防御
1. 检查当前是否启用 SYN Cookie
首先,你需要登录到 victim-10.9.0.5
这个机器,然后检查当前系统是否启用了 SYN Cookie 机制。你可以使用以下命令:
cs
sysctl -a | grep cookie
这将显示系统是否有关于 SYN Cookie 的设置。如果没有输出,说明默认设置没有显示 SYN Cookie。
2. 启用 SYN Cookie 机制
为了防止 SYN Flooding 攻击,首先需要开启 SYN Cookie。通过以下命令启用 SYN Cookie :
cs
sysctl net.ipv4.tcp_syncookies=1
这将开启 SYN Cookie 机制,用于防御 SYN Flooding 攻击。
3. 验证 SYN Cookie 是否成功启用
启用 SYN Cookie 后,你可以再次运行以下命令,验证它是否生效:
cs
sysctl -a | grep cookie
如果设置正确,应该能看到 net.ipv4.tcp_syncookies = 1
。
4. 再次发起 SYN Flooding 攻击
在另外一个容器( seed-attacker
)上,再次使用 netwox
工具发起 SYN Flooding 攻击:
cs
netwox 76 -i victim-ip -p 23
这里,victim-ip
是 victim-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:
cs
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攻击。
细一个的话,三次握手的过程,自己去看。