Passwörter mit Hydra Brute-Force generieren

HydraHydraBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Labor lernen Sie, wie Sie Hydra verwenden, um Passwörter für Brute-Force-Angriffe mithilfe verschiedener Passwortgenerierungsmethoden zu erstellen. Sie konzentrieren sich auf die Verwendung der Hydra-Option -x, um Passwörter basierend auf verschiedenen Kriterien wie Länge, Zeichensätzen und gängigen Kennwortmustern zu generieren.

Das Labor führt Sie durch mehrere Szenarien der Passwortgenerierung, einschließlich grundlegender Zeichensätze, gemischter Zeichenkombinitionen, numerischer Muster und realer Kennwortstrukturen. Sie werden einen Dummy-FTP-Server auf localhost als Ziel verwenden, um diese Techniken zu üben und zu lernen, wie Sie die Ausgabe von Brute-Force-Angriffen effektiv analysieren.

Passwörter mit der Option -x generieren

In diesem Schritt lernen Sie, wie Sie die Option -x in Hydra verwenden, um Passwörter basierend auf einem festgelegten Format zu generieren. Dies ist nützlich, wenn Sie Informationen über die potenzielle Passwortstruktur haben, wie z. B. einen bekannten Längenbereich oder einen Zeichensatz.

Die Hydra-Option -x ermöglicht es Ihnen, eine minimale und maximale Länge für die generierten Passwörter sowie einen zu verwendenden Zeichensatz zu definieren. Die Syntax lautet -x min:max:charset.

Beginnen wir mit einem einfachen Beispiel. Sie generieren Passwörter mit einer Länge zwischen 6 und 8 Zeichen, wobei nur Kleinbuchstaben verwendet werden.

Stellen Sie zunächst sicher, dass Sie sich im Verzeichnis ~/project befinden. Dies ist das Standardverzeichnis, wenn Sie das Labor starten.

cd ~/project

Nun verwenden Sie Hydra, um Passwörter zu generieren. Zu Demonstrationszwecken zielen Sie auf den SSH-Dienst auf localhost ab. Dadurch können Sie die Passwortgenerierung sehen, ohne einen erfolgreichen Angriff durchzuführen (da wir einen nicht existierenden Benutzer verwenden).

Führen Sie den folgenden Befehl im Terminal aus:

hydra -l testuser -vV -x 3:5:a-z localhost ssh

Lassen Sie uns diesen Befehl aufschlüsseln:

  • hydra: Der Befehl zum Ausführen des Hydra-Tools.
  • -l testuser: Gibt den zu verwendenden Benutzernamen an. Sie verwenden hier "testuser" als Platzhalter (dieser Benutzer existiert wahrscheinlich nicht).
  • -vV: Aktiviert eine ausführliche Ausgabe, die jeden Versuch anzeigt.
  • -x 3:5:a-z: Dies ist der entscheidende Teil. Er teilt Hydra mit, Passwörter mit folgenden Kriterien zu generieren:
    • 3: Minimale Länge von 3 Zeichen.
    • 5: Maximale Länge von 5 Zeichen.
    • a-z: Verwenden Sie nur Kleinbuchstaben (a-z). Weitere Optionen sind A-Z (Großbuchstaben), 0-9 (Ziffern), und Sie können diese kombinieren, z. B. a-zA-Z0-9 für Klein-, Großbuchstaben und Ziffern.
  • localhost: Der Zielhost.
  • ssh: Der SSH-Dienst, auf den Sie abzielen.

Sie werden sehen, wie Hydra versucht, Verbindungen mit generierten Passwörtern wie "aaa", "aaaa", "aaaaa", "aab" usw. herzustellen. Bei Verwendung der Option -x generiert Hydra automatisch Passwörter basierend auf den angegebenen Kriterien.

