Ataque a Serviços SMB com Hydra

HydraBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá a atacar serviços SMB (Server Message Block) usando o Hydra, uma poderosa ferramenta de quebra de senha. Este laboratório se concentra em demonstrar como identificar e explorar credenciais fracas em um servidor SMB.

Você começará configurando um servidor SMB local usando o Samba, incluindo a instalação dos pacotes necessários, a configuração do arquivo smb.conf para criar um diretório compartilhado e definir as permissões apropriadas. Em seguida, você preparará listas de usuários e senhas para serem usadas no ataque Hydra. Finalmente, você executará o ataque SMB do Hydra e verificará os resultados para ver se alguma credencial foi quebrada com sucesso.

Este é um Lab Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para completar cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível intermediário com uma taxa de conclusão de 73%. Recebeu uma taxa de avaliações positivas de 100% dos estudantes.

Configurar um Servidor SMB Local

Neste passo, você configurará um servidor SMB (Server Message Block) local usando o Samba. O SMB é um protocolo de compartilhamento de arquivos de rede que permite que aplicativos em um computador acessem arquivos e recursos em um servidor remoto. O Samba é uma reimplementação de software livre do protocolo de rede SMB. Isso fornecerá um alvo para seu ataque Hydra SMB em etapas posteriores.

Primeiro, vamos instalar o Samba. Abra seu terminal no diretório ~/project.

sudo apt update
sudo apt install samba -y

Este comando atualiza as listas de pacotes e, em seguida, instala o pacote Samba. O sinalizador -y responde automaticamente "sim" a quaisquer solicitações durante a instalação.

Em seguida, você precisa configurar o Samba. Comece fazendo um backup do arquivo de configuração original.

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

Agora, vamos criar um novo arquivo de configuração limpo sobrescrevendo o existente. Essa abordagem garante que não haja conflitos com as configurações padrão do Samba do Ubuntu.

Copie o comando a seguir e execute-o no terminal. Certifique-se de que o comando foi copiado corretamente.

sudo tee /etc/samba/smb.conf > /dev/null << 'EOF'
[global]
   workgroup = WORKGROUP
   server string = Servidor Samba
   netbios name = fileserver
   security = user
   map to guest = never
   ## Desabilitar acesso anônimo
   restrict anonymous = 2
   ## Habilitar explicitamente SMBv1 e NTLMv1 para o Hydra
   server min protocol = NT1
   client min protocol = NT1
   ntlm auth = ntlmv1-permitted
   ## Ligar apenas ao localhost
   interfaces = 127.0.0.1
   bind interfaces only = yes
   ## Registros
   log file = /var/log/samba/log.%m
   max log size = 1000
   logging = file
   debug level = 3

[share]
   path = /home/labex/project/share
   browsable = yes
   writable = yes
   guest ok = no
   read only = no
   valid users = labex
EOF

Este comando substituirá completamente o conteúdo de /etc/samba/smb.conf com nossa configuração limpa.

Pontos de configuração importantes:

  • map to guest = never - Impede o acesso anônimo de convidados
  • restrict anonymous = 2 - Desabilita completamente o acesso anônimo
  • server min protocol = NT1 e client min protocol = NT1 - Habilita SMBv1 para compatibilidade com o Hydra
  • ntlm auth = ntlmv1-permitted - Permite autenticação NTLMv1 para testes
  • interfaces = 127.0.0.1 e bind interfaces only = yes - Restrição de acesso apenas ao localhost
  • guest ok = no - Desabilita o acesso de convidado ao compartilhamento
  • valid users = labex - Restrição de acesso apenas ao usuário específico

Por que sobrescrevemos todo o arquivo:

  • Evita conflitos com as configurações padrão do Samba do Ubuntu
  • Garante uma configuração limpa e mínima otimizada para testes com o Hydra
  • Elimina potenciais problemas com diretivas duplicadas ou conflitantes
  • Fornece um ponto de partida consistente para todos os usuários

