🐧 Linux

SSH Brute-Force mit Hydra: Ein Praxis-Guide für dein Homelab

SSH Brute-Force mit Hydra: Ein Praxis-Guide für dein Homelab
⚠️ Hinweis: Alle Guides auf smoth.me dienen ausschließlich zu Informations- und Lernzwecken. Die Umsetzung erfolgt auf eigene Gefahr. Wir übernehmen keine Haftung für Schäden, Datenverluste oder Systemausfälle, die durch die Anwendung dieser Anleitungen entstehen können. → Vollständiger Haftungsausschluss

Moin, liebe smoth.me-Community! Als jemand, der seit Jahren mit Proxmox, Docker-Containern und der ganzen Homelab-Spielwiese jongliert, stoße ich immer wieder auf das Thema Sicherheit. Und oft genug muss ich schmunzeln, wenn ich sehe, wie leicht selbst erfahrene Leute manchmal die grundlegendsten Dinge vergessen. Heute tauchen wir mal in die Welt der SSH Brute-Force-Angriffe ein. Aber keine Sorge, es geht hier nicht darum, Schaden anzurichten, sondern darum, zu verstehen, wie Angreifer ticken, damit du deine eigenen Systeme besser schützen kannst. Wir nutzen dafür ein echtes Schwergewicht: Hydra.

In meiner Erfahrung ist es Gold wert, die Tools und Techniken der "Gegenseite" zu kennen. Nur so kannst du deine Verteidigung wirklich wasserdicht machen. Ich zeige dir heute, wie du einen SSH-Server mit Hydra angreifen kannst. Das ist ein absolutes Basics im Penetration Testing und ein Muss für jeden, der seine Homelab-Umgebung ernsthaft absichern will.

Voraussetzungen für deinen ersten Brute-Force-Angriff

Bevor wir loslegen, lass uns kurz klären, was du brauchst. Nichts ist ärgerlicher, als mitten im Prozess festzustellen, dass eine Kleinigkeit fehlt:

  • Ein Penetration Testing OS: Ich nutze dafür meistens Parrot OS, aber Kali Linux ist genauso gut geeignet. Beide kommen mit Hydra vorinstalliert und bieten eine hervorragende Umgebung für solche Tests. Installiere es am besten in einer VM auf deinem Proxmox-Server oder als Dual-Boot, wenn du ein dediziertes Pentest-Notebook hast.
  • Ein Ziel-SSH-Server: Das ist ganz wichtig: Nutze ausschließlich Systeme, für die du die explizite Erlaubnis zum Testen hast! Im Homelab empfehle ich dir, eine separate VM (z.B. Ubuntu Server) aufzusetzen, SSH zu aktivieren und ein paar Testbenutzer mit schwachen Passwörtern anzulegen. Eine IP wie 192.168.1.100 ist hier ein guter Startpunkt.
  • Netzwerkverbindung: Dein Angreifer-System (Parrot/Kali) muss den Ziel-SSH-Server erreichen können. Prüfe das vorab mit einem einfachen ping.
  • Grundlagenkenntnisse Linux-Terminal: Du solltest dich im Terminal wohlfühlen und wissen, wie man Dateien erstellt und bearbeitet.

Mein Tipp: Fang klein an. Eine frische Ubuntu-VM mit SSH und einem Benutzer namens testuser mit Passwort password123 ist perfekt, um die ersten Schritte zu üben. So kannst du nichts kaputt machen und lernst die Funktionsweise von Hydra optimal kennen.

Was ist Hydra und warum ist es so mächtig?

Hydra ist ein Multi-Service Login Hacker, der verschiedene Protokolle (SSH, FTP, HTTP, SMB, VNC, etc.) unterstützt, um Brute-Force-Angriffe durchzuführen. Es ist ein echtes Schweizer Taschenmesser für Penetration Tester, weil es nicht nur schnell ist, sondern auch unglaublich flexibel in der Konfiguration. Es kann Benutzernamen und Passwörter aus Listen durchprobieren oder auch nur ein Passwort gegen eine Liste von Benutzernamen testen. Diese Flexibilität macht es zu einem der beliebtesten Tools in diesem Bereich.

