Brutus-Befehle
Umfassende Brutus-Multi-Protokoll-Credential-Testing-Tool-Befehle für Penetrationstests und Sicherheitsbewertungen.
Installation
Abschnitt betitelt „Installation“| Befehl | Beschreibung |
|---|---|
go install github.com/praetorian-inc/brutus@latest | Via Go installieren |
| Von GitHub Releases herunterladen | Vorkompilierte einzelne Binärdatei |
brutus --version | Brutus-Version anzeigen |
brutus --help | Hilfe und verfügbare Befehle anzeigen |
chmod +x brutus | Heruntergeladene Binärdatei ausführbar machen |
Grundlegende Verwendung
Abschnitt betitelt „Grundlegende Verwendung“| Befehl | Beschreibung |
|---|---|
brutus ssh --host 192.168.1.1 | SSH-Anmeldedaten testen |
brutus ssh --host 192.168.1.1 -u admin -p passwords.txt | SSH mit Benutzer und Wörterbuch |
brutus mysql --host 192.168.1.1 -u root | MySQL-Anmeldedaten testen |
brutus rdp --host 192.168.1.1 -u administrator | RDP-Anmeldedaten testen |
brutus smb --host 192.168.1.1 -u admin | SMB-Anmeldedaten testen |
brutus ftp --host 192.168.1.1 -u anonymous | FTP-Anmeldedaten testen |
Unterstützte Protokolle
Abschnitt betitelt „Unterstützte Protokolle“| Protokoll | Beschreibung |
|---|---|
ssh | Secure Shell-Authentifizierung |
mysql | MySQL-Datenbankautentifizierung |
postgresql | PostgreSQL-Datenbankautentifizierung |
redis | Redis-Authentifizierung |
mongodb | MongoDB-Authentifizierung |
smb | Server Message Block |
rdp | Remote Desktop Protocol |
ftp | File Transfer Protocol |
telnet | Telnet-Authentifizierung |
vnc | VNC-Authentifizierung |
snmp | SNMP-Community-String-Testing |
ldap | LDAP-Authentifizierung |
mssql | Microsoft SQL Server |
http-basic | HTTP-Basic-Authentifizierung |
http-form | HTTP-formularbasierte Authentifizierung |
smtp | SMTP-Authentifizierung |
pop3 | POP3-E-Mail-Authentifizierung |
imap | IMAP-E-Mail-Authentifizierung |
cassandra | Cassandra-Datenbankautentifizierung |
oracle | Oracle-Datenbankautentifizierung |
Credential-Optionen
Abschnitt betitelt „Credential-Optionen“| Flag | Beschreibung |
|---|---|
-u <user> | Einzelner Benutzername |
-U <file> | Benutzername-Wörterbuchdatei |
-p <pass> | Einzelnes Passwort |
-P <file> | Passwort-Wörterbuchdatei |
-C <file> | Combo-Datei (Benutzer:Passwort pro Zeile) |
--default-creds | Standard-Anmeldedaten testen |
--empty-password | Leere Passwörter testen |
--user-as-pass | Benutzername als Passwort testen |
--reverse-user | Umgekehrten Benutzernamen als Passwort testen |
Verbindungsoptionen
Abschnitt betitelt „Verbindungsoptionen“| Flag | Beschreibung |
|---|---|
--host <ip> | Ziel-Host-IP oder Hostname |
--port <port> | Benutzerdefinierten Port (überschreibt Standard) |
--hosts-file <file> | Datei mit Ziel-Host-Liste |
-t <threads> | Anzahl der gleichzeitigen Threads |
--timeout <seconds> | Verbindungs-Timeout pro Versuch |
--delay <ms> | Verzögerung zwischen Versuchen |
--retry <count> | Anzahl der Wiederholungen bei Fehler |
--proxy <url> | Durch Proxy weiterleiten |
Ausgabeoptionen
Abschnitt betitelt „Ausgabeoptionen“| Flag | Beschreibung |
|---|---|
-o <file> | Ergebnisse in Datei ausgeben |
--json | JSON-Format ausgeben |
--json-pretty | Hübsch gedruckte JSON-Ausgabe |
--quiet | Ausführliche Ausgabe unterdrücken |
--verbose | Ausgabe-Ausführlichkeit erhöhen |
--no-color | Farbige Ausgabe deaktivieren |
--found-only | Nur erfolgreiche Anmeldungen anzeigen |
SSH-spezifische Optionen
Abschnitt betitelt „SSH-spezifische Optionen“| Flag | Beschreibung |
|---|---|
--ssh-key <file> | Mit SSH-Privatschlüssel testen |
--ssh-badkeys | Bekannte schlechte/Standard-SSH-Schlüssel testen |
--ssh-agent | SSH-Agent für Schlüssel verwenden |
--ssh-vagrant | Vagrant-Unsicher-Schlüssel testen |
--ssh-key-passphrase <pass> | Passphrase für verschlüsselten Schlüssel |
Pipeline-Integration
Abschnitt betitelt „Pipeline-Integration“| Befehl | Beschreibung |
|---|---|
naabu -host 192.168.1.0/24 -p 22 -json | brutus ssh | naabu-Port-Scan-Ergebnisse pipen |
fingerprintx -json | brutus auto | Protokoll vom Fingerprint automatisch erkennen |
brutus ssh --json | jq '.[] | select(.success)' | Erfolgreiche Anmeldungen mit jq filtern |
echo '{"host":"192.168.1.1","port":22}' | brutus ssh | Einzelnes Ziel als JSON pipen |
brutus ssh --json -o results.json | JSON-Ergebnisse in Datei speichern |
Erweiterte Verwendung
Abschnitt betitelt „Erweiterte Verwendung“| Befehl | Beschreibung |
|---|---|
brutus ssh -t 50 --delay 100 | Rate-Limited Testing (50 Threads, 100ms Verzögerung) |
brutus auto --hosts-file targets.txt | Protokoll automatisch erkennen und mehrere Ziele testen |
brutus http-form --url <url> --form-data "user=^USER^&pass=^PASS^" | HTTP-Formular Brute Force |
brutus http-basic --url <url> | HTTP-Basic-Auth Testing |
brutus ssh --default-creds --hosts-file iot-devices.txt | IoT-Standard-Credential-Scan |
Standard-Credential-Testing
Abschnitt betitelt „Standard-Credential-Testing“| Befehl | Beschreibung |
|---|---|
brutus ssh --default-creds | SSH-Standard-Anmeldedaten testen |
brutus mysql --default-creds | MySQL-Standardwerte testen (root/blank, etc.) |
brutus postgresql --default-creds | PostgreSQL-Standardwerte testen |
brutus redis --default-creds | Redis-Standardwerte testen |
brutus snmp --default-creds | SNMP-Community-Strings testen |
Bad Key Testing (SSH)
Abschnitt betitelt „Bad Key Testing (SSH)“| Befehl | Beschreibung |
|---|---|
brutus ssh --ssh-badkeys | Alle bekannten schlechten SSH-Schlüssel testen |
| Enthält Rapid7 ssh-badkeys | Bekannte geleakte private Schlüssel |
| Enthält HashiCorp Vagrant-Schlüssel | Standardmäßiger Vagrant-Unsicher-Schlüssel |
| Schlüssel in Binärdatei kompiliert | Keine externen Schlüsseldateien erforderlich |
brutus ssh --ssh-badkeys --hosts-file servers.txt | Batch-Bad-Key-Testing |
Sicherheit und Rate Limiting
Abschnitt betitelt „Sicherheit und Rate Limiting“| Flag | Beschreibung |
|---|---|
-t 1 | Einzelner Thread (sanftester) |
--delay 1000 | 1 Sekunde zwischen Versuchen |
--max-attempts 3 | Nach 3 Fehlern pro Host stoppen |
--lockout-threshold 5 | Nach 5 Lockout-Erkennungen stoppen |
--timeout 10 | 10 Sekunden Verbindungs-Timeout |
Tipps und Best Practices
Abschnitt betitelt „Tipps und Best Practices“| Tipp | Beschreibung |
|---|---|
| Immer autorisiert sein | Nur Systeme testen, bei denen Sie autorisiert sind |
| Mit Standard-Anmeldedaten beginnen | Am effektivsten für initialen Zugriff |
| Rate Limiting verwenden | Konten-Lockouts vermeiden |
| Von Reconnaissance pipen | Mit naabu und fingerprintx verketten |
| JSON-Ausgabe verwenden | Strukturierte Daten für Berichte |
| SSH-Bad-Keys testen | Schnelle Gewinne auf falsch konfigurierten Servern |
| Vor Brute Force überprüfen | Standard-Creds und Bad Keys zuerst versuchen |
| Nach Lockouts überwachen | Konto-Lockout-Antworten beobachten |