Neste laboratório, você aprenderá como conduzir ataques de força bruta contra serviços FTP usando o Hydra, uma ferramenta versátil para quebrar senhas. Você configurará um servidor FTP local com vsftpd e criará contas de teste com senhas fracas para demonstrar vulnerabilidades de segurança.
O laboratório irá guiá-lo através da execução de ataques Hydra, análise de resultados e compreensão de como uma autenticação fraca pode comprometer os serviços FTP. Este exercício prático cobre a configuração do servidor, a simulação de ataques e a avaliação de segurança em um ambiente controlado.
Configurar um Servidor FTP Local
Nesta etapa, você configurará um servidor FTP local usando o vsftpd (Very Secure FTP Daemon) no ambiente da VM LabEx. FTP (File Transfer Protocol) é um protocolo de rede padrão usado para transferir arquivos entre um cliente e um servidor através de uma rede. Pense nisso como uma agência postal digital que lida com a entrega de arquivos entre computadores.
Primeiro, precisamos instalar o pacote vsftpd. Este comando atualiza sua lista de pacotes e instala o software do servidor FTP:
Após a instalação, é uma boa prática criar um backup do arquivo de configuração padrão. Dessa forma, você sempre pode restaurar as configurações originais, se necessário:
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
Agora, editaremos o arquivo de configuração usando o nano, um editor de texto simples no Linux. Este arquivo controla como seu servidor FTP se comporta:
sudo nano /etc/vsftpd.conf
Dentro do arquivo de configuração, precisamos modificar estas configurações importantes. Essas alterações irão:
Desativar o acesso anônimo (por segurança)
Permitir que usuários locais façam login
Permitir uploads de arquivos
Restringir usuários aos seus diretórios home (por segurança)
Depois de fazer essas alterações, salve o arquivo pressionando Ctrl+O (Write Out) e, em seguida, saia do nano com Ctrl+X.
Agora precisamos reiniciar o serviço vsftpd para aplicar as alterações de configuração. Isso é como atualizar o servidor com nossas novas configurações:
sudo service vsftpd restart
Em seguida, criaremos uma conta de usuário de teste especificamente para acesso FTP. A flag -m cria um diretório home, e -s define o shell padrão:
Quando solicitado, defina a senha como password123. Estamos usando esta senha simples apenas para fins de teste - em situações reais, você sempre deve usar senhas fortes.
Vamos criar um diretório especial para testes FTP e definir as permissões adequadas. Isso garante que nosso usuário de teste possa acessar e modificar arquivos nesta pasta:
Finalmente, devemos verificar se nosso servidor FTP está funcionando corretamente. Este comando verifica o status do serviço vsftpd:
sudo service vsftpd status
Você deve ver uma saída indicando que o serviço está ativo (em execução). Se você vir algum erro, pode ser necessário revisar suas etapas de configuração.
Configurar Servidor FTP com Usuários de Teste
Nesta etapa, prepararemos nosso servidor FTP para testes de segurança, criando contas de teste com senhas intencionalmente fracas. Essa configuração imita vulnerabilidades de segurança comuns encontradas em sistemas do mundo real, onde os usuários geralmente escolhem senhas simples. Criaremos três usuários de teste, configuraremos seus diretórios home e geraremos listas de senhas que o Hydra usará mais tarde.
Primeiro, vamos criar três usuários de teste com senhas fracas (apenas para fins de demonstração). Esses comandos criam novos usuários do sistema com diretórios home e definem suas senhas:
Agora, criaremos diretórios FTP dedicados para cada usuário e definiremos a propriedade adequada. Isso garante que cada usuário possa acessar apenas seus próprios arquivos através do FTP:
Vamos preencher o diretório de cada usuário com um arquivo de teste. Esses arquivos ajudarão a verificar o acesso FTP bem-sucedido mais tarde:
echo "This is ftpuser1's test file" | sudo tee /home/ftpuser1/ftp_files/test1.txt
echo "This is ftpuser2's test file" | sudo tee /home/ftpuser2/ftp_files/test2.txt
echo "This is ftpuser3's test file" | sudo tee /home/ftpuser3/ftp_files/test3.txt
Antes de prosseguir, vamos verificar se o acesso FTP funciona para um de nossos usuários de teste. Este comando curl tenta baixar um arquivo usando credenciais FTP:
Se configurado corretamente, você deverá ver o conteúdo de test1.txt exibido em seu terminal.
This is ftpuser1's test file
Preparar Listas de Ataque para FTP
Nesta etapa, você preparará as wordlists (listas de palavras) que o Hydra usará para tentar fazer login no servidor FTP. Essas listas contêm nomes de usuário e senhas em potencial que o Hydra tentará sistematicamente durante o ataque de força bruta. Entender como criar wordlists eficazes é crucial para testes de penetração.
Primeiro, criaremos uma lista básica de nomes de usuário contendo nomes de usuário FTP comuns. Estes são nomes de conta padrão ou frequentemente usados que os administradores às vezes esquecem de alterar:
Em seguida, criaremos uma lista de senhas com senhas fracas comuns. Muitos usuários definem senhas simples que são fáceis de lembrar, mas também fáceis de adivinhar:
Vamos verificar se ambos os arquivos foram criados corretamente, exibindo seus conteúdos. Isso garante que nossas listas contenham exatamente o que pretendemos:
Para gerar combinações de senhas mais complexas, instalaremos a ferramenta crunch. Isso ajuda a criar padrões de senha sistemáticos que podem ser usados em sistemas reais:
sudo apt-get install -y crunch
Agora usaremos o crunch para gerar senhas numéricas de exatamente 6 dígitos. Isso simula senhas comuns apenas com números, como datas de nascimento ou PINs simples:
Verifique quantas entradas de senha criamos. Isso ajuda a estimar quanto tempo o ataque de força bruta pode levar:
wc -l ~/project/combined_passwords.txt
Finalmente, crie um arquivo de senha de teste menor para fins de demonstração. Usar um subconjunto ajuda a verificar se nossa configuração funciona antes de executar o ataque completo:
head -n 50 ~/project/combined_passwords.txt > ~/project/test_passwords.txt
Executar Ataque Hydra no Serviço FTP
Nesta etapa, você usará o Hydra para realizar um ataque de força bruta contra o servidor FTP local que configuramos anteriormente. Hydra é uma ferramenta popular de cracking de senhas que suporta muitos protocolos, incluindo FTP. Um ataque de força bruta tenta sistematicamente todas as combinações de senhas possíveis até que a correta seja encontrada. Isso demonstra por que senhas fracas são vulneráveis a tais ataques.
Primeiro, verifique se o Hydra está instalado, verificando seu menu de ajuda. Isso confirma que a ferramenta está pronta para uso e mostra as opções disponíveis:
hydra -h
Execute um ataque Hydra básico usando as listas de nomes de usuário e senhas que criamos. O -L especifica a lista de nomes de usuário e -P especifica a lista de senhas. Hydra tentará cada combinação contra o serviço FTP em execução no localhost:
Para ver uma saída mais detalhada do progresso do ataque, adicione a flag -vV. Este modo verbose ajuda a entender o que o Hydra está fazendo durante o ataque:
Execute um ataque mais abrangente com a lista completa de senhas (isso levará mais tempo). A opção -t 4 limita a 4 conexões paralelas para evitar sobrecarregar o servidor, mantendo uma boa velocidade:
Quando o Hydra encontrar credenciais válidas, elas serão exibidas na saída. Isso mostra qual combinação de nome de usuário/senha autenticou com sucesso no servidor FTP. Exemplo de saída de sucesso:
Verifique o arquivo de resultados para ver se alguma credencial foi descoberta. Isso permite que você revise os resultados após a conclusão do ataque:
cat ~/project/hydra_results.txt
Resumo
Neste laboratório, você aprendeu como configurar um servidor FTP local usando vsftpd, incluindo a instalação do pacote, ajustes de configuração para acesso de usuários locais e a criação de contas de teste com senhas fracas. O processo envolveu a modificação das configurações do vsftpd.conf, a configuração das permissões de diretório adequadas e a verificação da funcionalidade do serviço.
Além disso, você preparou um ambiente de teste para ataques Hydra, criando várias contas com credenciais previsíveis. Essa configuração fornece um cenário controlado para praticar técnicas de força bruta, mantendo condições realistas de teste de segurança.