Zusätzliche Hydra-Passwortprüfungen verwenden

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, zusätzliche Passwortprüfungen in Hydra, einem leistungsfähigen Netzwerk-Login-Cracker, zu verwenden. Konkret richten Sie einen Telnet-Dienst auf der LabEx VM ein und verwenden dann Hydra mit der Option -e nsr, um Passwort-Crack-Versuche durchzuführen. Diese Option ermöglicht es Hydra, automatisch Nullpasswörter, den Benutzernamen selbst als Passwort und den umgekehrten Benutzernamen als Passwort zu versuchen. Dies ist eine gängige Technik im Penetrationstest, um schnell schwache oder standardmäßige Anmeldeinformationen zu identifizieren.

Das Labor führt Sie durch die Installation und Konfiguration des Telnet-Dienstes auf der LabEx VM. Anschließend verwenden Sie Hydra mit dem Flag -e nsr, um zu demonstrieren, wie diese zusätzlichen Prüfungen verwendet werden können, um einfache Passwörter zu finden. Schließlich vergleichen Sie die Ergebnisse mit der Verwendung nur der Option -e ns, um die Auswirkungen der Einbeziehung der umgekehrten Benutzernamenprüfung zu verstehen.

Telnet-Dienst einrichten

In diesem Schritt richten wir den Telnet-Dienst auf der LabEx VM ein. Telnet ist ein Netzwerkprotokoll, das eine Befehlszeilenschnittstelle zu einem Remote-Server bereitstellt. Obwohl Telnet im Produktionsumfeld im Allgemeinen als unsicher gilt, da Daten im Klartext übertragen werden, eignet es sich für die Demonstration von Passwort-Cracking-Techniken in einer kontrollierten Laborumgebung.

Zuerst müssen wir ein Testbenutzerkonto erstellen, das ein Nullpasswort hat:

sudo useradd -m testuser
sudo passwd -d testuser

Der Befehl passwd -d entfernt das Passwort für den Benutzer und erstellt effektiv ein Nullpasswort.

Wir müssen die Telnet-Konfigurationsdatei bearbeiten, die sich unter /etc/inetd.conf befindet. Verwenden Sie den Editor nano, um diese Datei zu öffnen:

sudo nano /etc/inetd.conf

Suchen Sie im nano-Editor die Zeile, die mit telnet beginnt. Sie sollte ähnlich wie folgt aussehen:

telnet  stream  tcp nowait telnetd /usr/sbin/tcpd  /usr/sbin/telnetd

Kommentieren Sie diese Zeile, indem Sie ein # am Anfang der Zeile hinzufügen:

#telnet  stream  tcp nowait telnetd /usr/sbin/tcpd  /usr/sbin/telnetd

Fügen Sie nun die folgende Zeile unterhalb der kommentierten Zeile ein. Diese neue Zeile konfiguriert Telnet so, dass die Option -i verwendet wird, wodurch die Authentifizierung deaktiviert wird.

telnet  stream  tcp nowait telnetd /usr/sbin/in.telnetd -i
Telnet configuration file

Der relevante Abschnitt Ihrer /etc/inetd.conf-Datei sollte nun wie folgt aussehen:

#telnet  stream  tcp nowait telnetd /usr/sbin/tcpd  /usr/sbin/telnetd
telnet  stream  tcp nowait telnetd /usr/sbin/in.telnetd -i

Drücken Sie Strg+X, um nano zu verlassen. Wenn Sie aufgefordert werden, zu speichern, drücken Sie Y und dann die Eingabetaste, um die Änderungen in /etc/inetd.conf zu speichern.

Zusätzlich müssen wir überprüfen, ob PAM so konfiguriert ist, dass Nullpasswörter für Telnet erlaubt sind. Überprüfen Sie die PAM-Konfiguration:

cat /etc/pam.d/common-auth | grep pam_unix.so

Sie sollten eine Zeile wie diese sehen:

auth    [success=1 default=ignore]      pam_unix.so nullok

Wenn die Zeile nicht nullok enthält, müssen Sie sie hinzufügen. Bearbeiten Sie die Datei:

sudo nano /etc/pam.d/common-auth

Suchen Sie die Zeile, die pam_unix.so enthält, und fügen Sie nullok am Ende hinzu, falls es nicht bereits vorhanden ist. Speichern und beenden Sie die Datei, falls Sie Änderungen vorgenommen haben.

Schließlich müssen wir den Dienst inetd neu starten, damit die Änderungen wirksam werden. Da wir uns in einer Docker-Containerumgebung befinden, verwenden wir das Skript /etc/init.d, um den Dienst neu zu starten:

sudo /etc/init.d/openbsd-inetd restart

Sie sollten eine Ausgabe sehen, die anzeigt, dass der Dienst neu gestartet wird:

 * Restarting internet superserver inetd

