
高速で依存関係ゼロのGo製認証情報テストツール。SSH、MySQL、PostgreSQL、Redis、MongoDB、SMB、および20以上のプロトコルへのブルートフォース攻撃。Hydraの代替で、nerva/naabuパイプラインとのネイティブ統合を特徴とする。
「ブルータス、お前もか?」 — 認証情報が崩れ落ちる前の最後の言葉。
純粋なGoで書かれたモダンな認証情報テストツール
インストール • クイックスタート • パイプライン • プロトコル • 列挙 • プロキシ • ライブラリ
Brutusは、オフェンシブセキュリティツールにおける重大なギャップに対処するために設計されたマルチプロトコル認証テストツールです。そのギャップとは、多様なネットワークサービスにわたる効率的な認証情報の検証です。HTTPに特化したツールは豊富に存在しますが、ペネトレーションテスターやレッドチームオペレーターは、データベース、SSH、SMB、その他のネットワークサービスに頻繁に遭遇し、それらには専用の認証テスト機能が求められます。
Goで構築された単一バイナリで外部依存関係が一切ないBrutusは、自動サービス検出のためにNervaとシームレスに統合され、オペレーターがネットワーク範囲全体にわたって認証ベクターを迅速に特定・テストできるようにします。
主な機能:
--proxyで全トラフィックをSOCKS5プロキシ経由でルーティング--mode cautious|default|aggressiveでカバレッジと安全性を調整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セキュリティツールに直接インポートできます。外部プロセスを呼び出すことなく、カスタム自動化を構築できます。
# 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
侵害されたシステム上で秘密鍵を見つけましたか?ネットワーク全体にスプレーして、他にどこでアクセスが許可されるかを確認しましょう:
# 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 で識別し、侵害されたキーを一般的なユーザー名に対してテストします—数秒で横展開の機会を明らかにします。
HTTP サービスを検出し、AI 駆動の検出または手動の認証情報リストを使用して認証情報をテストします:
# 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 からダウンロード:
# 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/
# 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 install github.com/praetorian-inc/brutus/cmd/brutus@latest
Brutusはその機能を以下のような焦点を絞ったサブコマンドに整理しています:
brutus badkeys # Test known weak/compromised SSH keys against targets
brutus creds # Test default credentials on non-HTTP services (SSH, databases, SMB, etc.)
brutus enum # Enumerate accounts against account-existence oracles or Active Directory
brutus logon # Detect Windows logon-screen backdoors (runs both sticky keys and utilman)
brutus snmp # Test SNMP community strings against targets
brutus stickykeys # Detect the Windows sticky-keys (sethc.exe) logon backdoor only
brutus template # Run product-specific default-credential templates
brutus utilman # Detect the Windows utilman (Ease of Access) logon backdoor only
brutus web # Audit HTTP/web panel credentials (AI-powered or credential list)
一部のサブコマンドには、発見しやすさのためにエイリアスが設定されています:
| サブコマンド | エイリアス |
|---|---|
badkeys | keys, ssh-keys, badkey |
creds | services, defaults, credentials |
snmp | community |
web | http, panels |
完全なリファレンス — すべてのサブコマンド、エイリアス、フラグ(--help から隠されているものを含む)— は docs/CLI.md に生成されます。
# 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
# 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