Hinweis: Die Kombinationsanzahl für Passwörter mit 3-5 Zeichen unter Verwendung von Kleinbuchstaben ist überschaubar: 26³ + 26⁴ + 26⁵ = 17.576 + 456.976 + 11.881.376 ≈ 12,4 Millionen Kombinationen, was innerhalb der Grenzen von Hydra liegt.

Wichtig: Verwenden Sie Strg+C, um den Angriff zu stoppen, da er lange dauern kann.

Die Ausgabe zeigt die generierten Passwörter an, während Hydra versucht, eine Verbindung zum SSH-Dienst herzustellen.

Hydra v[...] (c) 2023 by van Hauser / THCO
...
[VERSUCH] Ziel 127.0.0.1 - Login "testuser" - Passwort "aaa" - 1 von 1 [Kind 0] (0/0)
[VERSUCH] Ziel 127.0.0.1 - Login "testuser" - Passwort "aaaa" - 1 von 1 [Kind 0] (0/0)
[VERSUCH] Ziel 127.0.0.1 - Login "testuser" - Passwort "aaaaa" - 1 von 1 [Kind 0] (0/0)
[VERSUCH] Ziel 127.0.0.1 - Login "testuser" - Passwort "aab" - 1 von 1 [Kind 0] (0/0)
...

Wichtig: Grenzen der Passwortkombinationen

Bei Verwendung der Hydra-Option -x ist es wichtig, die Gesamtzahl der generierten Passwortkombinationen zu berücksichtigen. Hydra hat eine eingebaute Grenze von 4 Milliarden Passwörtern, um unpraktische Brute-Force-Versuche zu verhindern.

Hier sind einige Beispiele für Kombinationszahlen:

  • 3-5 Zeichen, nur Kleinbuchstaben (a-z): ~12,4 Millionen Kombinationen ✓
  • 4-6 Zeichen, nur Kleinbuchstaben (a-z): ~321 Millionen Kombinationen ✓
  • 6-8 Zeichen, nur Kleinbuchstaben (a-z): ~217 Milliarden Kombinationen ✗ (überschreitet die Grenze)
  • 4-6 Zeichen, alphanumerisch (a-zA-Z0-9): ~57 Milliarden Kombinationen ✗ (überschreitet die Grenze)

Berechnen Sie immer die Kombinationsanzahl, bevor Sie den Befehl ausführen: charset_size^min_length + ... + charset_size^max_length

Angriff auf FTP mit generierten Passwörtern

In diesem Schritt verwenden Sie die Passwortgenerierungsfunktionen von Hydra, um einen Dummy-FTP-Server anzugreifen. Sie verwenden eine "on-the-fly" generierte Passwortliste mit der Option -x.

Zuerst müssen Sie einen einfachen FTP-Server für Tests einrichten. Sie verwenden python3-pyftpdlib, eine leichte FTP-Server-Bibliothek für Python.

Installieren Sie python3-pyftpdlib, falls es noch nicht installiert ist:

sudo apt update
sudo apt install -y python3-pyftpdlib

Starten Sie den FTP-Server im Hintergrund auf Port 2121 und bedienen Sie Dateien aus dem Verzeichnis ~/project. Die Option -w erlaubt Schreibzugriff.

nohup python3 -m pyftpdlib -p 2121 -w -u testuser -P secret ~/project > /dev/null 2>&1 &

Der Teil nohup ... & führt den Befehl im Hintergrund aus und verhindert, dass er stoppt, wenn Sie das Terminal schließen. > /dev/null 2>&1 leitet die Standardausgabe und die Standardfehlermeldung an /dev/null weiter, wodurch Ihr Terminal sauber bleibt. Die Optionen -u testuser -P secret richten einen Benutzer mit dem Passwort "secret" ein, der auf den Server zugreifen kann.

Jetzt verwenden Sie Hydra, um diesen FTP-Server anzugreifen. Sie verwenden die Option -x, um Passwörter zu generieren und versuchen, sich als Benutzer "testuser" anzumelden.

