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 programaawk.length($0): Devuelve la longitud de toda la línea ($0se 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,
awkimprime 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.