Der Telnet-Dienst ist nun eingerichtet und konfiguriert, um Anmeldungen ohne Passwort für dieses Labor zu ermöglichen.

Hydra mit -e nsr-Prüfungen ausführen

In diesem Schritt verwenden wir Hydra, um einen Brute-Force-Angriff auf den Telnet-Dienst durchzuführen. Wir verwenden speziell die Option -e nsr, um Hydra anzuweisen, Nullpasswörter, den Benutzernamen selbst und den umgekehrten Benutzernamen als potenzielle Passwörter zu versuchen.

Öffnen Sie Ihr Terminal im Verzeichnis ~/project und führen Sie den folgenden Befehl aus:

hydra -l testuser -P ~/project/unix_passwords.txt -vV -e nsr telnet://localhost

Lassen Sie uns diesen Befehl aufschlüsseln:

  • hydra: Dies ist der Befehl zum Ausführen des Hydra-Tools.
  • -l testuser: Dies gibt den Benutzernamen für den Angriff an. Wir zielen auf den von uns erstellten Testbenutzer ab, der ein Nullpasswort hat.
  • -P ~/project/unix_passwords.txt: Dies gibt eine Passwort-Liste-Datei an, die zusätzlich zu den durch -e angegebenen Prüfungen verwendet werden soll. Diese Datei enthält eine Liste gängiger Unix-Passwörter, die wir im Einrichtungsschritt heruntergeladen haben.
  • -vV: Diese Option aktiviert eine ausführliche Ausgabe, die jeden Anmeldeversuch und sein Ergebnis anzeigt.
  • -e nsr: Dies ist die wichtige Option für diesen Schritt. Sie teilt Hydra mit, zusätzliche Prüfungen durchzuführen:
    • n: Versuchen Sie ein Nullpasswort (eine leere Zeichenkette).
    • s: Versuchen Sie den Benutzernamen (testuser) als Passwort.
    • r: Versuchen Sie den umgekehrten Benutzernamen (resutest) als Passwort.
  • telnet://localhost: Dies gibt den Zieldienst und die Adresse an. telnet gibt das Telnet-Protokoll an, und localhost bezieht sich auf den lokalen Rechner (die LabEx VM selbst).

Führen Sie den Befehl aus. Hydra wird versuchen, sich mit dem angegebenen Benutzernamen und den Passwörtern aus der Liste sowie dem Nullpasswort, dem Benutzernamen und dem umgekehrten Benutzernamen beim Telnet-Dienst auf Port 23 (dem Standard-Telnet-Port) anzumelden.

Sie sehen eine Ausgabe ähnlich dieser, während Hydra seine Versuche unternimmt:

Hydra vX.Y (c) 2020 by van Hauser/THC - use allowed only for legal purposes.

Hydra starts...

[DATA] 1 task, 1 server, XXXX service(s)
[DATA] attacking service telnet on port 23
[DATA] attacking target localhost
[ATTEMPT] target localhost - login: 'testuser' - pass: ''
[23][telnet] host: localhost   login: testuser   password:
[ATTEMPT] target localhost - login: 'testuser' - pass: 'testuser'
[ATTEMPT] target localhost - login: 'testuser' - pass: 'resutest'
...

Da wir den Testbenutzer so konfiguriert haben, dass er ein Nullpasswort hat, sollte Hydra schnell eine erfolgreiche Anmeldung mit dem Nullpasswort (der erste Versuch mit einem leeren Passwort) finden.

Überprüfung der Ausgabe auf erfolgreiche Prüfungen

In diesem Schritt untersuchen wir die Ausgabe des gerade ausgeführten Hydra-Befehls, um erfolgreiche Anmeldeversuche zu identifizieren.

Scrollen Sie in Ihrem Terminal durch die Ausgabe. Suchen Sie nach Zeilen, die eine erfolgreiche Anmeldung anzeigen. Diese Zeilen sind typischerweise mit der Portnummer und dem Dienst gekennzeichnet, gefolgt von Host, Login und Passwort.

Da wir den Telnet-Dienst so konfiguriert haben, dass Anmeldungen ohne Passwort erlaubt sind, sollten Sie eine Zeile ähnlich dieser in der Ausgabe sehen:

[23][telnet] host: localhost   login: testuser   password:

Diese Zeile bestätigt, dass Hydra sich erfolgreich beim Telnet-Dienst auf localhost mit dem Benutzernamen testuser und einem Nullpasswort (angezeigt durch den leeren Raum nach password:) angemeldet hat.

Möglicherweise sehen Sie auch andere erfolgreiche Anmeldungen, falls eines der Passwörter in der Datei ~/project/unix_passwords.txt mit dem tatsächlichen Passwort für den Benutzer testuser übereinstimmt (obwohl in diesem Laborsetup die erfolgreiche Prüfung mit dem Nullpasswort beabsichtigt ist).

