Crear y Gestionar Listas de Palabras Personalizadas

Kali LinuxBeginner
Practicar Ahora

Introducción

En este laboratorio, explorará las técnicas fundamentales para crear y gestionar listas de palabras personalizadas utilizando utilidades estándar de la línea de comandos de Linux. Las listas de palabras son cruciales en diversas tareas de ciberseguridad y procesamiento de datos, desde ataques de fuerza bruta de contraseñas hasta fuzzing de aplicaciones y análisis de datos de texto. Aprenderá a generar listas de palabras simples, combinar múltiples listas, eliminar entradas duplicadas, ordenarlas alfabéticamente y filtrarlas según su longitud. Al final de este laboratorio, tendrá una comprensión sólida de cómo manipular archivos de texto de manera eficiente para crear listas de palabras personalizadas para sus necesidades específicas.

Generar una Lista de Palabras Personalizada Simple

En este paso, aprenderá a crear una lista de palabras personalizada básica utilizando el comando echo y la redirección. Esta es la forma más sencilla de generar un archivo que contenga algunas palabras, cada una en una nueva línea.

Primero, navegue a su directorio de proyecto si aún no está allí:

cd ~/project

Ahora, cree una lista de palabras simple llamada my_wordlist.txt con algunas palabras:

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

La opción -e habilita la interpretación de secuencias de escape de barra invertida, y \n crea una nueva línea. El > redirige la salida al archivo especificado, creándolo si no existe o sobrescribiéndolo si ya existe.

Para verificar el contenido de su lista de palabras recién creada, utilice el comando cat:

cat my_wordlist.txt

Debería ver la siguiente salida:

apple
banana
orange
grape

A continuación, agreguemos más palabras a la misma lista de palabras sin sobrescribir su contenido existente. Utilizaremos el operador >> para añadir al final.

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

Verifique el contenido actualizado:

cat my_wordlist.txt

La salida ahora debería incluir las palabras recién agregadas:

apple
banana
orange
grape
kiwi
strawberry
blueberry

Este método es útil para generar rápidamente listas de palabras pequeñas y personalizadas o para agregar entradas a las existentes.

Combinar Múltiples Listas de Palabras

En este paso, aprenderá a combinar el contenido de múltiples listas de palabras en una única lista consolidada. Esta es una tarea común cuando tiene diferentes fuentes de palabras que desea fusionar.

Primero, creemos otra lista de palabras pequeña llamada additional_words.txt:

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

Verifique su contenido:

cat additional_words.txt

Debería ver:

melon
peach
plum

Ahora, combinaremos my_wordlist.txt y additional_words.txt en un nuevo archivo llamado combined_wordlist.txt. Utilizaremos el comando cat para concatenar los archivos y redirigir la salida.

cat my_wordlist.txt additional_words.txt > combined_wordlist.txt

Inspeccione el contenido de combined_wordlist.txt:

cat combined_wordlist.txt

La salida mostrará todas las palabras de ambos archivos, en el orden en que fueron concatenadas:

apple
banana
orange
grape
kiwi
strawberry
blueberry
melon
peach
plum

Esta técnica es muy flexible y se puede utilizar para combinar cualquier número de listas de palabras.

Eliminar Duplicados de una Lista de Palabras

Las listas de palabras a menudo contienen entradas duplicadas, especialmente después de combinar múltiples fuentes. En este paso, aprenderá a eliminar estos duplicados utilizando los comandos sort y uniq. El comando uniq solo detecta líneas duplicadas adyacentes, por lo que es crucial ordenar el archivo primero.

Agreguemos intencionalmente algunas entradas duplicadas a nuestro combined_wordlist.txt para demostrar esto.

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

Ahora, vea el contenido de combined_wordlist.txt para observar los duplicados:

cat combined_wordlist.txt

Notará que apple, banana y melon aparecen varias veces.

Para eliminar duplicados, primero ordenamos el archivo y luego enviamos la salida a uniq. Guardaremos el resultado en un nuevo archivo, unique_wordlist.txt.