Führen Sie den folgenden Befehl im Terminal aus:

hydra -l testuser -vV -x 4:6:a-z 127.0.0.1 ftp -s 2121

Lassen Sie uns diesen Befehl aufschlüsseln:

  • hydra: Das Hydra-Befehlszeilentool.
  • -l testuser: Gibt den zu verwendenden Benutzernamen "testuser" an.
  • -vV: Aktiviert eine ausführliche Ausgabe, die jeden Anmeldeversuch anzeigt.
  • -x 4:6:a-z: Dies teilt Hydra mit, Passwörter mit folgenden Kriterien zu generieren:
    • 4: Minimale Länge von 4 Zeichen.
    • 6: Maximale Länge von 6 Zeichen.
    • a-z: Verwenden Sie nur Kleinbuchstaben (a-z).
  • 127.0.0.1: Der Zielhost (localhost). Sie verwenden 127.0.0.1 anstelle von localhost, um potenzielle DNS-Auflösungsprobleme innerhalb des Containers zu vermeiden.
  • ftp: Der zu angreifende Dienst (FTP).
  • -s 2121: Gibt die Portnummer an. Sie zielen auf den FTP-Server ab, der auf Port 2121 läuft.

Sie sollten sehen, wie Hydra mit generierten Passwörtern Anmeldeversuche vornimmt. Da der FTP-Server mit bestimmten Anmeldeinformationen (Benutzername: testuser, Passwort: secret) konfiguriert ist, findet Hydra das richtige Passwort, wenn es während seiner Brute-Force-Versuche "secret" generiert.

Wichtig: Verwenden Sie Strg+C, um den Angriff zu stoppen, da er lange dauern kann.

Die Ausgabe zeigt die Anmeldeversuche und schließlich eine erfolgreiche Anmeldemeldung an.

Hydra v[...] (c) 2023 by van Hauser / THCO
...
[VERSUCH]  Ziel 127.0.0.1:2121 Dienst ftp auf Gerät eth0 - Login testuser Passwort aaaa
[VERSUCH]  Ziel 127.0.0.1:2121 Dienst ftp auf Gerät eth0 - Login testuser Passwort aaab
...
[2121][ftp] Host: 127.0.0.1   Login: testuser   Passwort: secret

Probieren wir nun ein etwas komplexeres Beispiel, indem wir Kleinbuchstaben und Ziffern kombinieren:

hydra -l testuser -vV -x 3:5:a-z0-9 127.0.0.1 ftp -s 2121

Dies generiert Passwörter wie "aaa", "aab", "aac" usw. und geht systematisch zuerst alle 3-Zeichen-Kombinationen durch, dann die 4-Zeichen-Kombinationen und schließlich die 5-Zeichen-Kombinationen. Beobachten Sie die Ausgabe, um die generierten Passwörter und die erfolgreiche Anmeldung zu sehen.

Hydra v[...] (c) 2023 by van Hauser / THCO
...
[VERSUCH]  Ziel 127.0.0.1:2121 Dienst ftp auf Gerät eth0 - Login testuser Passwort aaa
[VERSUCH]  Ziel 127.0.0.1:2121 Dienst ftp auf Gerät eth0 - Login testuser Passwort aab
...
[2121][ftp] Host: 127.0.0.1   Login: testuser   Passwort: secret

Dieser Schritt demonstrierte die Verwendung von Hydra mit der Option -x, um Passwörter zu generieren und einen FTP-Server anzugreifen. Denken Sie daran, diese Techniken verantwortungsvoll und ethisch einzusetzen.

Passwortgenerierung mit gemischten Groß- und Kleinbuchstaben

In diesem Schritt lernen Sie, wie Sie Passwörter mit Groß- und Kleinbuchstaben generieren. Dies ist ein häufig verwendetes Passwortmuster, das viele Benutzer verwenden, was es zu einer effektiven Brute-Force-Strategie macht.

