如果我们不使用 sudoedit 会发生什么坏事?

fre*_*ion 6 security sudo sudoedit

我们知道使用 sudoedit 更安全*,但是如果我们在 sudoers 中有以下内容会发生什么坏事?

Cmnd_Alias FOO = /bin/ed, /usr/bin/ed, /usr/bin/vi
foouser LOCALHOST = NOPASSWD: NOEXEC: FOO
Run Code Online (Sandbox Code Playgroud)

“foouser”可以转义到 root 提示符吗?- 当然,除此之外,他现在可以编辑 /etc/shadow 文件,将自定义密码散列添加到 root 用户,在大约 3 秒内成为 root..

也许一些魔法使用 LD_PRELOAD 和 ed?具体如何?

*=sudo ed 将以 root 身份运行。但是 sudoedit 将以给定用户身份运行,编辑后的文件将在编辑之前/之后复制。

gol*_*cks 8

“foouser”可以转义到 root 提示符吗?

据推测 foouser 现在可以打开任何系统二进制文件并将其完全“编辑”为其他内容,从而留下 foouser 可以想象的任何类型的安全漏洞。如果您对 setuid 二进制文件(例如 )执行此操作,则这具有特别的潜力passwd,因为这意味着非 root 用户可以使用它来执行不打算执行的特权操作。

除此之外,他现在可以编辑 /etc/shadow 文件以放置自定义密码哈希

或者只是删除哈希,在这种情况下,您不需要任何密码即可以 root 身份登录。

  • 我想这取决于 NOEXEC 是否有效。似乎[它确实有一个警告](http://www.sudo.ws/sudoers.man.html#x50726576656e74696e67207368656c6c2065736361706573)——也就是说,它只适用于系统上支持它的动态链接的可执行文件(大多数支持它)因此,如果您担心,请确保检查并进行任何测试以查看例如 vi 是否可以生成子shell。但无论如何,我认为任何具有编辑/写作能力的东西都是一个非常糟糕的主意。 (3认同)