Salta ai contenuti

Comandi Brutus

Comandi completi di Brutus, strumento di test delle credenziali multi-protocollo per il penetration testing e le valutazioni della sicurezza.

Installazione

ComandoDescrizione
go install github.com/praetorian-inc/brutus@latestInstalla tramite Go
Scarica da GitHub ReleasesBinario singolo precompilato
brutus --versionMostra la versione di Brutus
brutus --helpMostra la guida e i comandi disponibili
chmod +x brutusRendi il binario scaricato eseguibile

Utilizzo di Base

ComandoDescrizione
brutus ssh --host 192.168.1.1Test delle credenziali SSH
brutus ssh --host 192.168.1.1 -u admin -p passwords.txtSSH con utente e wordlist
brutus mysql --host 192.168.1.1 -u rootTest delle credenziali MySQL
brutus rdp --host 192.168.1.1 -u administratorTest delle credenziali RDP
brutus smb --host 192.168.1.1 -u adminTest delle credenziali SMB
brutus ftp --host 192.168.1.1 -u anonymousTest delle credenziali FTP

Protocolli Supportati

ProtocolloDescrizione
sshAutenticazione Secure Shell
mysqlAutenticazione del database MySQL
postgresqlAutenticazione del database PostgreSQL
redisAutenticazione di Redis
mongodbAutenticazione di MongoDB
smbServer Message Block
rdpRemote Desktop Protocol
ftpFile Transfer Protocol
telnetAutenticazione Telnet
vncAutenticazione VNC
snmpTest della stringa della comunità SNMP
ldapAutenticazione LDAP
mssqlMicrosoft SQL Server
http-basicAutenticazione HTTP Basic
http-formAutenticazione basata su form HTTP
smtpAutenticazione SMTP
pop3Autenticazione di posta POP3
imapAutenticazione di posta IMAP
cassandraAutenticazione del database Cassandra
oracleAutenticazione del database Oracle

Opzioni delle Credenziali

FlagDescrizione
-u <user>Nome utente singolo
-U <file>File della wordlist di nomi utente
-p <pass>Password singola
-P <file>File della wordlist di password
-C <file>File combo (user:pass per riga)
--default-credsTest delle credenziali predefinite comuni
--empty-passwordTest delle password vuote
--user-as-passTest il nome utente come password
--reverse-userTest il nome utente invertito come password

Opzioni di Connessione

FlagDescrizione
--host <ip>IP o nome host del target
--port <port>Porta personalizzata (sostituisce il valore predefinito)
--hosts-file <file>File con l’elenco dei target
-t <threads>Numero di thread concorrenti
--timeout <seconds>Timeout di connessione per tentativo
--delay <ms>Ritardo tra i tentativi
--retry <count>Numero di tentativi in caso di errore
--proxy <url>Instrada tramite un proxy

Opzioni di Output

FlagDescrizione
-o <file>Esporta i risultati su file
--jsonEsporta in formato JSON
--json-prettyOutput JSON con formattazione
--quietSopprime l’output dettagliato
--verboseAumenta la verbosità dell’output
--no-colorDisabilita l’output colorato
--found-onlyMostra solo i login riusciti

Opzioni Specifiche SSH

FlagDescrizione
--ssh-key <file>Test con chiave privata SSH
--ssh-badkeysTest delle chiavi SSH cattive/predefinite conosciute
--ssh-agentUsa l’agente SSH per le chiavi
--ssh-vagrantTest della chiave insicura Vagrant
--ssh-key-passphrase <pass>Passphrase per la chiave crittografata

Integrazione della Pipeline

ComandoDescrizione
naabu -host 192.168.1.0/24 -p 22 -json | brutus sshPipe dei risultati della scansione di porta naabu
fingerprintx -json | brutus autoRilevamento automatico del protocollo dall’impronta
brutus ssh --json | jq '.[] | select(.success)'Filtra i login riusciti con jq
echo '{"host":"192.168.1.1","port":22}' | brutus sshPipe il target singolo come JSON
brutus ssh --json -o results.jsonSalva i risultati JSON su file

Utilizzo Avanzato

ComandoDescrizione
brutus ssh -t 50 --delay 100Test con rate limit (50 thread, ritardo di 100ms)
brutus auto --hosts-file targets.txtRilevamento e test automatico di più target
brutus http-form --url <url> --form-data "user=^USER^&pass=^PASS^"Brute force del form HTTP
brutus http-basic --url <url>Test dell’autenticazione HTTP Basic
brutus ssh --default-creds --hosts-file iot-devices.txtScansione delle credenziali predefinite IoT

Test delle Credenziali Predefinite

ComandoDescrizione
brutus ssh --default-credsTest delle credenziali SSH predefinite
brutus mysql --default-credsTest dei valori predefiniti MySQL (root/blank, ecc.)
brutus postgresql --default-credsTest dei valori predefiniti PostgreSQL
brutus redis --default-credsTest dei valori predefiniti Redis
brutus snmp --default-credsTest delle stringhe della comunità SNMP

Test delle Chiavi Cattive (SSH)

ComandoDescrizione
brutus ssh --ssh-badkeysTest di tutte le chiavi SSH cattive conosciute
Includi le chiavi Rapid7 ssh-badkeysChiavi private trapelate conosciute
Includi la chiave Vagrant di HashiCorpChiave insicura Vagrant predefinita
Chiavi compilate nel binarioNessun file di chiave esterno necessario
brutus ssh --ssh-badkeys --hosts-file servers.txtTest batch delle chiavi cattive

Sicurezza e Rate Limiting

FlagDescrizione
-t 1Thread singolo (più gentile)
--delay 10001 secondo tra i tentativi
--max-attempts 3Arresta dopo 3 errori per host
--lockout-threshold 5Arresta dopo 5 rilevamenti di blocco
--timeout 10Timeout di connessione di 10 secondi

Suggerimenti e Best Practice

SuggerimentoDescrizione
Hai sempre l’autorizzazioneTesta solo i sistemi per cui sei autorizzato
Inizia con le credenziali predefinitePiù efficace per l’accesso iniziale
Usa il rate limitingEvita di attivare i blocchi dell’account
Pipe dai ricognizioneCatena con naabu e fingerprintx
Usa l’output JSONDati strutturati per il reporting
Test delle chiavi SSH cattiveVittorie rapide sui server mal configurati
Controlla prima del brute forceProva le credenziali predefinite e le chiavi cattive prima
Monitora i blocchiOsserva le risposte di blocco dell’account