Einrichten einer Testumgebung für Hydra

HydraHydraBeginner
Jetzt üben

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

Einführung

In diesem Lab lernen Sie, wie Sie eine Testumgebung für Hydra einrichten, indem Sie auf Ihrer LabEx-VM einen OpenSSH-Server installieren und konfigurieren. Diese kontrollierte Umgebung ermöglicht es Ihnen, in späteren Übungen sicher Passwort-Cracking-Techniken zu üben.

Sie konfigurieren den SSH-Server so, dass die Passwortauthentifizierung und der Root-Login aktiviert sind, was für Hydra-Tests unerlässlich ist. Der Prozess umfasst das Ändern von Konfigurationsdateien, das Neustarten von Diensten und die Überprüfung der Einrichtung für nachfolgende Sicherheitstests.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL hydra(("Hydra")) -.-> hydra/HydraGroup(["Hydra"]) hydra/HydraGroup -.-> hydra/installation("Installation and Setup") hydra/HydraGroup -.-> hydra/single_username("Single Username Attack") hydra/HydraGroup -.-> hydra/single_password("Single Password Attack") hydra/HydraGroup -.-> hydra/target_ip("Target IP Specification") hydra/HydraGroup -.-> hydra/target_service("Target Service Selection") hydra/HydraGroup -.-> hydra/ssh_attack("SSH Brute Force") hydra/HydraGroup -.-> hydra/troubleshooting("Basic Troubleshooting") subgraph Lab Skills hydra/installation -.-> lab-549921{{"Einrichten einer Testumgebung für Hydra"}} hydra/single_username -.-> lab-549921{{"Einrichten einer Testumgebung für Hydra"}} hydra/single_password -.-> lab-549921{{"Einrichten einer Testumgebung für Hydra"}} hydra/target_ip -.-> lab-549921{{"Einrichten einer Testumgebung für Hydra"}} hydra/target_service -.-> lab-549921{{"Einrichten einer Testumgebung für Hydra"}} hydra/ssh_attack -.-> lab-549921{{"Einrichten einer Testumgebung für Hydra"}} hydra/troubleshooting -.-> lab-549921{{"Einrichten einer Testumgebung für Hydra"}} end

Installation eines lokalen SSH-Servers

In diesem Schritt installieren Sie einen OpenSSH-Server auf Ihrer LabEx-VM. Lassen Sie uns zunächst verstehen, was SSH ist - SSH steht für Secure Shell, ein Netzwerkprotokoll, das einen sicheren Kanal zwischen zwei Computern über ein unsicheres Netzwerk herstellt. Dies ist besonders wichtig, wenn Sie ein System remote zugreifen müssen, während Ihre Kommunikation verschlüsselt bleibt.

Der OpenSSH-Server, den wir installieren, ist die am häufigsten verwendete Implementierung des SSH-Protokolls auf Linux-Systemen. Durch die Einrichtung dieses Servers erstellen we eine kontrollierte Umgebung, in der wir später im Lab sicher Passwort-Cracking-Tools wie Hydra testen können. Dies ähnelt der Vorgehensweise von Sicherheitsexperten, die Systeme in einer sicheren, isolierten Umgebung auf Schwachstellen testen.

  1. Zunächst müssen wir Ihre Paketliste aktualisieren. Dadurch wird sichergestellt, dass Ihr System über die neuesten verfügbaren Versionen der Softwarepakete informiert ist:

    sudo apt update

    Der Befehl sudo gibt Ihnen Administratorrechte, während apt update die Liste der verfügbaren Pakete auf Ihrem System aktualisiert.

  2. Installieren Sie nun das OpenSSH-Server-Paket. Dadurch werden alle erforderlichen Komponenten für die Ausführung eines SSH-Servers heruntergeladen und eingerichtet:

    sudo apt install -y openssh-server

    Das -y-Flag beantwortet automatisch alle Abfragen während der Installation mit "ja", wodurch der Prozess reibungsloser verläuft.

  3. Da wir in einem Docker-Container (einer leichten, isolierten Umgebung) arbeiten, müssen wir den SSH-Dienst manuell starten. Normalerweise würde er automatisch starten, aber wir werden diese Konfiguration später bearbeiten:

    sudo service ssh start
  4. Lassen Sie uns überprüfen, ob der SSH-Server ordnungsgemäß läuft. Dieser Befehl überprüft den aktuellen Status des SSH-Dienstes:

    sudo service ssh status

    Sie sollten eine Ausgabe sehen, die "active (running)" enthält, was bestätigt, dass der Dienst korrekt funktioniert.

  5. Schließlich überprüfen wir, ob der SSH-Server auf dem Standardport (22) lauscht. Ports sind wie Türen, die Dienste zur Kommunikation nutzen, und SSH verwendet traditionell Port 22:

    ss -tulnp | grep sshd

    Der Befehl ss zeigt Socket-Statistiken an, und wir filtern nach SSH-verwandten Einträgen. Sie sollten eine Ausgabe sehen, die zeigt, dass sshd auf *:22 oder 0.0.0.0:22 lauscht, was bedeutet, dass er bereit ist, Verbindungen auf allen Netzwerkschnittstellen anzunehmen.

