Security

為什麼 +::0:0::: 不應該在 /etc/passwd 中找到?

  • March 29, 2019

我正在閱讀 NIS 上的BSI Security Guidelines (GERMAN),它明確提到應該防止該條目+::0:0:::出現在/etc/passwdNIS 伺服器的文件中。

根據我的研究,我+將把整個 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 使用者以前使用-useror-@netgroup語法排除的,而不覆蓋 NIS 指定的 UID/primaryGID 值。

通過擴展,+::0:0:::似乎意味著“每個 NIS 使用者都是該系統上的 root”,這首先似乎不是一個好主意。

危險在於,對於通過讀取自行處理身份驗證但不實現樣式語法擴展的應用/etc/passwd程序/etc/shadowpasswd: compat該行的字面意思是“使用者+具有 UID 0 和 GID 0 並且沒有密碼”。

如果您正在使用這樣的應用程序,這是一個“輸入+使用者名提示,只需Enter在密碼提示處按下;您現在具有 root 訪問權限”漏洞。由於沒有有效的 shell,您可能無法立即獲得 shell 訪問權限:但僅通過應用程序獲得 UID 0 訪問權限可能會給精明的入侵者提供足夠的籌碼,以便在之後很快獲得完整的 root shell 訪問權限。

引用自:https://unix.stackexchange.com/questions/508290