Como executar o comando como um usuário diferente quando não há comandos sudo ou su

0

Eu tenho essa condição bastante incomum aqui. Eu tenho um sistema linux antigo que não tem comandos sudo ou su. Eu não tenho acesso físico a este computador, por isso não consigo fazer login como outro usuário.

O kernel Linux é 2.6.18-498 e o sistema é um red-hat 4.1.2-55.

Eu posso ir ao diretório / bin e dizer com certeza que não há binários su ou sudo lá. Portanto, este não é o caso de misconfigaration variáveis PATH.

Além disso, este é um servidor da web, então talvez ele esteja configurado dessa maneira. Existe alguma maneira de executar um comando como um usuário diferente? Qualquer ajuda seria apreciada.

    
por Gnik 27.07.2018 / 17:35

2 respostas

1

Verifique se você possui algum serviço de login remoto em execução ( in.telnetd , rlogind , sshd ) e, em seguida, execute o comando de login apropriado para o host local (127.0.0.1). Por exemplo, se você tiver sshd , faça:

$ ssh [email protected]

Com telnet você executaria:

$ telnet -l root 127.0.0.1

E com rlogin você executaria:

$ rlogin -l root 127.0.0.1
    
por 27.07.2018 / 18:45
0

Qualquer comando com set-uid ou set gid-bit definido. Será executado como o usuário ou grupo proprietário. No entanto, se eles estão escritos corretamente, eles não vão deixar você fazer nada que você não deveria. sudo e su só permitem que você faça qualquer coisa significativa se você fornecer a senha correta. A maioria das outras ferramentas apenas faz uma coisa com segurança, mas não permite escalar privilégios.

No entanto, se você puder gravar no armazenamento, como root (removendo mídia e inserindo em outra máquina ou inicializando em outro sistema operacional), você poderá adicionar os arquivos necessários, com a permissão apropriada.

Executáveis com bits set-uid / set-gid, são a única maneira de escalar privilégios em sistemas Unix (os sistemas modernos agora têm capacidades, mas isso é a mesma coisa).

O kernel não usa senhas, portanto, para implementar senhas, um executável com o proprietário da raiz e set-uid bit set é criado. Este executável verificará a senha e, em seguida, definirá o usuário adequadamente e iniciará um shell (ou algo assim).

Supondo que não há uso de recursos, então find / -executable -type f -user root -perm -u+s -print 2>/dev/null listará todos os executáveis que elevam a permissão (pelo menos temporariamente), a maioria (talvez todos) será inútil.

    
por 27.07.2018 / 17:44