darkweak/rudy

GitHub: darkweak/rudy

RUDY 是一个基于 Go 的慢速拒绝服务攻击测试工具,通过延迟发送 HTTP POST 请求体来耗尽目标服务器连接资源。

Stars: 120 | Forks: 36

# RUDY (R-U-Dead-Yet?) ## 什么是 RUDY 攻击? R.U.D.Y. 是 R U Dead yet 的缩写,是一个用于描述拒绝服务 (Denial of Service, DoS) 工具的缩写,黑客利用该工具通过向目标服务器发送超长的表单字段来执行慢速(又称“低速慢速”)攻击。众所周知,它具有交互式控制台,因此是一款用户友好的工具。它会与目标网站建立较少的连接,并尽可能长时间地保持会话开启。大量的开放会话会使服务器或网站不堪重负,导致其无法为合法访问者提供服务。数据以极慢的速度分小包发送;通常每个字节之间有 10 秒的间隔,但这些间隔并不是固定的,可能会发生变化以避免被检测到。 此类攻击的受害服务器可能会面临无法访问特定网站、连接中断、网络性能急剧下降等问题。 本项目仅供教育、测试和研究目的使用。 RUDY 攻击会向 HTTP 服务器打开并发的 POST HTTP 连接,并延迟发送 POST 请求的 body,直到服务器资源饱和。这种攻击以非常慢的速度发送大量小数据包,以保持连接打开并让服务器忙碌。与异常增加流量的泛洪 DoS 攻击相比,这种低速慢速的攻击行为使其相对难以被检测到。 ## 如何安装和运行 rudy? ### 使用 `go install` ``` go install github.com/darkweak/rudy/cmd/rudy@latest rudy [command] ``` ### 直接使用 `go` ``` git clone https://github.com/darkweak/rudy cd rudy go run rudy.go [command] ``` ### 使用 `go build` ``` git clone https://github.com/darkweak/rudy cd rudy go build -o rudy rudy.go rudy [command] ``` ## 命令 ### 攻击目标 ``` rudy run -u http://domain.com ``` 有一些选项可以更改 rudy 的默认行为 | 名称 | 描述 | 完整参数 | 简短参数 | 示例值 | 默认值 | |:--------------------|:-------------------------------------------------------------------------|:-----------------|:-----------|:---------------------------------|:--------------| | URL | 运行攻击的目标 URL。 | `--url` | `-u` | `http://domain.com` | | | 并发请求 | 在目标上发送的并发请求数。 | `--concurrents` | `-c` | `4` | `1` | | 文件路径 | 要发送的 payload 的文件路径。默认情况下是随机 payload (1MB)。 | `--filepath` | `-f` | `/somewhere/file` | | | 间隔 | 请求之间的间隔时间。 | `--interval` | `-i` | `3s` | `10s` | | 大小 | 要发送的随机 payload 大小。在未提供文件路径时使用。 | `--payload-size` | `-p` | `1GB` | `1MB` | | Tor | 使用 TOR 代理发送请求。 | `--tor` | `-t` | `socks5://tor_endpoint` | | | Header | 向请求传递额外的 header,可以传递多个 header。 | `--header` | `-h` | `Content-Type: application/json` | | | 方法 | 设置请求的 HTTP 方法。 | `--method` | `-m` | `PATCH` | | ## 配置文件 你可以定义一个 `.rudy.yml` 文件来静态配置选项,然后使用 CLI 参数覆盖它。 ``` concurrents: 4 filepath: /tmp/path/to/payload-file interval: 10s payload-size: 1MB tor: socks5://tor_endpoint method: PATCH headers: - ContentType:application/json - Accept:text/html url: http://domain.com ``` ### 运行测试服务器 它将在端口 `:8081` 上启动一个服务器 ``` rudy server ```
标签:DoS, EVTX分析, Go, Ruby工具, 拒绝服务攻击, 文档结构分析, 日志审计, 网络压力测试, 配置错误