Konfiguration des SSH-Servers für Tests

In diesem Schritt konfigurieren Sie den SSH-Server, um die Passwortauthentifizierung zu aktivieren, was für Tests mit Hydra in späteren Schritten erforderlich ist. SSH (Secure Shell) ist ein Protokoll, das einen sicheren Remote-Zugriff auf Systeme ermöglicht. Standardmäßig setzen moderne SSH-Konfigurationen die Sicherheit priorisiert und deaktivieren die Passwortauthentifizierung zugunsten der Schlüssel-basierten Authentifizierung. Da Hydra jedoch ein Passwort-Cracking-Tool ist, müssen wir die Passwortauthentifizierung vorübergehend für Testzwecke aktivieren.

  1. Erstellen Sie zunächst eine Sicherungskopie der ursprünglichen SSH-Konfigurationsdatei. Dies ist eine gute Praxis, bevor Sie Änderungen am System vornehmen, da Sie so die ursprünglichen Einstellungen bei Bedarf wiederherstellen können:

    sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
  2. Öffnen Sie die SSH-Server-Konfigurationsdatei zum Bearbeiten. Wir verwenden nano, einen einfachen Texteditor, der für Anfänger geeignet ist. Die Datei enthält alle Einstellungen, die steuern, wie Ihr SSH-Server funktioniert:

    sudo nano /etc/ssh/sshd_config
  3. Suchen Sie die folgenden Zeilen und ändern Sie sie (oder fügen Sie sie hinzu, wenn sie nicht vorhanden sind). Diese Einstellungen aktivieren die Passwortauthentifizierung und ermöglichen den Root-Login, was für unsere Testumgebung erforderlich ist:

    PasswordAuthentication yes
    PermitRootLogin yes
  4. Speichern Sie die Datei (Strg+O, Eingabe) und verlassen Sie nano (Strg+X). Denken Sie daran, dass die Änderungen erst wirksam werden, wenn wir den SSH-Dienst neu starten.

  5. Starten Sie den SSH-Dienst neu, um die Änderungen anzuwenden. Dadurch wird das System angewiesen, die Konfigurationsdatei mit unseren neuen Einstellungen neu zu laden:

    sudo service ssh restart
  6. Überprüfen Sie, ob die neue Konfiguration aktiv ist. Dieser Befehl überprüft die aktuelle SSH-Konfiguration und filtert nach unseren spezifischen Einstellungen, um zu bestätigen, dass sie ordnungsgemäß aktiviert sind:

    sudo sshd -T | grep -E "passwordauthentication|permitrootlogin"

    Sie sollten eine Ausgabe sehen, die bestätigt, dass beide Einstellungen aktiviert sind. Wenn nicht, überprüfen Sie noch einmal, ob Sie die Datei korrekt gespeichert und den Dienst neu gestartet haben.

Erstellung von Testbenutzerkonten

In diesem Schritt erstellen Sie Testbenutzerkonten mit absichtlich schwachen Passwörtern. Diese Konten dienen als Ziele, wenn wir später Hydra verwenden, um SSH-Brute-Force-Angriffe zu demonstrieren. Das Erstellen solcher Testkonten hilft uns, realistische Szenarien sicher zu simulieren, in denen Angreifer schwache Zugangsdaten ausnutzen könnten.

