chew-sudo/ddos-launcher
GitHub: chew-sudo/ddos-launcher
一款面向红队训练的 DDoS 攻击演练工具,提供带 Web UI 的可控攻击能力与实时监控。
Stars: 0 | Forks: 0
# DDoS 启动器
一款带有基于浏览器控制面板的红队 DDoS 攻击工具,专为可控的实验室环境设计。用于使用 **Arbor SP / TMS** 或等效平台训练 DDoS 检测与缓解。
## 功能
- **9 种攻击类型**:覆盖第 3、4 和 7 层
- **基于浏览器的 UI**:无需命令行知识即可操作
- **实时统计**:包/秒、Mbps、总包数、错误计数、进度条
- **实时图表**:PPS 和带宽每 500 ms 更新一次
- **攻击预设**:一键配置常见 DDoS 场景
- **攻击历史日志**:每个会话独立记录
- **IP 欺骗**:支持原始套接字攻击(需要 root 权限)
- **速率限制**:通过令牌桶节流器可配置 pps 上限
- **systemd 服务**:在 Ubuntu 24.04 上作为托管后台服务运行
## 攻击类型
| 攻击类型 | 层 | 需要 root | 源 IP 欺骗 | 描述 |
|----------------|------|-----------|--------------------------|---------------------------------------------------|
| UDP 泛洪 | L3/4 | 可选 | UI 开关(默认关闭) | 高流量 UDP 数据包。饱和带宽。 |
| ICMP 泛洪 | L3 | 必须 | 从不 | ICMP 回显请求泛洪(经典 ping 泛洪)。 |
| TCP SYN 泛洪 | L4 | 必须 | **始终**(随机) | 耗尽半开连接表。 |
| TCP ACK 泛洪 | L4 | 必须 | **始终**(随机) | 绕过 SYN-cookie 防御。 |
| HTTP GET 泛洪 | L7 | 不需要 | 从不 | 快速 GET 请求针对 Web 服务器。 |
| HTTP POST 泛洪 | L7 | 不需要 | 从不 | 大型 POST 负载,对服务器造成更高 CPU 影响。 |
| Slowloris | L7 | 不需要 | 从不 | 部分连接耗尽服务器线程池。 |
| DNS 放大攻击 | L3/4 | 必须 | **始终**(受害者 IP) | 伪造受害者 IP;开放解析器泛洪目标。 |
| UDP 放大攻击 | L3/4 | 可选 | UI 开关(默认关闭) | 使用大型放大负载的高带宽 UDP 泛洪。 |
## 要求
- Ubuntu 24.04(攻击机虚拟机)
- Python 3.10+
- root 权限(用于原始套接字攻击)
- 配置为允许伪造传输的虚拟机网卡(用于欺骗攻击)
## 安装
```
# 克隆仓库
git clone https://github.com/chew-sudo/ddos-launcher.git
cd ddos-launcher
# 以 root 身份运行安装脚本
# 这将创建 Python venv,安装依赖项,设置原始套接字功能,注册 systemd 服务,并打开防火墙端口 5000
# 检查更新
sudo bash install.sh
```
验证服务是否正在运行:
```
sudo systemctl status ddos-lab
```
## 用法
打开浏览器并导航至:
```
http://:5000
```
### 基本工作流程
1. 输入 **目标 IP** 和 **端口**
2. 设置 **持续时间**(秒)
3. 从网格中选择 **攻击类型**
4. 调整 **线程数** 和 **数据包大小**(或使用 **预设**)
5. 点击 **启动攻击**
6. 监控实时 PPS 和 Mbps 图表
7. 点击 **停止攻击** 提前终止
### 高级选项
点击 **高级** 访问:
- 速率限制(pps)——0 表示无限制
- HTTP 路径与方法
- 伪造源 IP 开关(需要 root 权限)
- TLS/SSL 开关
### 服务管理
```
sudo systemctl start ddos-lab
sudo systemctl stop ddos-lab
sudo systemctl restart ddos-lab
sudo journalctl -u ddos-lab -f # live logs
```
## 实验室架构
该工具设计为双虚拟机实验室的一部分:
```
[Attack VM] ──────► [Lab Switch/Router] ──────► [Victim VM]
192.168.10.10 │ NetFlow/IPFIX 192.168.20.10
Port 5000 (UI) ▼ Port 8080 (stock site)
[Arbor SP]
│ Divert signal
▼
[Arbor TMS]
(inline scrubbing)
```
配套受害者服务器(FinStock 股价网站)位于本仓库的 `stock-server/` 文件夹中。
## 项目结构
```
ddos-launcher/
├── app.py # Flask web application & API routes
├── install.sh # One-shot install script (venv, systemd, firewall)
├── run.sh # Manual start script
├── requirements.txt # Python dependencies
├── templates/
│ └── index.html # Web UI (Bootstrap 5, Chart.js)
├── attacks/
│ ├── __init__.py
│ ├── base_attack.py # Base class: threading, stats, rate limiting
│ ├── attack_manager.py # Orchestrator: start/stop/status/history
│ ├── udp_flood.py
│ ├── icmp_flood.py
│ ├── tcp_syn_flood.py
│ ├── tcp_ack_flood.py
│ ├── http_flood.py
│ ├── http_post_flood.py
│ ├── slowloris.py
│ └── dns_amplification.py
└── LICENSE
```
## 故障排除
**原始套接字攻击(SYN、ICMP、ACK、DNS)发送 0 个数据包**
→ 工具必须以 root 身份运行。以 root 重新运行 `install.sh` 或使用 `sudo bash run.sh`。
**欺骗攻击无法工作**
→ 在虚拟机管理程序端口组中启用 *伪造传输*(VMware)或在桥接上设置混杂模式(KVM)。
**Slowloris 显示 0 个数据包 / 高错误数**
→ 目标端口必须运行可接受连接的 Web 服务器。确认受害者虚拟机的 Web 服务器正在运行。
**尽管线程数很高但 PPS 非常低**
→ 增加套接字发送缓冲区:`sysctl -w net.core.wmem_max=26214400`。检查网卡类型(使用 VMXNET3 或 virtio)。
## 作者
**Chew Wei Liang**
- 邮箱:weiliang.chew@gmail.com
- GitHub:[@chew-sudo](https://github.com/chew-sudo)
## 许可证
本项目根据 [MIT 许可证](LICENSE) 授权。
## 免责声明
本工具仅提供用于 **教育和授权的安全培训目的**。作者不对因误用导致的任何损害或法律后果负责。在测试任何您不拥有的系统之前,请务必获得书面许可。
标签:Arbor, DDoS, HTTP Flood, ICMP Flood, IP伪造, Mbps, PPS, SEO: DDoS 攻击 训练, SEO: 实验室 DDoS, SEO: 红队 工具, Slowloris, systemd服务, TCP SYN Flood, TMS, UDP Flood, 功能: 历史日志, 功能: 攻击模式预设, 安全测试, 实验室训练, 技术栈: JavaScript, 技术栈: Python, 攻击性安全, 数据包统计, 数据可视化, 数据展示, 根权限, 流量生成, 浏览器UI, 红队, 逆向工具, 防护训练