Esta configuração garante que o Hydra consiga detectar corretamente as tentativas de autenticação sem interferência do acesso anônimo.

Agora, vamos criar o diretório compartilhado.

mkdir ~/project/share
sudo chmod 777 ~/project/share

Isso cria um diretório chamado share em seu diretório ~/project e define suas permissões para 777, o que significa que todos têm permissões de leitura, escrita e execução. Observação: Em um cenário do mundo real, você desejará usar permissões mais restritivas. Para simplificar este ambiente de laboratório, estamos usando 777.

Em seguida, você precisa adicionar um usuário Samba. Este usuário será usado para autenticar no servidor SMB. Você usará o usuário labex que já existe no sistema. Primeiro, defina uma senha Samba para o usuário labex.

sudo smbpasswd -a labex

Você será solicitado a inserir uma nova senha para o usuário labex. Digite password e confirme-a.

Nova senha SMB:
Repita a nova senha SMB:
Usuário labex adicionado.

Finalmente, reinicie o serviço Samba para aplicar as alterações.

sudo /etc/init.d/smbd restart
sudo /etc/init.d/nmbd restart

Você deve ver uma saída semelhante a esta:

 * Parando o daemon SMB/CIFS smbd                                        [ OK ]
 * Iniciando o daemon SMB/CIFS smbd                                        [ OK ]
 * Parando o servidor de nomes NetBIOS nmbd                                    [ OK ]
 * Iniciando o servidor de nomes NetBIOS nmbd                                    [ OK ]

Este comando verificará sua configuração do Samba quanto a erros de sintaxe e mostrará a configuração ativa. Você deve ver uma saída confirmando suas configurações sem erros.

Agora, seu servidor SMB local está configurado com as configurações de segurança apropriadas. Você criou um diretório compartilhado chamado share e adicionou o usuário labex com uma senha Samba. A configuração está otimizada para funcionar corretamente com ataques Hydra.

Preparar Listas de Usuários e Senhas

Neste passo, você criará as listas de usuários e senhas que o Hydra utilizará para realizar o ataque SMB. Essas listas conterão nomes de usuários e senhas possíveis que o Hydra tentará usar para autenticar no servidor SMB.

Primeiro, vamos criar a lista de usuários. Você utilizará o nano para criar um arquivo chamado users.txt no diretório ~/project.

nano ~/project/users.txt

Neste arquivo, adicione os seguintes nomes de usuários, um por linha:

labex
admin
guest
user
test
root

Pressione Ctrl+X, depois Y e, em seguida, Enter para salvar o arquivo.

Agora, vamos criar a lista de senhas. Você utilizará o nano para criar um arquivo chamado passwords.txt no diretório ~/project.

nano ~/project/passwords.txt

Neste arquivo, adicione as seguintes senhas, uma por linha:

password
123456
labex
admin
guest

Pressione Ctrl+X, depois Y e, em seguida, Enter para salvar o arquivo.

Estas são listas simples para fins de demonstração. Em um cenário do mundo real, você utilizaria listas muito maiores e mais complexas.

Agora você criou dois arquivos: users.txt, contendo uma lista de nomes de usuários, e passwords.txt, contendo uma lista de senhas. O Hydra utilizará essas listas na próxima etapa para tentar quebrar a senha do servidor SMB.

Executar Ataque SMB com Hydra

Neste passo, você utilizará o Hydra para realizar um ataque de força bruta contra o servidor SMB configurado no primeiro passo. O Hydra é uma ferramenta de quebra de logins paralela que suporta diversos protocolos de ataque.

Abra seu terminal no diretório ~/project.

Agora, vamos executar o comando Hydra para atacar o serviço SMB.

hydra -L ~/project/users.txt -P ~/project/passwords.txt 127.0.0.1 smb