Schritt-für-Schritt: SSH-Server mit Hydra knacken (im Homelab!)

Bereit? Dann legen wir los. Ich zeige dir jetzt die genauen Schritte, die ich selbst immer wieder anwende, um die Sicherheit meiner Homelab-Server zu überprüfen.

Schritt 1: Das Ziel vorbereiten (und die Ethik im Blick behalten!)

Wie bereits erwähnt, ist ein legitimes Ziel das A und O. Richte eine VM mit einem Linux-System deiner Wahl ein (z.B. Debian oder Ubuntu Server). Stelle sicher, dass der SSH-Dienst läuft. Auf den meisten Systemen ist das standardmäßig der Fall, aber ein schneller Check schadet nie:

sudo systemctl status ssh

Wenn er nicht läuft, startest du ihn so:

sudo systemctl start ssh

Lege nun einen Benutzer an, den Hydra finden soll. Für diesen Guide nehmen wir an, wir haben einen Benutzer smothuser mit einem sehr einfachen Passwort wie homelab123. In der Realität willst du natürlich viel komplexere Passwörter haben!

sudo adduser smothuser

Folge den Anweisungen und vergib ein Passwort. Merke dir die IP-Adresse deines Ziel-Servers. Für unser Beispiel nehmen wir 192.168.1.100.

Schritt 2: Wordlists erstellen

Der Kern eines jeden Brute-Force-Angriffs sind die Wordlists. Das sind einfache Textdateien, die potenzielle Benutzernamen und Passwörter enthalten. Die Qualität deiner Wordlists entscheidet maßgeblich über den Erfolg deines Angriffs. Wer das zum ersten Mal einrichtet, stolpert oft über leere oder falsch formatierte Listen.

Benutzerliste erstellen (userlist.txt)

Erstelle eine Datei namens userlist.txt in deinem Kali/Parrot-Terminal. Diese Datei enthält die Benutzernamen, die Hydra ausprobieren soll. In einem echten Szenario könntest du diese Liste durch OSINT (Open Source Intelligence) oder andere Reconnaissance-Techniken erstellen.

nano userlist.txt

Füge hier pro Zeile einen Benutzernamen ein. Für unser Beispiel:

root
admin
testuser
smothuser
user
pi

Speichere die Datei (Strg+O, Enter, Strg+X).

Passwortliste erstellen (passwordlist.txt)

Nun brauchst du eine Passwortliste. Hier wird es interessant. Für Testzwecke kannst du eine kleine, eigene Liste erstellen. In der Praxis greift man oft auf riesige Listen wie rockyou.txt zurück, die leider viel zu oft erfolgreich sind.

nano passwordlist.txt

Füge hier pro Zeile ein potenzielles Passwort ein. Unser schwaches Testpasswort homelab123 muss natürlich dabei sein, damit wir Erfolg haben!

password
123456
homelab
homelab123
admin
root
changeme

Speichere die Datei (Strg+O, Enter, Strg+X).

Mein Tipp: Für realistische Tests, schau dir die integrierten Wordlists in Kali/Parrot an, oft unter /usr/share/wordlists/. Entpacke zum Beispiel rockyou.txt.gz mit gunzip /usr/share/wordlists/rockyou.txt.gz.

Schritt 3: Hydra starten und den SSH-Server angreifen

Jetzt kommt der spannende Teil: Wir lassen Hydra auf den SSH-Server los! Öffne ein Terminal auf deinem Kali- oder Parrot-System.

Der grundlegende Befehl für Hydra sieht so aus:

hydra -L userlist.txt -P passwordlist.txt 192.168.1.100 ssh

