运行 自己或其他程序作为 sudo 一旦我的 Python 脚本知道密码?

Running self or other program as sudo once my Python script knows the password?

我正在研究 Linux 加固,发现脚本一旦知道用户的 sudo 密码就可以升级到 root。

我想做一个POC。

Python 脚本如何在知道 sudo password 后自行升级为 root?我假设我必须使用 subprocesses.

我问的不是获取密码。您必须假设我的脚本已经通过此处提到的任何方法获得了密码 https://superuser.com/a/793241

如果你走 subprocess 路线,那么你可以在 sudo 上使用 -S 标志,这样你就可以通过 stdin 传递密码:

p = subprocess.Popen(['sudo', '-S', 'python', 'my_script.py'], stdin=subprocess.PIPE)
p.communicate(b'thesudopassword\n')

不过,据我所知,无法将当前 运行 进程的 UID 提升为 root。以 root 身份启动新的 Python 或其他进程可能会容易得多,如示例中所示。