Legba: Um Guia Prático para Pulverização de Credenciais Multi-protocolo

Introdução ao Legba

Legba é uma ferramenta robusta e versátil, projetada para testes de segurança focados em pulverização de senhas e ataques de força bruta contra múltiplos protocolos de rede. Este guia detalhado abordará a configuração inicial e o uso fundamental do Legba, permitindo que profissionais de segurança e entusiastas compreendam e apliquem suas capacidades em cenários de avaliação de credenciais.

Por Que Escolher Legba?

A eficácia do Legba como uma ferramenta moderna de ataque a credenciais reside em suas características distintivas:

  • Compatibilidade Abrangente: Suporta uma vasta gama de protocolos comuns, incluindo SSH, HTTP, FTP e MySQL.
  • Gerenciamento Adaptável de Credenicais: Oferece diversas abordagens para fornecer credenciais, como listas de arquivos, definição de intervalos ou geração dinâmica.
  • Processamento Concorrente de Alto Desempenho: Emprega multithreading para executar testes de forma ágil e eficiente.
  • Recupearção de Estado com Gerenciamento de Sessões: Permite salvar e retomar o progresso de um ataque, otimizando o tempo e evitando reprocessamento.
  • Diversidade de Formatos de Saída: Os resultados podem ser exportados em formatos úteis como texto puro, CSV e JSONL para análise posterior.

Instalação Rápida

Para começar a usar o Legba, siga um dos métodos de instalação abaixo:

Instalação via Cargo (Recomendado)

Se você já possui o ambiente Rust configurado, a instalação através do Cargo é a maneira mais direta:

cargo install legba

Após a conclusão, o executável do Legba estará disponível em $HOME/.cargo/bin/legba.

Execução via Docker

Para sistemas que suportam Docker, a ferramenta pode ser utilizada através da imagem oficial, eliminando a necessidade de instalação local de dependências:

docker run -it evilsocket/legba --help

Compilação a partir do Código-Fonte

Caso deseje a versão mais recente ou precise de modificações, é possível compilar o Legba diretamente do repositório:

git clone https://github.com/evilsocket/legba.git
cd legba
cargo build --release

O binário compilado será encontrado no diretório ./target/release.

Comandos Fundamentais

A estrutura básica para invocar o Legba segue o padrão:

legba <nome-do-plugin> [opções]

Listando Plugins Disponíveis

Para verificar os protocolos suportados e os plugins disponíveis no Legba, utilize a opção de listagem:

legba -L

Este comando exibirá uma lista de plugins como ssh, http, mysql, entre outros.

Exemplo de Ataque HTTP Basic Auth

Para demonstrar um cenário de força bruta em autenticação HTTP Basic, considere o seguinte:

legba http.basic \
    --user "admin_user" \
    --passwords "/caminho/para/lista_de_senhas.txt" \
    --target "https://api.servidor.com/admin"

Pulverização de Senhas em SSH

Um exemplo de pulverização de senhas contra um serviço SSH em uma rede:

legba ssh \
    --user "system_root" \
    --passwords "/caminho/para/senhas_comuns.txt" \
    --target "10.0.0.0/16"

Recursos Avançados

Especificação de Alvos

Legba oferece flexibilidade na definição de alvos:

  • Alvo Único: --target 192.168.1.50
  • Com Porta Específica: --target 192.168.1.50:2222
  • Faixa de IPs: --target 192.168.1.1-100
  • Notação CIDR: --target 172.16.0.0/24
  • Leitura de Arquivo: --target @hosts.txt

Métodos de Fornecimento de Credenciais

As credenciais podem ser fornecidas de diversas formas:

  • Diretamente: --user "usuario_fixo"
  • A partir de Arquivo: --passwords "/listas/minhas_senhas.txt"
  • Gerando Intervalo Numérico: --passwords "[10000-99999]"
  • Combinando Caracteres: --passwords "#3-5:abcde12345"

Gerenciamento de Sessões

A funcionalidade de sessão permite salvar e carregar o progresso do ataque, o que é crucial para testes longos:

legba ssh \
    --user "admin_service" \
    --passwords "top_passwords.txt" \
    --target "192.168.10.0/24" \
    --session "ataque_ssh_servidores.session"

Caso o processo seja interrompido, o Legba pode retomar de onde parou usando o mesmo comando e arquivo de sessão.

Formatos de Saída de Resultados

Para facilitar a análise, o Legba pode exportar os resultados em vários formatos:

  • Texto Simples (padrão): --output "saida_ataque.txt"
  • CSV: --output "resultados_validos.csv" --output-format csv
  • JSONL: --output "log_credenciais.jsonl" --output-format jsonl

Simplificando com Recipes (Receitas)

As "Recipes" do Legba permitem encapsular configurações complexas de ataque em arquivos YAML reutilizáveis. Este recurso agiliza a execução de tarefas repetitivas ou específicas.

Considere um exemplo de recipe para testar autenticação em um servidor OWA (Outlook Web Access):

# owa_test_auth.yml
description: Teste de Autenticação para Outlook Web Access
plugin: http
args:
    target: "https://{$hostname}/owa/auth.owa"
    http-method: POST
    http-success: "status == 302 && set_cookie != \"\""
    http-payload: "destination=https://{$hostname}/&flags=4&username={USER_NAME}&password={USER_PASSWORD}"

Para executar este ataque usando a recipe, um arquivo de usuários e um de senhas, e fornecendo o hostname:

legba -R owa_test_auth.yml -U users_owa.txt -P common_passwords_owa.txt "hostname=webmail.dominio.com"

Uma coleção de recipes pré-definidas pode ser encontrada no cookbook oficial do Legba, servindo como ótimos pontos de partida.

Tags: Legba PasswordSpraying Bruteforce SecurityTesting MultiProtocol

Publicado em 8-5 00:53