Cracking root user: Automatizando o login na raiz usando “su” do usuário não root

1

Eu quero escrever um script que me permita passar uma senha para o comando su . A razão para isso é automatizar o processo de login na raiz da conta não raiz. Do meu entendimento básico de segurança, eu conheço os perigos disso. Eu ainda preciso disso para tentar quebrar a senha do usuário root lendo senhas de um arquivo.

Já ouvi falar sobre o uso do comando expect para automatizar interações, mas não sei como isso funciona ou se é aplicável nessa situação. Qualquer informação sobre o uso de expect seria muito apreciada.

Por favor, note que sudo não é uma opção, pois meu usuário não está na lista sudoer.

Coisas que eu tentei - Passando a senha usando canos       Não funcionou devido ao erro "su must be used from terminal" type - Passando a senha usando echo       O que quer que fosse ecoado simplesmente apareceria depois que a senha fosse digitada

    
por HyperSphere 06.01.2016 / 10:44

2 respostas

1

Você pode usar expect para fazer esse trabalho para você. Salve o seguinte em um arquivo, torne-o executável e execute-o:

#!/usr/bin/expect
spawn su
expect "Password:"
send "YOUR_PASS\n"
interact

(Obviamente, você precisa especificar o caminho correto para expect . Aqui eu usei /usr/bin/expect como exemplo.)

Se YOUR_PASS é a senha de root correta, agora você deve ter um shell de root. Caso contrário, você receberá uma falha de autenticação.

Observe que o comando interact provavelmente não será necessário no contexto de um script totalmente automatizado, pois ele dá o controle do processo ao usuário, ou seja, os pressionamentos de tecla são enviados ao processo atual e stderr e stderr são retornados .

Consulte man expect para obter uma descrição mais detalhada dos comandos spawn , expect , send e interact e muitos outros comandos.

Espero que isso ajude. :)

    
por 06.01.2016 / 11:08
1

Fazendo isso "estilo oneline"

expect -c 'spawn su - ;expect Password:;send "your-password\n";interact'

Dê uma olhada na saída de su - para garantir se esta é a frase correta que aparece para capturar uma senha. Estou usando uma versão traduzida do Linux aqui, então a palavra seria "Senha" em vez de "Senha:".

  • expect -c '' : Execute as seguintes ações para este comando
  • spawn su - : Execute este comando
  • expect Password: Espere a senha da palavra para fazer algo
  • send "your-password\n" : Digite sua senha, seguida por Enter
  • interact : mantém a interação pronta para o comando.
por 06.01.2016 / 11:16