Viele Benutzer erstellen Passwörter mit gemischten Groß- und Kleinbuchstaben, um die Passwortkomplexitätsanforderungen zu erfüllen. Das Verständnis dieses Musters kann Ihre Brute-Force-Erfolgsrate deutlich verbessern.

Stellen Sie sicher, dass Sie sich im Verzeichnis ~/project befinden und Ihr FTP-Server noch läuft:

cd ~/project

Generieren wir nun Passwörter mit gemischten Groß- und Kleinbuchstaben. Führen Sie den folgenden Befehl aus:

hydra -l testuser -vV -x 3:4:a-zA-Z 127.0.0.1 ftp -s 2121

Dieser Befehl generiert Passwörter mit:

  • a-z: Kleinbuchstaben (a-z)
  • A-Z: Großbuchstaben (A-Z)

Sie werden Passwörter wie "aaa", "Aaa", "aAa", "AAa", "aaA", "AaA", "aAA", "AAA", "aab", "Aab" usw. sehen. Beachten Sie, wie Hydra systematisch Groß- und Kleinbuchstaben kombiniert.

Probieren wir den Bereich von 3 bis 4 Zeichen, um das Muster klarer zu sehen:

hydra -l testuser -vV -x 3:4:a-zA-Z 127.0.0.1 ftp -s 2121

Dies generiert Passwörter mit 3-4 Zeichen und gemischten Groß- und Kleinbuchstaben. Sie können beobachten, wie sich die Kombinationen entwickeln:

  • 3 Zeichen: "aaa", "Aaa", "aAa", "AAa", "aaA", "AaA", "aAA", "AAA", "aab", "Aab", usw.
  • 4 Zeichen: "aaaa", "Aaaa", "aAaa", "AAaa", "aaaA", "AaaA", "aAaA", "AAaA", usw.

Mustererkennung:

Die Generierung von Passwörtern mit gemischten Groß- und Kleinbuchstaben folgt einem systematischen Ansatz, bei dem Hydra alle möglichen Kombinationen von Groß- und Kleinbuchstaben ausprobiert. Dies ist besonders effektiv, da:

  1. Viele Passwortrichtlinien erfordern gemischte Groß- und Kleinbuchstaben.
  2. Benutzer kapitalisieren häufig das erste Buchstaben oder zufällige Buchstaben.
  3. Häufige Muster beinhalten die Großschreibung des ersten Buchstabens von Wörtern.

Dieser Schritt demonstrierte die Verwendung der Generierung von Passwörtern mit gemischten Groß- und Kleinbuchstaben für Brute-Force-Angriffe, was effektiv gegen Passwörter ist, die sowohl Groß- als auch Kleinbuchstaben verwenden.

Generierung alphanumerischer Passwörter

In diesem Schritt lernen Sie, wie Sie Passwörter generieren, die Buchstaben und Zahlen kombinieren. Alphanumerische Passwörter sind sehr häufig, da sie Sicherheit und Merkfähigkeit ausbalancieren.

Alphanumerische Passwörter sind eine der häufigsten Passworttypen, da sie:

  • Die meisten Passwortkomplexitätsanforderungen erfüllen
  • Leichter zu merken sind als rein zufällige Zeichenfolgen
  • Häufig in Unternehmensumgebungen verwendet werden

Generieren wir nun alphanumerische Passwörter mit Hydra:

hydra -l testuser -vV -x 3:4:a-zA-Z0-9 127.0.0.1 ftp -s 2121

Dies generiert Passwörter mit:

  • a-z: Kleinbuchstaben (a-z)
  • A-Z: Großbuchstaben (A-Z)
  • 0-9: Ziffern (0-9)

Beispiele für generierte Passwörter: "abc", "A2b", "123", "aB1", "Te1" usw.

Versuchen wir einen fokussierteren Ansatz mit nur Kleinbuchstaben und Ziffern:

hydra -l testuser -vV -x 3:4:a-z0-9 127.0.0.1 ftp -s 2121