Lass uns diesen Befehl mal auseinandernehmen, denn jeder Parameter ist wichtig:

  • hydra: Ruft das Tool auf.
  • -L userlist.txt: Teilt Hydra mit, dass es die Benutzernamen aus der Datei userlist.txt verwenden soll.
  • -P passwordlist.txt: Gibt an, dass die Passwörter aus der Datei passwordlist.txt gelesen werden sollen.
  • 192.168.1.100: Das ist die IP-Adresse deines Ziel-SSH-Servers. Ersetze sie durch die tatsächliche IP deines Testsystems.
  • ssh: Definiert das Protokoll, das Hydra angreifen soll. In unserem Fall ist das SSH.

Das hat mir viel Zeit gespart: Wenn du nicht nur die erfolgreichen Logins, sondern auch detailliertere Informationen über den Fortschritt sehen möchtest, füge die Optionen -vV hinzu. Das steht für "verbose" (ausführlich) und "very verbose". Das ist super hilfreich, um zu sehen, was Hydra gerade macht und ob es vielleicht hängen bleibt.

hydra -L userlist.txt -P passwordlist.txt -vV 192.168.1.100 ssh

Manchmal willst du auch die Anzahl der gleichzeitigen Verbindungen (Tasks) begrenzen oder erhöhen. Das geht mit -t. Standardmäßig versucht Hydra, eine optimale Anzahl zu finden, aber auf langsameren Netzwerken oder wenn das Ziel zu viele Verbindungen blockiert, kann es sinnvoll sein, diesen Wert anzupassen. Ein Wert von 4 oder 8 ist oft ein guter Startpunkt, um nicht sofort aufzufallen oder das Ziel zu überlasten.

hydra -L userlist.txt -P passwordlist.txt -t 4 -vV 192.168.1.100 ssh

Schritt 4: Ergebnisse interpretieren

Wenn Hydra erfolgreich ist, wird es dir die gefundenen Zugangsdaten direkt im Terminal ausgeben. Das sieht dann in etwa so aus:

[STATUS] 1 of 1 target completed, 1 valid password found
[DATA] host: 192.168.1.100 login: smothuser password: homelab123

Glückwunsch! Du hast erfolgreich gezeigt, dass dein Test-SSH-Server mit diesen Zugangsdaten anfällig ist. Das ist der Moment, wo du in einem echten Szenario aufhören und die Schwachstelle melden würdest. In deinem Homelab ist es der Punkt, an dem du deine Sicherheitspraktiken überdenken solltest.

Häufige Fehler und Lösungen

In meiner Laufbahn als Admin bin ich über so ziemlich jeden Stein gestolpert, den es gibt. Hier sind ein paar typische Probleme, die beim Einsatz von Hydra auftreten können, und wie du sie löst:

  • Ziel-Host nicht erreichbar oder SSH-Dienst nicht aktiv

    Problem: Hydra läuft ewig, findet nichts und gibt am Ende Fehlermeldungen wie "Connection refused" oder "No route to host" aus.

    Lösung: Das ist der Klassiker. Erstens, überprüfe die IP-Adresse deines Ziel-Servers. Ist sie korrekt? Zweitens, ist der SSH-Dienst auf dem Ziel auch wirklich gestartet und lauscht auf dem Standardport (22)? Ein ping 192.168.1.100 und ein nmap -p 22 192.168.1.100 von deinem Angreifer-System aus können hier schnell Klarheit schaffen. Wenn Nmap Port 22 als "closed" oder "filtered" anzeigt, liegt es an der Firewall des Ziels oder der SSH-Dienst läuft nicht.

  • Falsche Wordlist-Pfade oder leere Listen

    Problem: Hydra meldet "No passwords loaded" oder "No usernames loaded" oder findet einfach nichts, obwohl du dir sicher bist, dass das Passwort in der Liste ist.

    Lösung: Überprüfe die Pfade zu deinen userlist.txt und passwordlist.txt. Bist du im richtigen Verzeichnis, oder musst du den vollen Pfad angeben (z.B. /home/kali/userlist.txt)? Öffne die Dateien auch nochmal mit cat userlist.txt und cat passwordlist.txt, um sicherzustellen, dass sie nicht leer sind und die Einträge korrekt, jeweils in einer neuen Zeile, stehen. Manchmal schleicht sich ein unsichtbares Zeichen ein, das Hydra irritiert.

  • Ziel-Server blockiert nach zu vielen Fehlversuchen

    Problem: Hydra startet, macht ein paar Versuche und stoppt dann abrupt oder meldet "Connection timed out" für alle weiteren Versuche.

    Lösung: Viele SSH-Server haben Mechanismen wie Fail2Ban oder ähnliche Tools aktiviert, die IPs blockieren, die zu viele fehlgeschlagene Login-Versuche in kurzer Zeit produzieren. Das ist eine gute Schutzmaßnahme! In deinem Homelab kannst du entweder Fail2Ban auf deinem Ziel-Server temporär deaktivieren (nur für Tests!) oder die Anzahl der gleichzeitigen Tasks (-t Parameter) in Hydra stark reduzieren und längere Pausen zwischen den Versuchen einlegen (-w für Wartezeit in Sekunden). Wenn du blockiert wurdest, musst du entweder eine neue Angreifer-IP verwenden, oder warten, bis die Blockade abläuft.

