Criar e Gerenciar Listas de Palavras Personalizadas

Kali LinuxBeginner
Pratique Agora

Introdução

Neste laboratório, você explorará as técnicas fundamentais para criar e gerenciar listas de palavras (wordlists) personalizadas usando utilitários padrão da linha de comando do Linux. As listas de palavras são cruciais em várias tarefas de cibersegurança e processamento de dados, desde ataques de força bruta a senhas até fuzzing de aplicações e análise de dados de texto. Você aprenderá a gerar listas de palavras simples, combinar várias listas, remover entradas duplicadas, ordená-las alfabeticamente e filtrá-las com base no comprimento. Ao final deste laboratório, você terá uma compreensão sólida de como manipular arquivos de texto de forma eficiente para criar listas de palavras personalizadas para suas necessidades específicas.

Gerar uma Lista de Palavras Personalizada Simples

Nesta etapa, você aprenderá como criar uma lista de palavras (wordlist) personalizada básica usando o comando echo e redirecionamento. Esta é a maneira mais simples de gerar um arquivo contendo algumas palavras, cada uma em uma nova linha.

Primeiro, navegue até o diretório do seu projeto, se ainda não estiver lá:

cd ~/project

Agora, crie uma lista de palavras simples chamada my_wordlist.txt com algumas palavras:

echo -e "apple\nbanana\norange\ngrape" > my_wordlist.txt

A opção -e habilita a interpretação de sequências de escape de barra invertida, e \n cria uma nova linha. O > redireciona a saída para o arquivo especificado, criando-o se ele não existir ou sobrescrevendo-o se existir.

Para verificar o conteúdo da sua lista de palavras recém-criada, use o comando cat:

cat my_wordlist.txt

Você deverá ver a seguinte saída:

apple
banana
orange
grape

Em seguida, vamos adicionar mais palavras à mesma lista de palavras sem sobrescrever seu conteúdo existente. Usaremos o operador >> para anexar.

echo -e "kiwi\nstrawberry\nblueberry" >> my_wordlist.txt

Verifique o conteúdo atualizado:

cat my_wordlist.txt

A saída agora deve incluir as palavras recém-adicionadas:

apple
banana
orange
grape
kiwi
strawberry
blueberry

Este método é útil para gerar rapidamente listas de palavras pequenas e personalizadas ou para adicionar entradas a listas existentes.

Combinar Múltiplas Listas de Palavras

Nesta etapa, você aprenderá como combinar o conteúdo de várias listas de palavras em uma única lista consolidada. Esta é uma tarefa comum quando você tem diferentes fontes de palavras que deseja mesclar.

Primeiro, vamos criar outra pequena lista de palavras chamada additional_words.txt:

echo -e "melon\npeach\nplum" > additional_words.txt

Verifique seu conteúdo:

cat additional_words.txt

Você deverá ver:

melon
peach
plum

Agora, combinaremos my_wordlist.txt e additional_words.txt em um novo arquivo chamado combined_wordlist.txt. Usaremos o comando cat para concatenar os arquivos e redirecionar a saída.

cat my_wordlist.txt additional_words.txt > combined_wordlist.txt

Inspecione o conteúdo de combined_wordlist.txt:

cat combined_wordlist.txt

A saída mostrará todas as palavras de ambos os arquivos, na ordem em que foram concatenadas:

apple
banana
orange
grape
kiwi
strawberry
blueberry
melon
peach
plum

Esta técnica é muito flexível e pode ser usada para combinar qualquer número de listas de palavras.

Remover Duplicatas de uma Lista de Palavras

Listas de palavras frequentemente contêm entradas duplicadas, especialmente após combinar várias fontes. Nesta etapa, você aprenderá como remover essas duplicatas usando os comandos sort e uniq. O comando uniq detecta apenas linhas duplicadas adjacentes, portanto, é crucial classificar (sort) o arquivo primeiro.

Vamos adicionar intencionalmente algumas entradas duplicadas ao nosso combined_wordlist.txt para demonstrar isso.

echo -e "apple\nbanana\nmelon" >> combined_wordlist.txt

Agora, visualize o conteúdo de combined_wordlist.txt para ver as duplicatas:

cat combined_wordlist.txt

Você notará que apple, banana e melon aparecem várias vezes.