Vamos analisar este comando:

  • hydra: Este é o comando para executar a ferramenta Hydra.
  • -L ~/project/users.txt: Especifica o caminho para o arquivo de lista de usuários.
  • -P ~/project/passwords.txt: Especifica o caminho para o arquivo de lista de senhas.
  • 127.0.0.1: Este é o endereço IP do servidor SMB alvo (neste caso, o localhost).
  • smb: Especifica o serviço a ser atacado (SMB).

O Hydra agora começará a tentar fazer login no servidor SMB usando os nomes de usuário e senhas das listas fornecidas. Ele tentará todas as combinações de nome de usuário e senha até encontrar uma válida ou esgotar todas as possibilidades.

Com o servidor SMB configurado corretamente no Passo 1, você deverá ver a descoberta bem-sucedida de credenciais:

Hydra v9.2 (c) 2021 by van Hauser/THC & David Maciejak - Por favor, não utilize em organizações militares ou de serviços secretos, ou para fins ilegais (isto não é vinculativo, estes *** ignoram leis e ética de qualquer forma).

Hydra (https://github.com/vanhauser-thc/thc-hydra) iniciado em 2025-05-30 10:52:16
[INFO] Número de tarefas reduzido para 1 (smb não gosta de conexões paralelas)
[DATA] máximo de 1 tarefa por 1 servidor, total de 1 tarefa, 30 tentativas de login (l:6/p:5), ~30 tentativas por tarefa
[DATA] atacando smb://127.0.0.1:445/
[445][smb] host: 127.0.0.1   login: labex   senha: password
1 de 1 alvo concluído com sucesso, 1 senha válida encontrada
Hydra (https://github.com/vanhauser-thc/thc-hydra) finalizado em 2025-05-30 10:52:17

Compreendendo a Saída:

  • A linha [445][smb] host: 127.0.0.1 login: labex senha: password mostra que o Hydra encontrou credenciais válidas com sucesso.
  • Nome de usuário: labex
  • Senha: password
  • O resumo mostra "1 senha válida encontrada", confirmando o ataque bem-sucedido.

Observação Importante: Este ataque está sendo realizado em um servidor SMB local para fins educacionais. Configuramos especificamente o servidor para demonstrar como o Hydra funciona. Em ambientes de produção, o SMBv1 deve ser desabilitado por razões de segurança. Realizar ataques não autorizados em sistemas remotos é ilegal e antiético.

O comando pode levar algum tempo para ser concluído, dependendo do tamanho das suas listas de usuários e senhas. Observe a saída para ver quando o Hydra quebra a senha com sucesso.

Verificar Resultados do Ataque SMB

Neste passo, você analisará a saída do ataque SMB com Hydra para confirmar a descoberta bem-sucedida de credenciais e verificar as credenciais quebradas conectando-se ao compartilhamento SMB.

Após executar o comando Hydra (e possivelmente aplicar as etapas de solução de problemas) no passo anterior, você deverá ver uma saída semelhante a esta:

[445][smb] host: 127.0.0.1   login: labex   password: password
1 of 1 target successfully completed, 1 valid password found

Esta linha indica que o Hydra quebrou com sucesso as credenciais SMB:

  • Nome de usuário: labex
  • Senha: password

Verificando as Credenciais Quebradas:
Para confirmar que as credenciais quebradas são válidas, você pode usar o comando smbclient para se conectar ao compartilhamento SMB. Primeiro, instale-o se ainda não estiver instalado:

sudo apt update
sudo apt install smbclient -y

Você deverá ver uma saída semelhante a esta:

Lendo listas de pacotes... Concluído
Construindo árvore de dependências... Concluído
Lendo informações de estado... Concluído
Os seguintes pacotes adicionais serão instalados:
  libsmbclient
Os seguintes NOVOS pacotes serão instalados:
  libsmbclient smbclient
0 atualizado, 2 recém-instalados, 0 a remover e 252 não atualizados.
...
Configurando smbclient (2:4.15.13+dfsg-0ubuntu1.6) ...

Agora, use as credenciais quebradas para se conectar ao compartilhamento SMB:

smbclient //127.0.0.1/share -U labex%password

Vamos analisar este comando:

  • smbclient: A ferramenta de linha de comando para acessar recursos SMB/CIFS em servidores.
  • //127.0.0.1/share: O caminho para o compartilhamento SMB. 127.0.0.1 é o endereço IP do seu servidor SMB local e share é o nome do diretório compartilhado.
  • -U labex%password: Especifica o nome de usuário (labex) e a senha (password) quebradas pelo Hydra. O nome de usuário e a senha são separados por um sinal %.

Se a conexão for bem-sucedida, você verá um prompt smb:\>, indicando que você se conectou com sucesso ao compartilhamento SMB usando as credenciais quebradas:

Tente "help" para obter uma lista de comandos possíveis.
smb: \>

Você pode então digitar exit e pressionar Enter para sair do prompt smbclient:

exit

Esta conexão bem-sucedida confirma que:

  1. O Hydra quebrou com sucesso as credenciais SMB.
  2. A combinação de nome de usuário e senha é válida.
  3. O ataque foi eficaz contra o servidor SMB configurado.
  4. As credenciais quebradas fornecem acesso ao diretório compartilhado.

Implicações de Segurança:
Este ataque bem-sucedido demonstra a importância de:

  • Usar senhas fortes e complexas.
  • Implementar políticas de bloqueio de conta.
  • Monitorar ataques de força bruta.
  • Desabilitar serviços e protocolos desnecessários.
  • Realizar auditorias e testes de penetração de segurança regulares.

Resumo

Neste laboratório, você aprendeu como atacar serviços SMB usando o Hydra, uma poderosa ferramenta de quebra de senhas. Você começou configurando um servidor SMB local usando o Samba, o que envolveu instalar os pacotes necessários, configurar o arquivo smb.conf para criar um diretório compartilhado com suporte a SMBv1 e NTLMv1 para compatibilidade com o Hydra e definir permissões apropriadas.

Em seguida, você preparou listas de usuários e senhas (users.txt com 6 nomes de usuário e passwords.txt com 5 senhas) para serem usadas no ataque com o Hydra. Com o servidor SMB configurado corretamente no Passo 1, o ataque SMB com o Hydra quebrou com sucesso as credenciais SMB, encontrando a combinação válida de nome de usuário labex e senha password.

Você confirmou o sucesso do ataque usando o smbclient para se conectar ao compartilhamento SMB com as credenciais descobertas, demonstrando que as credenciais quebradas forneceram acesso legítimo ao diretório compartilhado.

Este laboratório demonstrou efetivamente:

  1. Capacidades do Hydra: Como o Hydra pode testar sistematicamente combinações de nome de usuário e senha contra serviços SMB.
  2. Configuração Adequada: A importância de configurar corretamente o serviço de destino para testes de segurança.
  3. Metodologia de Ataque de Força Bruta: O processo de preparação de listas de palavras e execução de ataques automatizados.
  4. Verificação de Ataque: A importância de confirmar a descoberta bem-sucedida de credenciais.
  5. Configuração de Segurança: Como uma configuração SMB adequada impede o acesso anônimo, permitindo ao mesmo tempo testes de autenticação legítimos.

Lições-chave de Segurança:

  • Senhas fracas são vulneráveis a ataques de força bruta.
  • Uma configuração adequada do serviço é crucial tanto para segurança quanto para testes.
  • Desabilitar o acesso anônimo garante resultados claros de autenticação.
  • Ferramentas automatizadas como o Hydra podem testar rapidamente muitas combinações de credenciais.
  • Testes de segurança regulares ajudam a identificar vulnerabilidades antes que os atacantes o façam.

Observação Importante: Este ataque foi realizado em um servidor SMB local configurado especificamente para fins educacionais. Em ambientes de produção, o SMBv1 deve ser desabilitado, políticas de senhas fortes devem ser aplicadas e monitoramento deve estar em vigor para detectar ataques de força bruta. Realizar ataques não autorizados em sistemas remotos é ilegal e antiético.