Fazit und nächste Schritte

Du hast jetzt gesehen, wie einfach es sein kann, einen SSH-Server per Brute-Force anzugreifen, wenn schwache Passwörter oder leicht zu erratende Benutzernamen im Spiel sind. Das ist eine der grundlegendsten, aber auch effektivsten Angriffsmethoden. Und genau deshalb ist es so wichtig, diese Technik zu verstehen.

Was lernen wir daraus für unsere Homelab-Umgebung?

  • Starke Passwörter sind Pflicht: Nutze Passwortmanager und generiere lange, komplexe Passwörter.
  • SSH-Key-Authentifizierung: Das ist der Goldstandard! Deaktiviere die Passwort-Authentifizierung komplett und nutze nur noch SSH-Keys. Das macht Brute-Force-Angriffe dieser Art nahezu unmöglich.
  • Fail2Ban einrichten: Ein absolutes Muss für jeden öffentlich erreichbaren Server. Es blockiert automatisch IPs, die sich verdächtig verhalten.
  • Root-Login deaktivieren: Melde dich niemals direkt als root über SSH an. Nutze einen normalen Benutzer und wechsle dann mit sudo zu Root-Rechten.
  • Standard-SSH-Port ändern: Port 22 ist der Standard. Ändere ihn auf einen unüblichen Port. Das ist zwar keine Sicherheitsmaßnahme im eigentlichen Sinne (ein Scanner findet den neuen Port trotzdem), aber es reduziert den Lärm von automatisierten Scans erheblich.

Dieses Wissen solltest du jetzt nutzen, um deine eigenen Systeme zu härten. Spiele weiter mit Hydra, probiere andere Protokolle aus (FTP, HTTP-Auth) und lerne die Grenzen und Möglichkeiten dieses mächtigen Tools kennen. Aber immer schön im eigenen Homelab und mit klarer Erlaubnis! Die Reise in die Welt der IT-Sicherheit hat gerade erst begonnen!

Weitere Guides aus "Linux"

LLMs im Heimlabor: Destillierte Modelle effizient betreiben
Dieser Guide zeigt dir, wie du mit Ollama und Docker destillierte Large Language Models (LLMs) effiz…
RxDB 17 im Heimlab: Serverless Daten verstehen & nutzen
Dieser Guide erklärt RxDB 17 und seine serverless Synchronisationsfähigkeiten für Home Lab-Enthusias…
Malware-Alarm: So schützt du dein Heimnetz vor infizierten npm-Paketen
Dieser Guide zeigt dir, wie du auf den jüngsten axios-Malware-Vorfall reagierst, betroffene Systeme …
Raspberry Pi: Optimaler Dauerbetrieb trotz steigender Kosten
Dieser Guide zeigt, wie du deinen Raspberry Pi für den effizienten und langlebigen Betrieb von Diens…