為什麼 +::0:0::: 不應該在 /etc/passwd 中找到?
我正在閱讀 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 訪問權限。