Skip to content

Brutus Commands

Comprehensive Brutus multi-protocol credential testing tool commands for penetration testing and security assessments.

Installation

CommandDescription
go install github.com/praetorian-inc/brutus@latestInstall via Go
Download from GitHub ReleasesPre-built single binary
brutus --versionShow Brutus version
brutus --helpShow help and available commands
chmod +x brutusMake downloaded binary executable

Basic Usage

CommandDescription
brutus ssh --host 192.168.1.1Test SSH credentials
brutus ssh --host 192.168.1.1 -u admin -p passwords.txtSSH with user and wordlist
brutus mysql --host 192.168.1.1 -u rootTest MySQL credentials
brutus rdp --host 192.168.1.1 -u administratorTest RDP credentials
brutus smb --host 192.168.1.1 -u adminTest SMB credentials
brutus ftp --host 192.168.1.1 -u anonymousTest FTP credentials

Supported Protocols

ProtocolDescription
sshSecure Shell authentication
mysqlMySQL database authentication
postgresqlPostgreSQL database authentication
redisRedis authentication
mongodbMongoDB authentication
smbServer Message Block
rdpRemote Desktop Protocol
ftpFile Transfer Protocol
telnetTelnet authentication
vncVNC authentication
snmpSNMP community string testing
ldapLDAP authentication
mssqlMicrosoft SQL Server
http-basicHTTP Basic authentication
http-formHTTP form-based authentication
smtpSMTP authentication
pop3POP3 email authentication
imapIMAP email authentication
cassandraCassandra database authentication
oracleOracle database authentication

Credential Options

FlagDescription
-u <user>Single username
-U <file>Username wordlist file
-p <pass>Single password
-P <file>Password wordlist file
-C <file>Combo file (user:pass per line)
--default-credsTest common default credentials
--empty-passwordTest empty passwords
--user-as-passTest username as password
--reverse-userTest reversed username as password

Connection Options

FlagDescription
--host <ip>Target host IP or hostname
--port <port>Custom port (overrides default)
--hosts-file <file>File with list of target hosts
-t <threads>Number of concurrent threads
--timeout <seconds>Connection timeout per attempt
--delay <ms>Delay between attempts
--retry <count>Number of retries on failure
--proxy <url>Route through proxy

Output Options

FlagDescription
-o <file>Output results to file
--jsonOutput in JSON format
--json-prettyPretty-printed JSON output
--quietSuppress verbose output
--verboseIncrease output verbosity
--no-colorDisable colored output
--found-onlyOnly show successful logins

SSH-Specific Options

FlagDescription
--ssh-key <file>Test with SSH private key
--ssh-badkeysTest known bad/default SSH keys
--ssh-agentUse SSH agent for keys
--ssh-vagrantTest Vagrant insecure key
--ssh-key-passphrase <pass>Passphrase for encrypted key

Pipeline Integration

CommandDescription
naabu -host 192.168.1.0/24 -p 22 -json | brutus sshPipe naabu port scan results
fingerprintx -json | brutus autoAuto-detect protocol from fingerprint
brutus ssh --json | jq '.[] | select(.success)'Filter successful logins with jq
echo '{"host":"192.168.1.1","port":22}' | brutus sshPipe single target as JSON
brutus ssh --json -o results.jsonSave JSON results to file

Advanced Usage

CommandDescription
brutus ssh -t 50 --delay 100Rate-limited testing (50 threads, 100ms delay)
brutus auto --hosts-file targets.txtAuto-detect and test multiple targets
brutus http-form --url <url> --form-data "user=^USER^&pass=^PASS^"HTTP form brute force
brutus http-basic --url <url>HTTP Basic auth testing
brutus ssh --default-creds --hosts-file iot-devices.txtIoT default credential scan

Default Credential Testing

CommandDescription
brutus ssh --default-credsTest SSH default credentials
brutus mysql --default-credsTest MySQL defaults (root/blank, etc.)
brutus postgresql --default-credsTest PostgreSQL defaults
brutus redis --default-credsTest Redis defaults
brutus snmp --default-credsTest SNMP community strings

Bad Key Testing (SSH)

CommandDescription
brutus ssh --ssh-badkeysTest all known bad SSH keys
Includes Rapid7 ssh-badkeysKnown leaked private keys
Includes HashiCorp Vagrant keyDefault Vagrant insecure key
Keys compiled into binaryNo external key files needed
brutus ssh --ssh-badkeys --hosts-file servers.txtBatch bad key testing

Safety and Rate Limiting

FlagDescription
-t 1Single thread (gentlest)
--delay 10001 second between attempts
--max-attempts 3Stop after 3 failures per host
--lockout-threshold 5Stop after 5 lockout detections
--timeout 1010 second connection timeout

Tips and Best Practices

TipDescription
Always have authorizationOnly test systems you’re authorized to test
Start with default credsMost effective for initial access
Use rate limitingAvoid triggering account lockouts
Pipe from reconnaissanceChain with naabu and fingerprintx
Use JSON outputStructured data for reporting
Test bad SSH keysQuick wins on misconfigured servers
Check before brute forcingTry default creds and bad keys first
Monitor for lockoutsWatch for account lockout responses