Hydra

Einleitung

Hydra ist ein vielseitiges Tool zur Durchführung von Brute-Force- und Passwort-Spraying-Angriffen auf verschiedene Netzwerkprotokolle. Es unterstützt eine breite Palette von Diensten wie SSH, FTP, HTTP, SMTP und mehr. Hydra kann sowohl Einzelbenutzer- als auch Massenangriffe auf Benutzer- und Passwortlisten ausführen.

Hydra ist ein essentielles Werkzeug im Arsenal eines Penetration-Testers, da es ermöglicht, schwache Authentifizierungsmechanismen zu identifizieren und ausnutzen. Es ist vorinstalliert auf den meisten Pentesting-Distributionen wie Kali Linux oder ParrotOS.


1. Grundlegende Syntax

Die grundlegende Syntax für Hydra lautet:

$ hydra [Optionen] <Protokoll>://<Ziel-IP>
  • Optionen: Parameter wie Benutzerlisten, Passwortlisten, Threads usw.

  • Protokoll: Der zu attackierende Dienst (z. B. SSH, FTP, HTTP).

  • Ziel-IP: Die IP-Adresse oder der Hostname des Ziels.


2. Häufig genutzte Optionen

Option
Beschreibung

-l

Gibt einen einzelnen Benutzernamen an.

-L

Gibt eine Datei mit einer Liste von Benutzernamen an.

-p

Gibt ein einzelnes Passwort an.

-P

Gibt eine Datei mit einer Liste von Passwörtern an.

-t

Maximale Anzahl paralleler Verbindungen (Standard: 16).

-o

Speichert Ergebnisse in einer Datei.

-f

Beendet den Angriff, sobald ein gültiges Login gefunden wurde.

-V

Zeigt jeden Versuch an (verbose).

-s

Gibt den Port an, falls dieser nicht Standard ist (z. B. 2222 für SSH).


3. Beispiele für Hydra-Befehle

3.1 Brute-Force mit einem Benutzernamen und einer Passwortliste

$ hydra -l admin -P passlist.txt ssh://192.168.1.10
  • Erklärung:

    • -l admin: Testet den Benutzernamen admin.

    • -P passlist.txt: Verwendet die Datei passlist.txt mit möglichen Passwörtern.

    • ssh://192.168.1.10: Ziel ist ein SSH-Dienst auf der IP 192.168.1.10.

3.2 Passwort-Spraying mit Benutzerliste und einem Passwort

$ hydra -L users.txt -p 'welcome123' ftp://192.168.1.10
  • Erklärung:

    • -L users.txt: Testet alle Benutzernamen in users.txt.

    • -p 'welcome123': Verwendet das Passwort welcome123.

    • ftp://192.168.1.10: Ziel ist ein FTP-Dienst auf der IP 192.168.1.10.

3.3 Brute-Force mit Benutzer- und Passwortlisten

$ hydra -L users.txt -P passwords.txt ssh://192.168.1.10
  • Erklärung:

    • Testet jede Kombination aus der Benutzerliste users.txt und der Passwortliste passwords.txt auf dem SSH-Dienst.

3.4 Angriff auf einen Dienst mit benutzerdefiniertem Port

$ hydra -l root -P common_passwords.txt -s 2222 ssh://192.168.1.10
  • Erklärung:

    • -s 2222: Gibt Port 2222 anstelle des Standardports 22 für SSH an.

3.5 Ergebnisse speichern

$ hydra -L users.txt -P passwords.txt -o results.txt ssh://192.168.1.10
  • Erklärung:

    • -o results.txt: Speichert gültige Login-Kombinationen in der Datei results.txt.


5. Erweiterte Verwendung

5.1 HTTP/HTTPS-Authentifizierung

Hydra kann Angriffe auf HTTP/HTTPS-Dienste durchführen, einschließlich Basic Authentication und Formularanmeldungen:

$ hydra -L users.txt -P passwords.txt http-get://192.168.1.10
  • http-get: Testet HTTP-GET-Authentifizierung.

Für Formularanmeldungen kann die Option -m genutzt werden, um den POST-Parameter anzugeben:

$ hydra -L users.txt -P passwords.txt -m "/login.php:username=^USER^&password=^PASS^" http-post-form://192.168.1.10

6. Gute Praktiken und Sicherheit

  • Langsame Angriffe: Verwenden Sie niedrige Threads (-t), um nicht erkannt oder blockiert zu werden.

  • Benutzerdefinierte Timeout-Werte: Setzen Sie Timeout-Werte, um Verbindungsabbrüche zu vermeiden:

    $ hydra -L users.txt -P passwords.txt -t 4 -T 3 ssh://192.168.1.10
    • -T 3: Setzt den Timeout-Wert auf 3 Sekunden.


7. Unterstützte Protokolle

Hydra unterstützt viele Protokolle, darunter:

  • SSH, FTP, HTTP/HTTPS, SMTP, IMAP, RDP, VNC, Telnet, SNMP.

Eine vollständige Liste der Protokolle erhalten Sie mit:

bashCode kopieren$ hydra -U

Last updated