Wie kann ich das Passwort automatisch an 'su' übergeben?

Wie kann ich das Passwort automatisch an 'su' übergeben?

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 expectoder besser verwenden pexpect. Die meisten Server werden, zumindest in modernen Distributionen, mit Python ausgeliefert.

Zunächst einmal sagten Sie, Ihre VM sei nicht expectinstalliert? 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, passwddass 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 echound sleepfunktionieren. 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 sleepzwischen 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 sudoBefehle ohne Passwort ausführen kann). Dann können Sie sudo su root(oder jeder andere Benutzer) ohne Passwort arbeiten.

Durch Ausführen visudosollten 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.

verwandte Informationen