Die Option -vV liefert eine detaillierte Ausgabe für jeden Versuch, was hilfreich ist, um zu verstehen, wie Hydra voranschreitet und welche Passwörter es ausprobiert. Die Zeile der erfolgreichen Anmeldung zeigt deutlich die erfolgreichen Anmeldeinformationen an.

Dieser Schritt demonstriert, wie die Option -e nsr dabei hilft, gängige Schwachstellen bei Passwörtern, wie z. B. Nullpasswörter, schnell zu identifizieren, die in Standardpasswortlisten oft übersehen werden.

Vergleich mit -e ns-Prüfungen

In diesem Schritt führen wir Hydra erneut aus, verwenden aber diesmal die Option -e ns anstelle von -e nsr. Dadurch wird Hydra angewiesen, Nullpasswörter und den Benutzernamen als Passwort zu versuchen, aber den umgekehrten Benutzernamen nicht zu versuchen. Durch den Vergleich der Ausgabe dieses Befehls mit der vorherigen Ausgabe können Sie den Unterschied in den durchgeführten Prüfungen erkennen.

Öffnen Sie Ihr Terminal im Verzeichnis ~/project und führen Sie den folgenden Befehl aus:

hydra -l testuser -P ~/project/unix_passwords.txt -vV -e ns telnet://localhost

Dieser Befehl ist dem vorherigen fast identisch, der einzige Unterschied ist die Option -e ns.

  • -e ns: Diese Option teilt Hydra mit, die folgenden zusätzlichen Prüfungen durchzuführen:
    • n: Versuchen Sie ein Nullpasswort.
    • s: Versuchen Sie den Benutzernamen (testuser) als Passwort.

Führen Sie den Befehl aus. Hydra wird erneut versuchen, sich beim Telnet-Dienst anzumelden, indem es Passwörter aus der Liste, das Nullpasswort und den Benutzernamen als Passwort ausprobiert.

Beobachten Sie die Ausgabe. Sie werden Versuche für das Nullpasswort und den Benutzernamen als Passwort sehen, ähnlich wie beim vorherigen Durchlauf. Sie werden jedoch keinen Versuch für den umgekehrten Benutzernamen (resutest) sehen.

Hydra vX.Y (c) 2020 by van Hauser/THC - use allowed only for legal purposes.

Hydra is starting...

[DATA] 1 task, 1 server, XXXX service(s)
[DATA] attacking service telnet on port 23
[DATA] attacking target localhost
[ATTEMPT] target localhost - login: 'testuser' - pass: ''
[23][telnet] host: localhost   login: testuser   password:
[ATTEMPT] target localhost - login: 'testuser' - pass: 'testuser'
...

Durch den Vergleich der Ausgabe dieses Befehls mit der Ausgabe aus Schritt 2 können Sie deutlich erkennen, dass die Option -e nsr die Prüfung des umgekehrten Benutzernamens beinhaltet, während die Option -e ns dies nicht tut. Dies verdeutlicht, wie verschiedene Optionen in Hydra es Ihnen ermöglichen, den Passwort-Crack-Prozess anzupassen und spezifische Arten von Prüfungen einzubeziehen, die in bestimmten Szenarien relevant sein könnten.

Zusammenfassung

In diesem Labor haben Sie gelernt, wie Sie zusätzliche Passwortprüfungen in Hydra durchführen, indem Sie einen Telnet-Dienst auf der LabEx-VM eingerichtet und die Option -e nsr verwendet haben. Sie haben das Paket telnetd installiert und den Telnet-Dienst für Demonstrationszwecke so konfiguriert, dass Nullpasswörter erlaubt sind, indem Sie einen Testbenutzer mit einem Nullpasswort erstellt, die Datei /etc/inetd.conf bearbeitet und PAM so konfiguriert haben, dass Nullpasswörter erlaubt sind.

Anschließend haben Sie Hydra mit der Option -e nsr verwendet, um Passwort-Crack-Versuche durchzuführen, die das Ausprobieren von Nullpasswörtern, des Benutzernamens als Passwort und des umgekehrten Benutzernamens als Passwort einschlossen. Sie haben die Ausgabe beobachtet und die erfolgreiche Anmeldung mit dem Nullpasswort identifiziert. Schließlich haben Sie die Ergebnisse mit der Verwendung der Option -e ns verglichen, um den Unterschied in den durchgeführten Prüfungen zu verstehen. Dieses Labor hat demonstriert, wie zusätzliche Passwortprüfungen von Hydra verwendet werden können, um gängige schwache Anmeldeinformationen schnell zu identifizieren.