Wir erstellen drei Testbenutzer mit gängigen schwachen Passwörtern. Diese Passwörter sind bewusst einfach, damit Hydra sie während unserer Tests knacken kann. In realen Systemen sollten Sie immer starke, komplexe Passwörter verwenden.

  1. Erstellen Sie drei Testbenutzer mit einfachen Passwörtern (wir verwenden diese für Tests):

    sudo useradd -m -s /bin/bash testuser1
    echo "testuser1:password123" | sudo chpasswd
    
    sudo useradd -m -s /bin/bash testuser2
    echo "testuser2:qwerty" | sudo chpasswd
    
    sudo useradd -m -s /bin/bash testuser3
    echo "testuser3:letmein" | sudo chpasswd

    Der Befehl useradd erstellt jeden Benutzer mit einem Heimatverzeichnis (-m) und setzt ihre Shell auf bash (-s /bin/bash). Der Befehl chpasswd setzt dann das Passwort für jeden Benutzer.

  2. Überprüfen Sie, ob die Benutzer erfolgreich erstellt wurden:

    id testuser1
    id testuser2
    id testuser3

    Der Befehl id zeigt Benutzerinformationen an. Sie sollten eine Ausgabe sehen, die bestätigt, dass jeder Benutzer existiert, einschließlich ihrer Benutzer-ID (UID), Gruppen-ID (GID) und Gruppenmitgliedschaft. Dieser Überprüfungsschritt stellt sicher, dass unsere Testkonten ordnungsgemäß eingerichtet sind, bevor wir fortfahren.

  3. Überprüfen Sie, ob die Passwörter korrekt festgelegt wurden, indem Sie versuchen, in jedes Benutzerkonto zu wechseln (Sie müssen die von Ihnen gerade festgelegten Passwörter eingeben):

    su - testuser1
    exit
    su - testuser2
    exit
    su - testuser3
    exit

    Der Befehl su - username ermöglicht es Ihnen, in ein anderes Benutzerkonto zu wechseln. Nach der Eingabe jedes Passworts sollten Sie kurz sehen, dass sich die Befehlseingabe ändert, um anzuzeigen, dass Sie als dieser Benutzer angemeldet sind. Der Befehl exit bringt Sie zurück in Ihre ursprüngliche Sitzung. Dieser Schritt bestätigt, dass die Passwörter wie erwartet funktionieren.

  4. (Optional) Erstellen Sie eine Textdatei, die die Testzugangsdaten enthält, zur Referenz:

    echo -e "testuser1:password123\ntestuser2:qwerty\ntestuser3:letmein" > ~/project/test_credentials.txt

    Dies erstellt eine Textdatei, die alle Testzugangsdaten im Format Benutzername:Passwort auflistet. Obwohl nicht unbedingt erforderlich, kann diese Referenzdatei bei den Tests hilfreich sein. Das -e-Flag ermöglicht die Interpretation von Backslash-Escapes wie \n für Zeilenumbrüche.

Starten des SSH-Dienstes

In diesem Schritt stellen Sie sicher, dass der SSH-Dienst ordnungsgemäß läuft und so konfiguriert ist, dass er automatisch startet. SSH (Secure Shell) ist ein Netzwerkprotokoll, das einen sicheren Remote-Zugriff zwischen Computern ermöglicht. In unserer Hydra-Testumgebung muss SSH kontinuierlich laufen, damit wir zuverlässig Passwort-Cracking-Tests durchführen können.

  1. Zunächst überprüfen wir, ob der SSH-Dienst derzeit aktiv ist. Dieser Befehl zeigt den aktuellen Status des SSH-Daemons (sshd) an:

    sudo service ssh status

    Wenn er nicht läuft, sehen Sie in der Ausgabe "inactive (dead)". Dies bedeutet, dass der SSH-Dienst derzeit gestoppt ist und keine Verbindungen akzeptiert.

  2. Wenn der Dienst nicht läuft, müssen wir ihn starten. Dieser Befehl initialisiert den SSH-Daemon:

    sudo service ssh start
  3. Nach dem Starten des Dienstes überprüfen wir, ob er ordnungsgemäß läuft. Der Statusbefehl sollte jetzt eine andere Ausgabe zeigen:

    sudo service ssh status

    Sie sollten jetzt in der Ausgabe "active (running)" sehen, was bedeutet, dass der SSH-Dienst bereit ist, Verbindungen anzunehmen.

  4. Da wir in einem Docker-Container (einer leichten, isolierten Umgebung) arbeiten, müssen wir sicherstellen, dass SSH automatisch startet, wenn der Container neu gestartet wird. Diese Zeile fügt einen Startbefehl zu Ihrer bash-Konfigurationsdatei hinzu:

    echo 'sudo service ssh start' >> ~/.bashrc

    Die .bashrc-Datei wird automatisch ausgeführt, wenn Sie eine neue Terminal-Sitzung starten. Somit wird sichergestellt, dass SSH immer startet, wenn der Container hochfährt.

  5. Abschließend bestätigen wir, dass SSH auf dem richtigen Netzwerkport lauscht (Port 22 ist der Standardport für SSH). Dieser Befehl zeigt alle aktiven Netzwerkverbindungen an:

    sudo netstat -tulnp | grep sshd

    Sie sollten eine Ausgabe sehen, die zeigt, dass sshd auf 0.0.0.0:22 lauscht. Dies bedeutet, dass der SSH-Server ordnungsgemäß konfiguriert ist, um Verbindungen von jeder Netzwerkschnittstelle über den Standard-SSH-Port anzunehmen.

