Brute-Force-Angriff auf das Root-Passwort in Linux mit Sucrack und Hydra

Beginner

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

Einführung

In diesem Lab werden wir zwei Methoden und die entsprechenden Tools zur Ermittlung des Root-Benutzerpassworts durch Brute-Force-Angriffe auf Linux-Systemen untersuchen. Dieses Lab hilft Ihnen, die zugrunde liegenden Prinzipien zu verstehen und häufige Fallstricke während des Prozesses zu vermeiden.


Skills Graph

Verwendung von sucrack zum Brute-Force des Root-Passworts über den su-Befehl

In diesem Schritt werden Sie lernen, wie Sie das sucrack-Tool verwenden, um das Passwort des Root-Benutzers durch einen Brute-Force-Angriff über den su-Befehl zu ermitteln.

Der su-Befehl wird auf Linux-Systemen verwendet, um die Identität auf einen anderen Benutzer zu ändern. Mit Ausnahme des Root-Benutzers müssen andere Benutzer bei der Verwendung dieses Befehls das Passwort des Zielbenutzers angeben.

Das Tool, das wir für den Brute-Force-Angriff auf den su-Befehl verwenden werden, ist sucrack. sucrack ist ein mehrthreadiges Linux-Tool, das entwickelt wurde, um lokale Benutzerpasswörter über den su-Befehl per Brute-Force zu ermitteln.

Da der su-Befehl Benutzereingaben aus einer TTY-Shell erfordert, kann ein einfaches Shellskript den Brute-Force-Angriff nicht ausführen. sucrack ist in der Programmiersprache C geschrieben und unterstützt Mehrthreading, was den Brute-Force-Prozess sehr effizient macht.

Sie können die offizielle Website von sucrack für weitere Informationen besuchen.

In einer realen Umgebung kann es vorkommen, dass die Zielmaschine keinen Internetzugang hat. Daher können Sie sucrack mit einer der folgenden beiden Methoden installieren:

  • Laden Sie den Quellcode von sucrack herunter und laden Sie ihn auf die Zielmaschine hoch. Kompilieren und führen Sie ihn dann aus.
  • Laden Sie den Quellcode von sucrack herunter, kompilieren Sie ihn lokal und laden Sie dann die kompilierte Binärdatei auf die Zielmaschine hoch.

In diesem Lab haben wir sucrack bereits für Sie installiert.

  1. Bevor Sie den Brute-Force-Angriff versuchen, richten wir die Lab-Umgebung ein:

    Öffnen Sie ein Terminal und navigieren Sie in das Projektverzeichnis:

    cd /home/labex/project

    Führen Sie das Skript env_setup_1.sh aus, um die Lab-Umgebung einzurichten:

    ./env_setup_1.sh

    Dieses Skript wechselt uns zum unprivilegierten Benutzer www-data. Unser Ziel ist es, das Passwort des root-Benutzers per Brute-Force zu ermitteln.

    Wir haben eine vordefinierte Wortliste unter /tmp/common-wordlists.txt für Demonstrationszwecke. Sie können auch Ihre eigene Wortliste verwenden.

  2. Die Syntax für den Brute-Force-Angriff auf den su-Befehl mit sucrack lautet:

    sucrack -w <threads> [-u <username>] <wordlist>

    Die Parameter sind:

    • -w: Gibt die Anzahl der Threads an
    • <wordlist>: Gibt die Wortlisten-Datei an
    • -u: Gibt den Benutzer an, dessen Passwort per Brute-Force ermittelt werden soll. Wenn Sie keinen Benutzernamen angeben, versucht sucrack standardmäßig, das Passwort des root-Benutzers zu ermitteln.

    Versuchen wir, einen Brute-Force-Angriff durchzuführen, indem wir den folgenden Befehl ausführen:

    sucrack -w 20 /tmp/common-wordlists.txt > ~/sucrack.log && reset

    Die Ausgabe des Brute-Force-Angriffs wird in die Datei sucrack.log umgeleitet.

    Hinweis: Der reset-Befehl wird verwendet, um den Terminalbildschirm zu löschen, da manchmal nach der Verwendung von sucrack der Terminal nicht richtig angezeigt wird.

  3. Dieser Brute-Force-Angriff kann einige Zeit in Anspruch nehmen. Nach einer gewissen Zeit überprüfen Sie die Datei sucrack.log, um das Passwort zu bestätigen:

    cat ~/sucrack.log

    Erwartete Ausgabe:

    password is: really
  4. Anschließend können wir zum Root-Benutzer wechseln, indem wir Folgendes eingeben:

    su - root

    Geben Sie das Passwort really ein, um zum Root-Benutzer zu wechseln.

    really
  5. Erstellen Sie eine Datei namens success_1.txt im Verzeichnis /root, um zu bestätigen, dass Sie erfolgreich zum Root-Benutzer gewechselt sind:

    echo "Success_1" > /root/success_1.txt

    Sie können die Datei /root/success_1.txt überprüfen, um zu bestätigen, dass Sie erfolgreich zum Root-Benutzer gewechselt sind.