Para remover duplicatas, primeiro classificamos o arquivo e, em seguida, enviamos a saída para o uniq. Salvaremos o resultado em um novo arquivo, unique_wordlist.txt.

sort combined_wordlist.txt | uniq > unique_wordlist.txt

Agora, inspecione o unique_wordlist.txt:

cat unique_wordlist.txt

A saída agora deve conter apenas entradas únicas, classificadas em ordem alfabética:

apple
banana
blueberry
grape
kiwi
melon
orange
peach
plum
strawberry

Esta é uma combinação poderosa de comandos para limpar listas de palavras.

Classificar uma Lista de Palavras Alfabeticamente

Classificar uma lista de palavras alfabeticamente é frequentemente útil para organização, melhor legibilidade e como pré-requisito para outras operações, como remover duplicatas (como visto na etapa anterior). Nesta etapa, você classificará explicitamente uma lista de palavras.

Usaremos o comando sort em nosso unique_wordlist.txt e salvaremos a saída classificada em sorted_wordlist.txt. Embora unique_wordlist.txt já esteja classificado, esta etapa demonstra o comando sort de forma independente.

sort unique_wordlist.txt > sorted_wordlist.txt

Agora, visualize o conteúdo de sorted_wordlist.txt:

cat sorted_wordlist.txt

A saída serão as palavras em ordem alfabética:

apple
banana
blueberry
grape
kiwi
melon
orange
peach
plum
strawberry

O comando sort possui muitas opções, como -r para ordem alfabética reversa, ou -n para classificação numérica. Por exemplo, para classificar em ordem reversa:

sort -r unique_wordlist.txt

Isso produziria a seguinte saída:

strawberry
plum
peach
orange
melon
kiwi
grape
blueberry
banana
apple

Para este laboratório, manteremos a classificação alfabética padrão.

Filtrar uma Lista de Palavras por Comprimento

Às vezes, você precisa filtrar uma lista de palavras com base no comprimento das palavras. Por exemplo, você pode querer apenas palavras com comprimento entre 5 e 8 caracteres. Nesta etapa, você usará o comando awk para filtrar palavras por seu comprimento.

Filtraremos sorted_wordlist.txt para incluir apenas palavras com comprimento entre 5 e 7 caracteres (inclusive). A função length($0) no awk retorna o comprimento da linha atual (palavra).

awk 'length($0) >= 5 && length($0) <= 7' sorted_wordlist.txt > filtered_wordlist.txt

Agora, inspecione o conteúdo de filtered_wordlist.txt:

cat filtered_wordlist.txt

A saída deve conter apenas palavras que atendem aos critérios de comprimento:

apple
banana
orange
grape
melon
peach

Vamos detalhar o comando awk:

  • awk: A utilidade de linha de comando para processamento de texto.
  • 'length($0) >= 5 && length($0) <= 7': Este é o programa awk.
    • length($0): Retorna o comprimento da linha inteira ($0 refere-se à linha inteira).
    • >= 5: Verifica se o comprimento é maior ou igual a 5.
    • &&: Operador lógico E (AND).
    • <= 7: Verifica se o comprimento é menor ou igual a 7.
    • Se a condição for verdadeira, o awk imprime a linha por padrão.
  • sorted_wordlist.txt: O arquivo de entrada.
  • > filtered_wordlist.txt: Redireciona a saída para um novo arquivo.

Essa capacidade de filtragem é muito poderosa para refinar listas de palavras para fins específicos.

Resumo

Neste laboratório, você aprendeu com sucesso como criar e gerenciar listas de palavras personalizadas usando várias ferramentas essenciais da linha de comando do Linux. Você começou gerando listas de palavras simples com echo e redirecionamento, depois combinou várias listas usando cat. Você dominou a técnica crucial de remover entradas duplicadas combinando sort e uniq, e praticou a classificação de listas de palavras alfabeticamente. Finalmente, você usou awk para filtrar listas de palavras com base em critérios de comprimento específicos. Essas habilidades são fundamentais para qualquer pessoa que trabalhe com dados de texto, especialmente em cibersegurança para tarefas como quebra de senhas, fuzzing e análise de dados. Agora você tem uma base sólida para manipular e refinar listas de palavras para atender a diversos requisitos.