返回更新列表
新发布Jul 25, 2026

brutus v1.10.0

快速、零依赖的凭据测试工具,使用Go语言编写。支持SSH、MySQL、PostgreSQL、Redis、MongoDB、SMB等20多种协议的暴力破解。Hydra的替代品,并原生集成nerva/naabu管道。

分享
Brutus - Social

Brutus

"Et tu, Brute?" —— 凭证沦陷前的最后遗言。

纯Go编写的现代凭证测试工具

安装 • 快速开始 • 流水线 • 协议 • 枚举 • 代理 • 库


概述

Brutus 是一个多协议认证测试工具,旨在解决攻击性安全工具中的一个关键缺口:跨多种网络服务的高效凭证验证。虽然专注于HTTP的工具比比皆是,但渗透测试人员和红队操作员经常会遇到数据库、SSH、SMB 以及其他需要专门认证测试能力的网络服务。

Brutus 使用 Go 构建为单个二进制文件,零外部依赖,能够与 Nerva 无缝集成以实现自动化服务发现,使操作员能够快速识别并测试整个网络范围内的身份验证向量。

主要功能:

  • 零依赖: 单一二进制文件,跨平台(Linux、Windows、macOS)
  • 27种协议: SSH、RDP、MySQL、PostgreSQL、MSSQL、Oracle、Redis、SMB、LDAP、WinRM、SNMP、HTTP Basic Auth 以及更多
  • SOCKS5代理支持: 通过 --proxy 将所有流量路由至 SOCKS5 代理
  • 侵略性模式: --mode cautious|default|aggressive 用于调整覆盖率与安全性之间的平衡
  • 流水线集成: 原生支持 Nerva、naabu、nmap 和 masscan 工作流
  • 内置不良密钥: 内置已知 SSH 密钥集合(Vagrant、F5、ExaGrid 等)
  • 账户枚举: 账户存在性 oracle 枚举、Kerberos 用户枚举、电子邮件生成、Microsoft Teams/Entra ID 设备代码认证
  • Go库: 直接导入到您的安全自动化工具中
  • 生产就绪: 速率限制、连接池和全面的错误处理

为什么选择 Brutus?

传统工具(如 THC Hydra)为安全社区做出了良好贡献,但它们带来了显著的摩擦:复杂的依赖链、特定平台的编译问题,以及与现代侦察工作流的缺乏原生集成。

Brutus 专为现代进攻性安全而设计:

  • 真正的零依赖部署: 下载单个二进制文件即可运行。无需 libssh-dev、无需 libmysqlclient-dev、无需编译错误。在 Linux、macOS 和 Windows 上运行一致。

  • 原生流水线集成: Brutus 使用 JSON 并与 Nerva、naabu、nmap 和 masscan 直接集成。将发现的服务直接输入凭证测试,无需格式转换或脚本。

  • 嵌入式智能: 已知的 SSH 不良密钥(Vagrant、F5 BIG-IP、ExaGrid 等)已编译到二进制文件中。使用 brutus badkeys 来针对 SSH 目标进行测试。

  • 以库为先的设计: 将 Brutus 直接导入您的 Go 安全工具。构建自定义自动化,无需调用外部进程。```bash

Full network credential audit in one pipeline (JSON mode)

naabu -host 10.0.0.0/24 -p 22,3306,5432,6379 -silent | nerva --json | brutus creds --json

Or use Nerva's default URI output — no --json flags needed

naabu -host 10.0.0.0/24 -p 22,3306,5432,6379 -silent | nerva | brutus creds

---

## 使用场景

### 渗透测试
- 在内部评估期间,验证跨多个服务发现的凭证
- 测试数据库和文件共享服务中的密码重用模式
- 识别新部署基础设施上的默认凭证

### 红队行动
- 密码泄露或钓鱼活动后快速验证凭证
- 测试跨网络服务的横向移动机会
- 验证异构环境中泄露的凭证

### 私钥喷射

在受损系统上找到私钥?在网络中喷射它,以找到它还能在哪些地方授予访问权限:```bash
# Discover SSH services and spray a found private key
naabu -host 10.0.0.0/24 -p 22 -silent | \
  nerva --json | \
  brutus creds -u root,admin,ubuntu,deploy -k /path/to/found_key --json

该管道发现所有SSH服务,用Nerva识别它们,并针对常见用户名测试泄露的密钥——从而在几秒内揭示横向移动机会。

Web管理面板测试

发现HTTP服务,并使用AI驱动的检测或手动凭据列表测试凭据:```bash

AI-powered: auto-detect devices and suggest default credentials

naabu -host 10.0.0.0/24 -p 80,443,3000,8080,9090 -silent |
nerva --json |
brutus web --experimental-ai --json

Manual: test specific credentials against web panels

naabu -host 10.0.0.0/24 -p 80,443,8080 -silent |
nerva --json |
brutus web -c "admin:admin,root:password" --json

Default wordlist: test common credentials without AI or -c

naabu -host 10.0.0.0/24 -p 80,443,8080 -silent |
nerva --json |
brutus web --json

### 安全验证
- 测试新部署服务上的默认凭据
- 验证跨平台的密码策略执行
- 生成审计追踪以用于合规性和安全评估

---

## 安装

### 预构建二进制文件(推荐)

从 [GitHub Releases](https://github.com/praetorian-inc/brutus/releases) 下载:```bash
# Linux (amd64)
curl -L https://github.com/praetorian-inc/brutus/releases/latest/download/brutus-linux-amd64.tar.gz | tar xz
sudo mv brutus /usr/local/bin/