sort combined_wordlist.txt | uniq > unique_wordlist.txt

Ahora, inspeccione unique_wordlist.txt:

cat unique_wordlist.txt

La salida ahora debería contener solo entradas únicas, ordenadas alfabéticamente:

apple
banana
blueberry
grape
kiwi
melon
orange
peach
plum
strawberry

Esta es una combinación potente de comandos para limpiar listas de palabras.

Ordenar una Lista de Palabras Alfabéticamente

Ordenar una lista de palabras alfabéticamente es a menudo útil para la organización, una lectura más fácil y como requisito previo para otras operaciones como la eliminación de duplicados (como se vio en el paso anterior). En este paso, ordenará explícitamente una lista de palabras.

Usaremos el comando sort en nuestro unique_wordlist.txt y guardaremos la salida ordenada en sorted_wordlist.txt. Aunque unique_wordlist.txt ya está ordenado, este paso demuestra el comando sort de forma independiente.

sort unique_wordlist.txt > sorted_wordlist.txt

Ahora, vea el contenido de sorted_wordlist.txt:

cat sorted_wordlist.txt

La salida serán las palabras en orden alfabético:

apple
banana
blueberry
grape
kiwi
melon
orange
peach
plum
strawberry

El comando sort tiene muchas opciones, como -r para orden alfabético inverso, o -n para orden numérico. Por ejemplo, para ordenar en orden inverso:

sort -r unique_wordlist.txt

Esto produciría la siguiente salida:

strawberry
plum
peach
orange
melon
kiwi
grape
blueberry
banana
apple

Para este laboratorio, nos ceñiremos al orden alfabético predeterminado.

Filtrar una Lista de Palabras por Longitud

A veces es necesario filtrar una lista de palabras basándose en la longitud de las palabras. Por ejemplo, es posible que solo desee palabras de entre 5 y 8 caracteres de longitud. En este paso, utilizará el comando awk para filtrar palabras por su longitud.

Filtraremos sorted_wordlist.txt para incluir solo palabras cuya longitud esté entre 5 y 7 caracteres (inclusive). La función length($0) en awk devuelve la longitud de la línea actual (palabra).

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

Ahora, inspeccione el contenido de filtered_wordlist.txt:

cat filtered_wordlist.txt

La salida debería contener solo palabras que cumplan los criterios de longitud:

apple
banana
orange
grape
melon
peach

Analicemos el comando awk:

  • awk: La utilidad de línea de comandos para el procesamiento de texto.
  • 'length($0) >= 5 && length($0) <= 7': Este es el programa awk.
    • length($0): Devuelve la longitud de toda la línea ($0 se refiere a la línea completa).
    • >= 5: Comprueba si la longitud es mayor o igual a 5.
    • &&: Operador lógico AND.
    • <= 7: Comprueba si la longitud es menor o igual a 7.
    • Si la condición es verdadera, awk imprime la línea por defecto.
  • sorted_wordlist.txt: El archivo de entrada.
  • > filtered_wordlist.txt: Redirige la salida a un nuevo archivo.

Esta capacidad de filtrado es muy potente para refinar listas de palabras para propósitos específicos.

Resumen

En este laboratorio, ha aprendido con éxito a crear y gestionar listas de palabras personalizadas utilizando diversas herramientas esenciales de la línea de comandos de Linux. Comenzó generando listas de palabras simples con echo y redirección, luego combinó varias listas usando cat. Dominó la técnica crucial de eliminar entradas duplicadas combinando sort y uniq, y practicó la ordenación alfabética de listas de palabras. Finalmente, utilizó awk para filtrar listas de palabras basándose en criterios de longitud específicos. Estas habilidades son fundamentales para cualquiera que trabaje con datos de texto, especialmente en ciberseguridad para tareas como el cracking de contraseñas, fuzzing y análisis de datos. Ahora tiene una base sólida para manipular y refinar listas de palabras para satisfacer diversos requisitos.