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 programaawk.length($0): Retorna o comprimento da linha inteira ($0refere-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
awkimprime 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.


