大多数允许非 root 用户直接执行代码的 Linux 系统都可以直接 root 吗?

信息安全 linux 特权升级
2021-08-08 09:05:51

长话短说,如果您可以在盒子上执行代码,通常很容易获得 root

引用来源

这句话的直接含义(如果它是准确的)是,如果您正在运行一个多用户系统,并且不竭尽全力阻止所有用户创建具有x权限集的文件,那么系统就像受到损害一样好。推论是,操作一个多用户系统,例如在大学中常见的系统,在设计上允许所有学生使用 C、C++、汇编等进行练习,这是没有意义的,因为任何学生都可以直接根植这个系统。

由于运行旨在供更多人使用的计算机系统并非毫无意义,而且权限限制设施(用户权限管理、沙盒等)也不是无用的,我不知何故怀疑这些评论。但我知道什么?

大多数 Linux 系统是否真的可以被任何可以在其上执行代码的人直接root?

4个回答

不,这是不正确的。虽然有人可能会争论当您具有本地访问权限时在 Linux 上发现和利用 0day 漏洞的相对难度,但现代 Linux 系统(带有MMU)的安全架构本身旨在隔离不同的用户并防止权限升级。非 root 用户在没有适当授权的情况下无法在不利用现有漏洞的情况下获得 root 权限,并且此类权限提升漏洞在被发现后会很快得到修补。*

然而,通过利用系统管理员职业中普遍存在的误解,滥用人为因素并获得根基是可能的。这当然依赖于系统管理员对他们维护的系统的安全架构的误解。示例的非详尽列表:

  • 与无特权但不受信任的用户一起提升sudo或从其提升特权。1su

  • 欺骗系统管理员ldd以 root 身份在恶意静态可执行文件上运行。2

  • 滥用不安全安装的二进制文件。3

  • 从 root 下拉到较小的用户,允许 TTY 推回攻击。4 5

* 虽然这表面上是对的,但许多部署并没有足够频繁地自我更新,导致实时生产系统容易受到已知错误的影响。可用的更新并不能保证安装了更新。

换个说法 - 特权升级漏洞已经存在并将继续被发现或创建。

在上周,我们在 SystemD 中遇到了这个小问题下周我们将有什么,它会及时修补,你的修补制度有多好?

您应该假设可以在机器上运行的攻击者可能在某个时候获得对其操作系统实例的 root 访问权限是可行的,而不管正在运行的操作系统是什么。这样的任务如何“直截了当”可能是有争议的,但如果用户可以运行任意代码,那么它给了他们足够的范围。

利用权限提升漏洞已经够难的了,在确保不留下任何痕迹的情况下这样做要困难得多。试图 root 手机的 Android 用户可以继续尝试一个又一个漏洞,而无需担心或不得不掩盖他们的踪迹。反复尝试滥用sudo或在文件共享中传播可疑可执行文件的学生可能会受到注意、谴责或开除。

顺便说一句,在多用户设置中获得 root 访问权限的#1 方法是等到特权用户走出工作站而忘记锁定它。我在三分之二的大学中看到了这一点。然而,关于不被抓住的同样说法也适用。

我认为“直截了当”的意思是“没有人为技巧和其他社会工程”。所以答案是 - 是的,如果系统包含导致特权升级的未打补丁的 0 天。

它可能是应用程序级别的 0 天。例如,如果 root 拥有具有 setuid 权限的可执行文件,这可能会影响任意文件。最新参考是Xorg您可以像这样寻找潜在的向量:find / -user root -perm -4000 -print 2>/dev/null. 另一个例子 - 像上面提到的 systemd 这样的系统服务。

或者它可能是内核级别的 0-day。它们很少见,但噪音更大,因为它们的覆盖范围更广。很好的参考是脏牛

如果没有启用可以阻止执行某些漏洞利用的强制访问控制,则上述情况属实。

或者 ot 甚至可能是引导级别的攻击。安全启动是你的朋友。