# macOS (Apple Silicon)
curl -L https://github.com/praetorian-inc/brutus/releases/latest/download/brutus-darwin-arm64.tar.gz | tar xz
sudo mv brutus /usr/local/bin/

# macOS (Intel)
curl -L https://github.com/praetorian-inc/brutus/releases/latest/download/brutus-darwin-amd64.tar.gz | tar xz
sudo mv brutus /usr/local/bin/

(无输入,输出空)```powershell

Windows (PowerShell)

Invoke-WebRequest -Uri https://github.com/praetorian-inc/brutus/releases/latest/download/brutus-windows-amd64.zip -OutFile brutus.zip Expand-Archive -Path brutus.zip -DestinationPath . Remove-Item brutus.zip

### 使用 Go 安装```bash
go install github.com/praetorian-inc/brutus/cmd/brutus@latest

快速开始

子命令

Brutus 将其功能组织成六个专注的子命令:```bash brutus creds # Non-HTTP credential auditing (SSH, databases, SMB, etc.) brutus web # HTTP/web panel auditing (Basic Auth, form login, AI-powered) brutus snmp # SNMP community string testing brutus badkeys # Known weak/compromised SSH key testing brutus logon # Windows logon-screen backdoor detection (sticky keys, utilman) brutus enum # Account enumeration (account-existence oracles, Kerberos, Teams auth, email generation)

每个子命令都有用于发现性的别名:

| 子命令 | 别名 |
|------------|---------|
| `creds` | `services`, `defaults`, `credentials` |
| `web` | `http`, `panels` |
| `snmp` | `community` |
| `badkeys` | `keys`, `ssh-keys`, `badkey` |
| `logon` | `stickykeys`, `sticky-keys`, `utilman`, `sethc`, `winlogon`, `accessibility` |
| `enum` | *(无)* |```bash
# Test SSH credentials
brutus creds --target 192.168.1.100:22 --protocol ssh -u root -p toor

# Test HTTP web panel with AI credential detection
brutus web --target 192.168.1.1:80 --experimental-ai

# Test HTTP web panel with manual credentials
brutus web --target 192.168.1.1:80 -c "admin:admin,root:toor"

# Test SNMP community strings
brutus snmp --target 192.168.1.1:161 --mode aggressive

# Detect Windows logon-screen backdoors
brutus logon --target 10.0.0.50:3389

# Pipeline mode: creds skips HTTP/SNMP, web skips non-HTTP, snmp skips non-SNMP
naabu -host 10.0.0.0/24 -silent | nerva --json | brutus creds -P passwords.txt
naabu -host 10.0.0.0/24 -p 80,443,8080 -silent | nerva --json | brutus web --experimental-ai
naabu -host 10.0.0.0/24 -p 161 -silent | nerva --json | brutus snmp --mode aggressive

基本用法```bash

Test SSH with default credentials

brutus creds --target 192.168.1.100:22 --protocol ssh

Test with specific credentials

brutus creds --target 192.168.1.100:22 --protocol ssh -u root -p toor

Test with username and password lists

brutus creds --target 192.168.1.100:22 --protocol ssh -U users.txt -P passwords.txt

Test MySQL database

brutus creds --target 192.168.1.100:3306 --protocol mysql -u root -p password

Test SSH with a specific private key

brutus creds --target 192.168.1.100:22 --protocol ssh -u deploy -k /path/to/id_rsa

Increase threads for faster testing

brutus creds --target 192.168.1.100:22 --protocol ssh -t 20

JSON output for scripting

brutus creds --target 192.168.1.100:22 --protocol ssh --json

### 输出示例```
$ brutus creds --target 192.168.1.100:22 --protocol ssh -u root,admin -p toor,password,admin
[+] VALID: ssh root:toor @ 192.168.1.100:22 (1.23s)

使用详细模式 (-v):``` $ brutus creds --target 192.168.1.100:22 --protocol ssh -u root -p password,toor -v [-] FAILED: ssh root:password @ 192.168.1.100:22 (0.45s) [+] VALID: ssh root:toor @ 192.168.1.100:22 (0.52s)

JSON output for pipeline integration (outputs only successful credentials):```
$ brutus creds --target 192.168.1.100:22 --protocol ssh -u root -p toor --json
{"protocol":"ssh","target":"192.168.1.100:22","username":"root","password":"toor","duration":"1.234567ms","banner":"SSH-2.0-OpenSSH_8.9p1"}

流水线集成

Brutus 可与 Nerva 和 naabu 无缝集成,实现完整的网络侦察。

真实场景

场景 1:扫描企业级 /24 网络```bash

Discover all open ports, identify services, test default credentials

naabu -host 10.10.10.0/24 -p 22,23,21,3306,5432,6379,27017,445 -silent |
nerva --json |
brutus creds --json -o results.json

分类