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.
Verwenden von Sucrack für einen Brute-Force-Angriff auf das Root-Passwort ü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
sucrackherunter und laden Sie ihn auf die Zielmaschine hoch. Kompilieren und führen Sie ihn dann aus. - Laden Sie den Quellcode von
sucrackherunter, 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.
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/projectFühren Sie das Skript
env_setup_1.shaus, um die Lab-Umgebung einzurichten:./env_setup_1.shDieses Skript wechselt uns zum unprivilegierten Benutzer
www-data. Unser Ziel ist es, das Passwort desroot-Benutzers per Brute-Force zu ermitteln.Wir haben eine vordefinierte Wortliste unter
/tmp/common-wordlists.txtfür Demonstrationszwecke. Sie können auch Ihre eigene Wortliste verwenden.Die Syntax für den Brute-Force-Angriff auf den
su-Befehl mitsucracklautet: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, versuchtsucrackstandardmäßig, das Passwort desroot-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 && resetDie Ausgabe des Brute-Force-Angriffs wird in die Datei
sucrack.logumgeleitet.Hinweis: Der
reset-Befehl wird verwendet, um den Terminalbildschirm zu löschen, da manchmal nach der Verwendung vonsucrackder Terminal nicht richtig angezeigt wird.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.logErwartete Ausgabe:
password is: reallyAnschließend können wir zum Root-Benutzer wechseln, indem wir Folgendes eingeben:
su - rootGeben Sie das Passwort
reallyein, um zum Root-Benutzer zu wechseln.reallyErstellen Sie eine Datei namens
success_1.txtim Verzeichnis/root, um zu bestätigen, dass Sie erfolgreich zum Root-Benutzer gewechselt sind:echo "Success_1" > /root/success_1.txtSie 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!
Verwenden von Hydra für einen Brute-Force-Angriff auf das Root-Passwort ü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
Stellen Sie sicher, dass das Verzeichnis auf
/home/labex/projectfestgelegt ist:cd /home/labex/projectFühren Sie das Skript
env_setup_2.shaus, um die Lab-Umgebung einzurichten:./env_setup_2.shWie im vorherigen Schritt werden Sie nach der Ausführung dieses Skripts zum Benutzer
www-datawechseln.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 permitrootloginWenn die Ausgabe zeigt, dass
PermitRootLoginaufyesgesetzt ist, können Sie mit dem Brute-Force-Angriff fortfahren. Andernfalls ist es nicht notwendig, es zu versuchen.Das Tool, das wir für den Brute-Force-Angriff auf das SSH-Protokoll verwenden werden, ist
hydra.hydraist ein bekanntes Brute-Force-Tool, das verschiedene Protokolle unterstützt, darunter RDP, SMB, HTTP, MySQL und viele andere.hydraist auf Kali Linux und in unserer Lab-Umgebung auf Ubuntu vorinstalliert.Die Syntax für den Brute-Force-Angriff auf das SSH-Protokoll mit
hydralautet:hydra -l root -P passwords.txt -t 4 -V < IP > sshDie 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.txtper Brute-Force zu ermitteln und die Ausgabe in die Dateihydra.logzu speichern:hydra -l root -P /tmp/common-wordlists.txt -t 64 -V 127.0.0.1 ssh > ~/hydra.logNach 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.logBeispielausgabe:
... [22][ssh] host: 127.0.0.1 login: root password: penguin 1 of 1 target successfully completed, 1 valid password found ...Jetzt, da wir das Passwort des Root-Benutzers haben, können wir zum Root-Benutzer wechseln, indem wir den folgenden Befehl ausführen:
su - rootGeben Sie das Passwort
penguinein, um zum Root-Benutzer zu wechseln.penguinSie sollten jetzt der Root-Benutzer sein. Sie können dies bestätigen, indem Sie den folgenden Befehl ausführen:
whoamiDie Ausgabe sollte
rootsein.Erstellen Sie eine Datei namens
success_2.txtim Verzeichnis/root, um zu bestätigen, dass Sie erfolgreich zum Root-Benutzer gewechselt sind:echo "Success_2" > /root/success_2.txtSie 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.