Sua senha SSH é revelada quando você tenta se conectar ao servidor errado?

190

Quando você acidentalmente tenta se conectar ao servidor errado com credenciais de senha, é possível que o administrador leia e registre a senha que você usou?

    
por vfclists 15.09.2016 / 00:20

4 respostas

214

Colocação simples: sim

Mais detalhes ...

Se você se conectar à minha máquina, não saberá se estou executando um servidor ssh normal ou um que tenha sido modificado para escrever a senha que está sendo passada.

Além disso, eu não precisaria necessariamente modificar sshd , mas poderia escrever um módulo PAM (por exemplo, usando pam_script ), que será passado sua senha.

Então, sim. NUNCA envie sua senha para um servidor não confiável. O proprietário da máquina poderia facilmente tê-la configurado para registrar todas as senhas tentadas.

(Na verdade, isso não é incomum no mundo da infosec; configure um servidor honeypot para registrar as senhas tentadas)

    
por 15.09.2016 / 00:25
51

Sim.

A senha é enviada depois que a conexão criptografada é estabelecida, mas o servidor remoto obtém a senha em texto simples.

Se você se preocupa com isso, a melhor e mais fácil solução é usar as chaves SSH.

Se você tiver máquinas que não podem aceitar chaves, uma solução seria criar uma ferramenta que armazene suas senhas com segurança e, em seguida, use sshpass para sempre enviar a senha correta, dependendo do servidor ao qual você está se conectando. / p>

Agora, a razão pela qual a senha é enviada em texto simples, é que ela deixa todas as decisões de manuseio e armazenamento no terminal remoto, e o cliente pode ser totalmente burro. Existem alguns formatos diferentes de hash de senhas (armazenamento) usados nos sistemas Linux e BSD durante os últimos dez anos ou mais ( crypt (3) ), nenhuma das quais requer suporte do cliente.

Embora isso seja em parte por causa da história, também (ou seja, sempre foi assim). Existem protocolos de autenticação de desafio-resposta melhores que podem ser usados até mesmo com senhas. Por exemplo, SRP , que fornece às partes um segredo compartilhado durante a autenticação. Ele foi implementado para alguns servidores SSH, mas o patch para o OpenSSH é para uma versão (muito) antiga.

    
por 15.09.2016 / 16:18
10

Para aproveitar a resposta de Stephen Harris, aqui está uma visão em tempo real que eu construí que mostra o que um script de autenticação PAM modificado seria capaz de capturar quando se conecta a uma caixa sobre ssh (um honeypot das sortes). Eu uso uma versão modificada da biblioteca PAM lib-storepw.

link

link

    
por 17.09.2016 / 05:29
2

O SSH é um protocolo que requer confiança mútua. Essa é a razão pela qual o cliente OpenSSH mantém um arquivo known_hosts, para implementar sua confiança no primeiro esquema de uso.

Quando você tenta efetuar logon em um servidor SSH, independentemente de quem forneceu o software ou de quais dados ele está configurado para registrar, você está participando de algum procedimento de autenticação. Ao usar a autenticação de senha, você está transmitindo sua senha para esse servidor. Esse é um dos motivos pelos quais a criptografia assimétrica (chave pública, certificados) é recomendada - a criptografia de chave pública reduz muito o risco de revelar suas credenciais. (Embora isso não possa protegê-lo de um ataque MitM se estiver usando o encaminhamento de ssh-agent ou algum esquema similar.)

    
por 17.09.2016 / 07:36

Tags