Como posso passar automaticamente a senha para 'su'?

Como posso passar automaticamente a senha para 'su'?

Estou trabalhando em uma exploração para um curso de segurança. O objetivo é obter um shell root em uma máquina virtual Linux. Até agora, posso escrever em /etc/passwd e alterar a senha do root para uma string arbitrária.

Agora, quero usar su para obter o shell root. Como meu exploit precisa ser automatizado, ele não pode solicitar uma senha e a VM não tem o expect instalado. Alguém tem alguma ideia de como posso passar a senha para o comando su? Ou há um jeito melhor?

Responder1

A melhor forma de automatizar esse tipo de entrada é usando expectou melhor pexpect. a maioria dos servidores vem com python, pelo menos com uma distribuição moderna.

Primeiro você disse que sua VM não está expectinstalada? Não sei por que isso importa. Existe algum motivo pelo qual você não pode instalar/executar algo em sua conta local?

Próxima consideração, por que você deve usar passwd??? Você também pode alterar uma senha substituindo o hash especificado em /etc/shadow. Obviamente, você precisaria pré-gerar corretamente um hash primeiro, mas contanto que você use um com suporte, ele deverá funcionar conforme o esperado. Agora, como você criaria o script de tal ação, esse é um exercício para você praticar.

Também quero mencionar que passwdnão lê a entrada do STDIN. Se não me engano, ele lê de um tty. Portanto, nenhuma combinação sofisticada de apenas echoe sleepfuncionaria. No entanto, é possível usar um HEREDOC, mas pressupõe-se que o sistema seja suficientemente responsivo. Você pode ser capaz de dividi-lo sleepentre partes inteiras. Acabei de testar isso, funcionou na minha estação de trabalho Ubuntu.

#!/bin/bash
passwd root <<'EOF'
newpassword
newpassword
EOF

Responder2

Sua exploração também pode gravar no arquivo de grupos e tornar o usuário atual parte do grupo 'wheel' (ou qualquer grupo que possa executar sudocomandos sem senha). Então você poderá sudo su root(ou qualquer outro usuário) sem senha.

A corrida visudodeve lhe dar alguma orientação sobre a configuração do grupo 'roda' em sua máquina.

Para esclarecer: quando um usuário passa a fazer parte do grupo wheel, ele pode executar comandos sudo sem precisar de senha.

informação relacionada