vflame6/bruter
GitHub: vflame6/bruter
用 Go 编写的高并发网络服务暴力破解工具,支持 36 种协议并可直接导入 Nmap/Nessus 扫描结果进行凭证测试。
Stars: 4 | Forks: 3
bruter
主动网络服务暴力破解工具。
由 Maksim Radaev/[@vflame6](https://github.com/vflame6) 创建
`bruter` 是一个用 Go 编写的快速、并发网络服务暴力破解工具。它支持 36 种协议、扫描文件自动检测以及灵活的字典选项 —— 专为需要大规模可靠凭证测试的渗透测试人员打造。
## 特性

- **36 个模块** — SSH、RDP 相关、数据库、邮件、Web 等
- **扫描文件自动检测** — 直接输入 nmap (GNMAP/XML)、Nessus 或 Nexpose 输出
- **内置默认字典** — 使用 `--defaults` 选项包含 17 个用户名 + 200 个密码
- **组合字典** — 使用 `--combo` 选项支持 `user:pass` 格式
- **并行执行** — 可配置的单主机线程数和并发主机数
- **智能探测** — 自动检测 TLS 并在暴力破解前测试默认凭证
- **SOCKS5 代理支持** — 支持可选的代理认证
- **接口绑定** — 使用 `-I` 绑定到特定的网络接口
- **成功即停止** — 单主机 (`-f`) 或全局 (`-F`)
- **JSONL 输出** — 使用 `-j` 输出机器可读的结果
- **实时进度** — 带有速度、预计剩余时间和成功计数的实时状态行
### 可用模块
| 类别 | 模块 |
|----------|---------|
| **Remote Access** | `ssh`, `sshkey`, `rdp`, `winrm`, `telnet`, `rexec`, `rlogin`, `rsh`, `vnc` |
| **Databases** | `mysql`, `mssql`, `postgres`, `mongo`, `redis`, `clickhouse`, `etcd` |
| **Mail** | `smtp`, `imap`, `pop3` |
| **Web / HTTP** | `http-basic`, `vault` |
| **Directory** | `ldap`, `ldaps` |
| **File Sharing** | `ftp`, `smb` |
| **Messaging** | `irc`, `xmpp`, `smpp`, `amqp` |
| **Network** | `socks5`, `snmp`, `rtsp` |
| **VoIP** | `asterisk`, `teamspeak` |
| **Cisco** | `cisco`, `cisco-enable` |
| **Other** | `cobaltstrike` |
## 安装
`bruter` 需要 **Go 1.25+** 才能成功安装。
```
go install -v github.com/vflame6/bruter@latest
```
预编译的二进制文件可在 [Releases](https://github.com/vflame6/bruter/releases) 页面获取。
从源码构建:
```
git clone https://github.com/vflame6/bruter.git
cd bruter
go build -o bruter main.go
```
使用 Docker 构建:
```
docker build -t bruter .
docker run --rm bruter ssh -t 10.0.0.1 -u admin -p passwords.txt
```
## 用法
```
bruter [flags]
[module-flags]
```
### 快速示例
**使用密码列表暴力破解 SSH:**
```
bruter ssh -t 192.168.1.10 -u root -p /usr/share/wordlists/passwords.txt
```
**从文件中读取多个目标:**
```
bruter ssh -t targets.txt -u users.txt -p passwords.txt -C 50 -c 5
```
**使用内置默认字典:**
```
bruter mysql -t 10.0.0.5:3306 --defaults
```
**从 nmap 扫描自动检测:**
```
nmap -sV -oG scan.gnmap 10.0.0.0/24
bruter all -n scan.gnmap --defaults
```
**从 Nessus/Nexpose 自动检测:**
```
bruter all -n scan.nessus -u admin -p passwords.txt
bruter all -n nexpose-report.xml --defaults
```
**组合字典(user:pass 对):**
```
bruter ssh -t 10.0.0.1 --combo creds.txt
```
**JSONL 输出用于管道传输:**
```
bruter ftp -t targets.txt --defaults -j | jq '.host'
```
**在单主机首次成功后停止,并保存结果:**
```
bruter smb -t targets.txt -u users.txt -p passwords.txt -f -o results.txt
```
**通过 SOCKS5 代理:**
```
bruter ssh -t 10.0.0.1 -u root -p passwords.txt --proxy 127.0.0.1:1080
```
**绑定到特定接口:**
```
bruter ssh -t 10.0.0.1 -u root -p passwords.txt -I eth0
```
### 完整参数参考
```
Flags:
-t, --target=TARGET Target host or file (format: host or host:port)
-n, --nmap=NMAP Scan file (nmap GNMAP/XML, Nessus, Nexpose — auto-detected)
-u, --username=USERNAME Username or file with usernames
-p, --password=PASSWORD Password or file with passwords
--combo=COMBO Combo wordlist (user:pass per line)
--defaults Use built-in default wordlists
-C, --concurrent-hosts=32 Parallel targets
-c, --concurrent-threads=10 Threads per target
-d, --delay=0s Delay between attempts (forces single thread)
--timeout=5s Connection timeout
-f, --stop-on-success Stop current host on first valid creds
-F, --stop-on-success-global Stop entire run on first valid creds
--max-retries=30 Connection errors before skipping host (0=disable)
--proxy=IP:PORT SOCKS5 proxy
--proxy-auth=user:pass Proxy credentials
-I, --iface=IFACE Bind to network interface
--user-agent=UA User-Agent for HTTP modules
-q, --quiet Print results only
-D, --debug Debug logging
-v, --verbose Log every attempt
-j, --json JSONL output
-o, --output=FILE Write results to file
```
### 目标格式
目标使用 `host` 或 `host:port` 格式。如果省略端口,则使用模块默认值。
```
192.168.0.11
192.168.0.12:2222
10.0.0.0/24
```
## 贡献
欢迎贡献!随时欢迎提交 issue 或 pull request。非常感谢新模块想法、bug 报告和功能请求。标签:DOS头擦除, EVTX分析, EVTX分析, Go语言, PoC, RDP, SOCKS5代理, VEH, 凭据验证, 协议分析, 字典攻击, 密码审计, 密码破解, 并发扫描, 日志审计, 暴力破解, 权限提升, 用户模式钩子绕过, 程序破解, 网络安全, 网络服务, 请求拦截, 远程访问, 隐私保护