我正在阅读 NIS 上的BSI Security Guidelines (GERMAN),它明确提到应该防止该条目+::0:0:::
出现在/etc/passwd
NIS 服务器的文件中。
根据我的研究,我+
将把整个 NIS 列表导入 passwd 文件。该指南提出的解决方案是*
在条目的密码部分添加一个,这将使用户名可以在影子文件中查找。这是否有点适得其反,因为它本质上会使导入 NIS 列表无用(因为这些没有影子条目)?
此外,该条目的合法用途是什么?攻击者如何利用该条目(没有*
)?
如果您的文件中有类似的条目,
+::0:0:::
则只能按预期工作。如果您改为使用此条目,则该条目将不会产生预期的效果。passwd: compat
/etc/nsswitch.conf
passwd: files nis
至少根据
nsswitch.conf(5)
我的 Debian 9 系统上的手册页,这似乎不是有效的语法:它应该是+user::0:0:::
一个user
将在该系统上获得 root 访问权限的 NIS 用户名,或者只+
包括除那些之外的所有 NIS 用户以前使用-user
or-@netgroup
语法排除的,而不覆盖 NIS 指定的 UID/primaryGID 值。通过扩展,
+::0:0:::
似乎意味着“每个 NIS 用户都是该系统上的 root”,这首先似乎不是一个好主意。危险在于,对于通过读取自行处理身份验证但不实现样式语法扩展的应用
/etc/passwd
程序/etc/shadow
,passwd: compat
该行的字面意思是“用户+
具有 UID 0 和 GID 0 并且没有密码”。如果您正在使用这样的应用程序,这是一个“输入
+
用户名提示,只需Enter在密码提示处按下;您现在具有 root 访问权限”漏洞。由于没有有效的 shell,您可能无法立即获得 shell 访问权限:但仅通过应用程序获得 UID 0 访问权限可能会为精明的入侵者提供足够的筹码,以便在之后很快获得完整的 root shell 访问权限。