Dies generiert Passwörter wie "aaa", "aa1", "a12", "123", "test" usw.

Häufige alphanumerische Muster:

Benutzer folgen häufig vorhersehbaren Mustern bei der Erstellung alphanumerischer Passwörter:

  1. Wort + Zahlen (z. B. "pass123")
  2. Zahlen + Wort (z. B. "123pass")
  3. Abwechselnde Buchstaben und Zahlen (z. B. "a1b2")

Simulieren wir ein Muster, bei dem Benutzer möglicherweise kurze alphanumerische Kombinationen verwenden:

hydra -l testuser -vV -x 4:5:a-z0-9 127.0.0.1 ftp -s 2121

Dieser Schritt demonstrierte die Generierung alphanumerischer Passwörter, die zu den häufigsten Passworttypen in realen Szenarien gehören.

Generierung von Passwörtern nur mit Ziffern

In diesem Schritt lernen Sie, wie Sie reine Zahlenpasswörter generieren. Diese sind häufig für PINs, einfache Passwörter und Systeme mit nur numerischen Anforderungen.

Numerische Passwörter werden häufig verwendet in:

  • PIN-Codes für Geräte und Konten
  • Einfache Passwörter für einfache Systeme
  • Temporäre Passwörter
  • Legacy-Systeme mit nur numerischen Anforderungen

Generieren wir nun Passwörter nur mit Ziffern:

hydra -l testuser -vV -x 3:6:0-9 127.0.0.1 ftp -s 2121

Dies generiert reine Zahlenpasswörter wie "123", "1234", "0000", "9999", "5678" usw.

Für PIN-ähnliche Passwörter (typischerweise 4-6 Ziffern) versuchen Sie:

hydra -l testuser -vV -x 4:4:0-9 127.0.0.1 ftp -s 2121

Dies generiert genau 4-stellige Kombinationen, die Folgendes darstellen könnten:

  • Jahre (1990, 2000, 2023 usw.)
  • Häufige PINs (1234, 0000, 1111 usw.)
  • Geburtsjahre
  • Bedeutsame Daten

Probieren wir ein 6-stelliges Muster, das für längere PINs üblich ist:

hydra -l testuser -vV -x 6:6:0-9 127.0.0.1 ftp -s 2121

Häufige numerische Muster:

Benutzer wählen häufig vorhersehbare numerische Passwörter:

  1. Sequenzielle Zahlen: 123456, 654321
  2. Wiederholte Ziffern: 111111, 000000
  3. Daten: Geburtsjahre, aktuelles Jahr
  4. Einfache Muster: 121212, 123123

Anwendung in der Praxis:

Die Generierung von numerischen Passwörtern ist besonders nützlich bei der Ausrichtung auf:

  • PINs von Mobilgeräten
  • PINs von Bankautomaten
  • Einfache Systempasswörter
  • Temporäre Zugangscodes

Dieser Schritt demonstrierte die Generierung von Passwörtern nur mit Ziffern, die in vielen Systemen häufig verwendet werden.

Benutzerdefinierte Zeichensätze mit Symbolen

In diesem Schritt erfahren Sie, wie Sie benutzerdefinierte Zeichensätze erstellen, die bestimmte Symbole enthalten. Dies ist nützlich, wenn Sie wissen oder vermuten, dass das Zielsystem bestimmte Sonderzeichen in seinen Passwörtern verwendet.

Viele Passwortrichtlinien erfordern Sonderzeichen, und Benutzer wählen häufig gängige, leicht einzugebende Symbole. Das Verständnis, welche Symbole enthalten werden sollten, kann Ihre Brute-Force-Angriffe effizienter gestalten.

Generieren wir Passwörter mit benutzerdefinierten Zeichensätzen, die bestimmte Symbole enthalten:

hydra -l testuser -vV -x '3:4:a-z0-9!@#' 127.0.0.1 ftp -s 2121

