Ich arbeite an einem Exploit für einen Sicherheitskurs. Ziel ist es, eine Root-Shell in einer virtuellen Linux-Maschine zu erhalten. Bisher kann ich in /etc/passwd schreiben und das Root-Passwort in eine beliebige Zeichenfolge ändern.
Jetzt möchte ich su verwenden, um die Root-Shell zu erhalten. Da mein Exploit automatisiert sein muss, kann er nicht nach einem Passwort fragen und die VM hat expect nicht installiert. Hat jemand eine Idee, wie ich das Passwort an den su-Befehl übergeben kann? Oder gibt es einen besseren Weg?
Antwort1
Diese Art der Eingabe lässt sich am besten automatisieren, indem Sie expect
oder besser verwenden pexpect
. Die meisten Server werden, zumindest in modernen Distributionen, mit Python ausgeliefert.
Zunächst einmal sagten Sie, Ihre VM sei nicht expect
installiert? Ich bin mir nicht sicher, warum das wichtig ist. Gibt es einen Grund, warum Sie unter Ihrem lokalen Konto nichts installieren/ausführen können?
Nächste Überlegung: Warum müssen Sie überhaupt ??? verwenden passwd
? Sie können ein Passwort auch ändern, indem Sie den in angegebenen Hash ersetzen /etc/shadow
. Natürlich müssen Sie zuerst einen Hash korrekt vorgenerieren, aber solange Sie einen unterstützten verwenden, sollte es wie erwartet funktionieren. Wie Sie eine solche Aktion nun skripten, müssen Sie selbst herausfinden.
Ich möchte auch erwähnen, passwd
dass es seine Eingabe nicht von STDIN liest. Wenn ich mich nicht irre, liest es von einem TTY. Also würde keine ausgefallene Kombination aus nur echo
und sleep
funktionieren. Es ist jedoch möglich, ein HEREDOC zu verwenden, setzt aber voraus, dass das System ausreichend reagiert. Möglicherweise können Sie es aufteilen und sleep
zwischen Einträgen aufteilen. Ich habe das gerade getestet, es hat auf meiner Ubuntu-Workstation funktioniert.
#!/bin/bash
passwd root <<'EOF'
newpassword
newpassword
EOF
Antwort2
Ihr Exploit könnte auch in die Gruppendatei schreiben und den aktuellen Benutzer zu einem Teil der Gruppe „Wheel“ machen (oder zu einer Gruppe, die sudo
Befehle ohne Passwort ausführen kann). Dann können Sie sudo su root
(oder jeder andere Benutzer) ohne Passwort arbeiten.
Durch Ausführen visudo
sollten Sie einige Hinweise zur Einrichtung der „Rad“-Gruppe auf Ihrem Computer erhalten.
Zur Klarstellung: Sobald ein Benutzer Teil der Wheel-Gruppe wird, kann er Sudo-Befehle ausführen, ohne ein Kennwort einzugeben.