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, 红队, 逆向工具, 防护训练