Überprüfung der Zugänglichkeit des SSH-Servers

In diesem letzten Schritt überprüfen wir, ob Ihr SSH-Server ordnungsgemäß konfiguriert und zugänglich ist. Dies ist von entscheidender Bedeutung, da Hydra (das Passwort-Cracking-Tool, das wir in späteren Labs verwenden werden) einen funktionierenden SSH-Dienst benötigt, um Tests durchzuführen. Wir führen mehrere Prüfungen durch, um sicherzustellen, dass alles wie erwartet funktioniert.

  1. Zunächst überprüfen wir, ob der SSH-Dienst tatsächlich läuft. Dienste können manchmal nicht starten oder unerwartet abstürzen, daher ist dies unsere erste Grundprüfung:

    sudo service ssh status

    Die Ausgabe sollte deutlich "active (running)" anzeigen. Wenn dies nicht der Fall ist, müssen wir den Dienst vor dem Fortfahren debuggen.

  2. Jetzt testen wir den lokalen SSH-Zugang mit einem der zuvor erstellten Testkonten. Dies simuliert, wie Hydra versuchen wird, eine Verbindung herzustellen:

    ssh testuser1@localhost

    Wenn Sie dazu aufgefordert werden, geben Sie das Passwort "password123" ein (das, das wir zuvor festgelegt haben). Nach erfolgreicher Anmeldung geben Sie exit ein, um zur Hauptsitzung zurückzukehren. Dies bestätigt, dass die grundlegende Passwortauthentifizierung funktioniert.

  3. Wir testen speziell die Passwortauthentifizierung (da Hydra hauptsächlich Passwörter per Brute-Force angreift). Wir zwingen SSH, die Passwortauthentifizierung zu verwenden und geben absichtlich ein falsches Passwort ein:

    ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no testuser1@localhost

    Geben Sie beim Auffordernd ein beliebiges falsches Passwort ein. Der Server sollte die Verbindung ablehnen, was das erwartete Verhalten ist, das wir sehen möchten.

  4. Als Nächstes überprüfen wir, ob der SSH-Server auf der richtigen Netzwerkschnittstelle und dem richtigen Port lauscht. Dies stellt sicher, dass Remote-Verbindungen (z.B. von Hydra) den Dienst erreichen können:

    sudo netstat -tulnp | grep sshd

    Sie sollten sehen, dass sshd auf 0.0.0.0:22 lauscht, was bedeutet, dass es Verbindungen von jeder Netzwerkschnittstelle über den Standard-SSH-Port (22) akzeptiert.

  5. Abschließend untersuchen wir die Authentifizierungs-Logs, um unsere Testversuche aufgezeichnet zu sehen. Logs sind wertvoll für die Fehlersuche und das Verständnis, was im Hintergrund passiert:

    sudo tail -n 10 /var/log/auth.log

    Suchen Sie nach Einträgen, die Ihre erfolgreiche Anmeldung (Schritt 2) und Ihren fehlgeschlagenen Versuch (Schritt 3) anzeigen. Diese Logs werden auch später bei der Analyse der Angriffsversuche von Hydra wichtig sein.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie eine Testumgebung für Hydra einrichten, indem Sie einen OpenSSH-Server auf einer LabEx-VM installieren und konfigurieren. Der Prozess umfasste das Aktualisieren von Paketen, die Installation des SSH-Servers und die Überprüfung seines Betriebszustands, während Sie die Authentifizierungseinstellungen für Testzwecke konfigurierten.

Sie haben auch das Erstellen von Testbenutzerkonten geübt, um reale Szenarien zu simulieren, und die Umgebung für Passwort-Sicherheitstests vorbereitet. Dieses Lab bot wertvolle praktische Erfahrungen bei der Konfiguration von SSH-Servern und der Einrichtung kontrollierter Umgebungen für die Experimentierung mit Sicherheitstools.