Esta semana estive estudando alguma vulnerabilidades conhecidas e me deparei com uma técnica muito usada em redes locais, que é o roubo de credenciais de SSH. Apesar do SSH ser um protocolo criptografado, ainda existe a possibilidade de um servidor "falso" se passar por verdadeiro e receber as conexões em seu lugar.
A técnica funciona colocando uma máquina no meio da conexão (man-in-the-middle) através de ataques de DNS Spoof ou Arp Spoof combinados, onde a intenção é forçar que as conexões SSH venham direto para o servidor falso ao invés do servidor verdadeiro. Após esse passo o cracker vai precisar de um software que emule o ambiente verdadeiro (SSH honeypot) para que o usuário digite a senha pensando que está digitando no servidor correto.
Vou descrever algumas técnicas/ferramentas aqui e no final vou postar um vídeo demonstrativo.ARP SPOOF
Muitos Sysadmins acham que o fato de terem um switch no lugar de um hub torna a rede completamente invulnerável, contudo esta técnica demonstra que de fato ainda existem problemas de segurança neste modelo. Existem um pacote cracker chamado dsniff, com uma série de ferramentas interessantíssimas e uma delas é a arpspoof.
A ferramenta funciona enviando ao computador da vítima (Sysadmin da empresa) respostas ARP informando que o endereço MAC do IP do gateway (roteador) é o endereço MAC do atacante .Depois de algum tempo o computador da vítima vai acreditar e faz uma entrada errada em seu cache ARP. Da próxima vez que a vítima enviar um pacote para o IP do gateway, mandará para o atacante.
A sintaxe é simples:
arpspoof -i [interface de rede]-t [ip da vítima] [gateway]
Não esqueça de ativar o ip_forward para a vítima não perder a conectividade
echo "1" > /proc/sys/net/ipv4/ip_forward
DNS SPOOF
É muito comum que o Sysadmins tentem conectar aos seus servidores remotos usando nomes, sendo assim, é interessante também forjar respostas de DNS e redirecionar qualquer nome para o seu próprio endereço. Isso é possível com outra ferramenta que vem no pacote cracker que mencionamos anteriormente e seria o binário dnsspoof. Caso o usuário tente conectar no servidor www.exemplo.com.br na porta 22 o DNS SPOOF do atacante vai informar ao computador da vítima que o ip deste domínio é o ip que foi definido por ele mesmo, no caso do nosso exemplo 192.168.1.156.
A utilização é muito simples, primeiro o atacante adiciona uma entrada como esta no arquivo de hosts:
192.168.1.156 *.*
Depois ativa o dnsspoof apontando para o arquivo hosts alterado:
dnsspoof -f /etc/hosts
SSH honeypot
Antes de tudo precisamos entender o conceito de Honeypot, segue:
SSH honeypot
Antes de tudo precisamos entender o conceito de Honeypot, segue:
[Ing.] (Pote de mel) Armadilha destinada à atrair intrusos que tentam invadir um sistema. Consiste em configurar um computador de modo a deixá-lo vulnerável a invasões. Um programa especial instalado monitora as ações do invasor apontando os pontos falhos do sistema que ele tenta explorar. As informações colhidas podem ajudar a identificar o intruso.
Apesar dos Honeypots serem usados pelos "Hackers do bem" visando estudar o comportamento dos crakers dentro de um servidor 0wnado, nada impede da utilização deste mesmo tipo de conceito para o mal. Para o exemplo didático podemos citar o Kippo, que é um mediador de interação SSH idealizado para logar bruteforce ataques e que pode ser utilizado para este fim. Não vamos descrever a instalação e configuração deste software pois no site official explica tudo:
Para ver o funcionamento instale a ferramenta, suba o daemon numa porta qualquer (no exemplo do vídeo está na porta 2222) e aponte o tráfego de SSH da vítima para o seu Honeypot através do iptables. Segue abaixo um exemplo de regra:
iptables -t nat -A PREROUTING -p tcp -s 0/0 --dport 22 -j DNAT --to 192.168.1.156:2222
Pronto! Quando o Sysadmin tentar acessar o servidor remoto www.exemplo.com.br:22 automaticamente vai aparecer um prompt idêntico ao servidor verdadeiro para ele digitar o login e a senha, contudo, estará digitando no seu pote de mel. ;)
Como se proteger?
Para se proteger desse ataque específico passe a utlizar a autenticação do SSH por meio de chaves criptografadas, além disso técnicas de port knocking tornam ainda mais difícil a tarefa do nosso inimigo! A implementação do SSH com chaves é simples e demasiadamente documentada na web, vou colocar o link que explica bem o assunto:
http://www.vivaolinux.com.br/artigo/SSH-Autenticando-atraves-de-chaves?pagina=2
no ubuntu:
http://ubuntu.no.sapo.pt/ssh_com_chaves.html
Vídeo demonstrativo:
Espero que tenham gostado!
;)
0sem comentários ainda