Enumerando SSH
O SSH é um protocolo que serve para que o cliente e servidor troquem informações de uma forma segura.
Podemos pegar o banner que o servidor está utilizando com o netcat.
Precisamos também saber quais são os possíveis métodos de autenticação que o servidor utiliza.
Para nos conectarmos a um usuário.
Podemos observar na resposta, a seguinte linha com esses métodos de autenticação aceitos.
Significa que o servidor aceita dois tipos de autenticação, por senha ou chave pública. Se tiver password, podemos fazer um brute force para descobrir a senha. Se caso tiver o publickey, não irá funcionar pois não temos uma chave pública cadastrada e permitida no servidor.
Um detalhe, é que no arquivo /root/.ssh/known_hosts fica salvo todos os hosts que já nos conectamos, dessa forma quando tentamos conectar novamente pelo ssh nesses hosts, não será perguntado novamente se desejamos nos conectar, irá direto para a solicitação da senha.
Autenticação com chave pública
Ao entrar dentro de uma rede interna, pode ser que tenhamos uma shell com comandos limitados. Com isso, uma solução que podemos recorrer, é a autenticação com chave pública do SSH.
Se quisermos alterar as configurações, o arquivo de configuração do SSH fica em /etc/ssh/sshd_config.
O SSH geralmente por padrão não permite conectar pelo root diretamente, para alterar isso, temos que achar no arquivo, a linha PermitRootLogin prohibit-password e alterar para PermitRootLogin yes. Lembrando que isso não é uma boa prática de segurança para quem está protegendo.
Dentro do diretório /root existe um diretório oculto do ssh chamado .ssh e dentro dele existem alguns arquivos. Um deles é o authorized_keys que possuem as chaves que permitem o acesso à máquina e o known_hosts que são os hosts conhecidos (se não houver esse diretório já criado, você terá que criar manualmente com touch ~/.ssh/authorized_keys. Com isso, para termos a nossa máquina acessando esse servidor via chave pública, precisaríamos criar uma chave pública e privada na nossa máquina e cadastrar a chave pública no servidor dentro do arquivo authorized_keys.
Para gerarmos essa chave, usamos o comando a seguir. Ele escolhe um diretório padrão, podemos aceitar ou escolher um novo para ser salvo.
Com isso, temos a chave privada e pública, respectivamente. Basta copiar o conteúdo dentro de id_rsa.pub e inserir dentro do arquivo authorized_keys.
Agora precisamos utilizar o comando a seguir para ser identificado que iremos utilizar esse conjunto de chaves quando formos autenticar.
Com isso, estamos prontos para nos autenticarmos ao servidor utilizando as chaves pública e privada.
Lembrando que muitas vezes não será possível se autenticar como root de acordo com as configurações do servidor. Uma solução é adicionar um usuário com adduser e fazer o mesmo processo, criando o arquivo ~/.ssh/authorized_keys e colocando a chave pública dentro dele.
Last updated
Was this helpful?