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工具, 拒绝服务攻击, 文档结构分析, 日志审计, 网络压力测试, 配置错误