Sie haben gelernt, wie Sie sucrack verwenden, um das Passwort des Root-Benutzers per Brute-Force zu ermitteln!

Verwendung von hydra zum Brute-Force des Root-Passworts über SSH

In diesem Schritt werden Sie lernen, wie Sie das hydra-Tool verwenden, um das Passwort des Root-Benutzers durch einen Brute-Force-Angriff über das SSH-Protokoll zu ermitteln.

Nach dem vorherigen Schritt sollten Sie immer noch als Root-Benutzer angemeldet sein. Für diesen Schritt müssen Sie jedoch zum Benutzer labex wechseln. Sie können zum Benutzer labex wechseln, indem Sie den folgenden Befehl ausführen:

su - labex
  1. Stellen Sie sicher, dass das Verzeichnis auf /home/labex/project festgelegt ist:

    cd /home/labex/project

    Führen Sie das Skript env_setup_2.sh aus, um die Lab-Umgebung einzurichten:

    ./env_setup_2.sh

    Wie im vorherigen Schritt werden Sie nach der Ausführung dieses Skripts zum Benutzer www-data wechseln.

  2. Bevor Sie einen Brute-Force-Angriff auf das SSH-Protokoll versuchen, müssen Sie überprüfen, ob die Zielmaschine es dem Root-Benutzer erlaubt, sich über SSH anzumelden. Sie können dies überprüfen, indem Sie den folgenden Befehl ausführen:

    cat /etc/ssh/sshd_config | grep -i permitrootlogin

    Wenn die Ausgabe zeigt, dass PermitRootLogin auf yes gesetzt ist, können Sie mit dem Brute-Force-Angriff fortfahren. Andernfalls ist es nicht notwendig, es zu versuchen.

  3. Das Tool, das wir für den Brute-Force-Angriff auf das SSH-Protokoll verwenden werden, ist hydra. hydra ist ein bekanntes Brute-Force-Tool, das verschiedene Protokolle unterstützt, darunter RDP, SMB, HTTP, MySQL und viele andere. hydra ist auf Kali Linux und in unserer Lab-Umgebung auf Ubuntu vorinstalliert.

    Die Syntax für den Brute-Force-Angriff auf das SSH-Protokoll mit hydra lautet:

    hydra -l root -P passwords.txt -t 4 -V < IP > ssh

    Die Parameter sind:

    • -l: Gibt den Benutzernamen an
    • -P: Gibt die Wortlisten-Datei an
    • -t: Gibt die Anzahl der Threads an
    • -V: Zeigt den Fortschritt und die Details des Brute-Force-Angriffs an

    Versuchen wir, das Passwort des Root-Benutzers mit der Wortliste /tmp/common-wordlists.txt per Brute-Force zu ermitteln und die Ausgabe in die Datei hydra.log zu speichern:

    hydra -l root -P /tmp/common-wordlists.txt -t 64 -V 127.0.0.1 ssh > ~/hydra.log

    Nach einiger Zeit wird das Passwort des Root-Benutzers erfolgreich geknackt.

    Überprüfen Sie die Datei hydra.log, um das Passwort zu bestätigen:

    cat ~/hydra.log

    Beispielausgabe:

    ...
    [22][ssh] host: 127.0.0.1   login: root   password: penguin
    1 of 1 target successfully completed, 1 valid password found
    ...
  4. Jetzt, da wir das Passwort des Root-Benutzers haben, können wir zum Root-Benutzer wechseln, indem wir den folgenden Befehl ausführen:

    su - root

    Geben Sie das Passwort penguin ein, um zum Root-Benutzer zu wechseln.

    penguin

    Sie sollten jetzt der Root-Benutzer sein. Sie können dies bestätigen, indem Sie den folgenden Befehl ausführen:

    whoami

    Die Ausgabe sollte root sein.

  5. Erstellen Sie eine Datei namens success_2.txt im Verzeichnis /root, um zu bestätigen, dass Sie erfolgreich zum Root-Benutzer gewechselt sind:

    echo "Success_2" > /root/success_2.txt

    Sie können die Datei /root/success_2.txt überprüfen, um zu bestätigen, dass Sie erfolgreich zum Root-Benutzer gewechselt sind.

Hinweis: Wenn Sie eine Version von hydra älter als v9.0 verwenden, kann es beim Brute-Force-Angriff auf das SSH-Protokoll zu falschen Positiven kommen. Sie können die hydra-Version überprüfen, indem Sie hydra -v ausführen.

Zusammenfassung

In diesem Lab haben wir zwei Methoden kennengelernt, um das Passwort des Root-Benutzers auf Linux-Systemen per Brute-Force zu ermitteln: über den su-Befehl mit dem sucrack-Tool und über das SSH-Protokoll mit dem hydra-Tool. Wir haben die Installation, die Verwendung und die schrittweisen Vorgehensweisen für jede Methode behandelt, um Ihnen zu helfen, die zugrunde liegenden Prinzipien zu verstehen und häufige Fallstricke zu vermeiden. Dieses Lab bietet wertvolle praktische Erfahrungen in Techniken zur Privilegiensteigerung, die in verschiedenen Szenarien angewendet werden können.