Dies generiert Passwörter mit:

  • a-z: Kleinbuchstaben (a-z)
  • 0-9: Ziffern (0-9)
  • !@#: spezifische Symbole

Beispiele: "abc!", "a1@", "te#", "12!", usw.

Probieren wir einen anderen Satz gängiger Symbole:

hydra -l testuser -vV -x '3:4:a-z$%&' 127.0.0.1 ftp -s 2121

Dies verwendet Kleinbuchstaben und die Symbole $, %, &.

Für Passwörter, die möglicherweise komplexere Symbole enthalten:

hydra -l testuser -vV -x '3:4:a-zA-Z0-9!@#$%^&*' 127.0.0.1 ftp -s 2121

Dies erstellt einen umfassenden Zeichensatz mit:

  • Klein- und Großbuchstaben
  • Ziffern
  • Gängige Symbole: !@#$%^&*

Häufigste Passwortsymbole:

Basierend auf Passwortanalysen werden diese Symbole am häufigsten verwendet:

  1. ! - Ausrufezeichen
  2. @ - @-Symbol
  3. # - Hash/Zahlzeichen
  4. $ - Dollarzeichen
  5. % - Prozentzeichen
  6. ^ - Hochzeichen
  7. & - kaufmännisches Und
  8. * - Sternchen

Strategische Auswahl von Symbolen:

Bei der Erstellung benutzerdefinierter Zeichensätze sollten Sie Folgendes berücksichtigen:

  • Tastaturzugänglichkeit (Symbole auf der Zifferntaste sind häufig)
  • Passwortrichtlinienanforderungen
  • Kulturelle Präferenzen (einige Symbole sind in bestimmten Regionen häufiger)
  • Systembeschränkungen (einige Systeme erlauben bestimmte Symbole nicht)

Zielgerichtete Zeichensätze:

Für bestimmte Szenarien können Sie zielgerichtete Zeichensätze verwenden:

## Gängige Satzzeichen
hydra -l testuser -vV -x '3:4:a-z0-9.,;:' 127.0.0.1 ftp -s 2121

## Klammern
hydra -l testuser -vV -x '3:4:a-z0-9()[]{}' 127.0.0.1 ftp -s 2121

## Mathematische Symbole
hydra -l testuser -vV -x '3:4:a-z0-9+-=/' 127.0.0.1 ftp -s 2121

Dieser Schritt demonstrierte die Erstellung benutzerdefinierter Zeichensätze mit spezifischen Symbolen, sodass Sie Ihre Brute-Force-Angriffe an bekannte oder vermutete Passwortmuster anpassen können.

Zusammenfassung

In diesem Labor haben Sie gelernt, wie Sie Hydra verwenden, um Passwörter für Brute-Force-Angriffe durch einen umfassenden schrittweisen Ansatz zu generieren. Sie haben die Option -x von Hydra in verschiedenen Szenarien ausführlich erkundet, wobei sich jedes auf spezifische Passwortgenerierungsmethoden konzentrierte.

Sie haben verschiedene Passwortgenerierungsstrategien geübt, darunter:

  • Grundlegende Passwortgenerierung: Verständnis der Syntax der Option -x und grundlegende Konzepte
  • FTP-Angriffsszenarien: Anwendung der Passwortgenerierung gegen reale Dienste
  • Groß- und Kleinbuchstaben: Kombination von Groß- und Kleinbuchstaben für gängige Passwortmuster
  • Alphanumerische Passwörter: Verwendung von Buchstaben und Zahlen, der häufigste Passworttyp in realen Szenarien
  • Passwörter nur mit Ziffern: Fokus auf PINs und einfache numerische Passwörter mit hoher Erfolgsquote bei der Entschlüsselung
  • Benutzerdefinierte Zeichensätze mit Symbolen: Erstellung gezielter Symbolkombinationen basierend auf gängigen Nutzungsmustern