Créer et gérer des listes de mots personnalisées

Kali LinuxBeginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, vous explorerez les techniques fondamentales pour créer et gérer des listes de mots personnalisées à l'aide des utilitaires standard de la ligne de commande Linux. Les listes de mots sont cruciales dans diverses tâches de cybersécurité et de traitement de données, allant du brute-force de mots de passe au fuzzing d'applications et à l'analyse de données textuelles. Vous apprendrez à générer des listes de mots simples, à combiner plusieurs listes, à supprimer les doublons, à les trier par ordre alphabétique et à les filtrer en fonction de leur longueur. À la fin de ce laboratoire, vous aurez une solide compréhension de la manière de manipuler efficacement les fichiers texte pour créer des listes de mots sur mesure pour vos besoins spécifiques.

Générer une liste de mots personnalisée simple

Dans cette étape, vous apprendrez à créer une liste de mots personnalisée de base à l'aide de la commande echo et de la redirection. C'est la manière la plus simple de générer un fichier contenant quelques mots, chacun sur une nouvelle ligne.

Tout d'abord, naviguez vers votre répertoire de projet si vous n'y êtes pas déjà :

cd ~/project

Maintenant, créez une liste de mots simple nommée my_wordlist.txt avec quelques mots :

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

L'option -e active l'interprétation des échappements de barre oblique inverse, et \n crée une nouvelle ligne. Le > redirige la sortie vers le fichier spécifié, le créant s'il n'existe pas ou l'écrasant s'il existe.

Pour vérifier le contenu de votre liste de mots nouvellement créée, utilisez la commande cat :

cat my_wordlist.txt

Vous devriez voir la sortie suivante :

apple
banana
orange
grape

Ensuite, ajoutons d'autres mots à la même liste de mots sans écraser son contenu existant. Nous utiliserons l'opérateur >> pour l'ajout.

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

Vérifiez le contenu mis à jour :

cat my_wordlist.txt

La sortie devrait maintenant inclure les mots nouvellement ajoutés :

apple
banana
orange
grape
kiwi
strawberry
blueberry

Cette méthode est utile pour générer rapidement de petites listes de mots personnalisées ou pour ajouter des entrées à celles qui existent déjà.

Combiner plusieurs listes de mots

Dans cette étape, vous apprendrez à combiner le contenu de plusieurs listes de mots en une seule liste consolidée. C'est une tâche courante lorsque vous avez différentes sources de mots que vous souhaitez fusionner.

Tout d'abord, créons une autre petite liste de mots nommée additional_words.txt :

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

Vérifiez son contenu :

cat additional_words.txt

Vous devriez voir :

melon
peach
plum

Maintenant, nous allons combiner my_wordlist.txt et additional_words.txt dans un nouveau fichier appelé combined_wordlist.txt. Nous utiliserons la commande cat pour concaténer les fichiers et rediriger la sortie.

cat my_wordlist.txt additional_words.txt > combined_wordlist.txt

Inspectez le contenu de combined_wordlist.txt :

cat combined_wordlist.txt

La sortie affichera tous les mots des deux fichiers, dans l'ordre où ils ont été concaténés :

apple
banana
orange
grape
kiwi
strawberry
blueberry
melon
peach
plum

Cette technique est très flexible et peut être utilisée pour combiner un nombre quelconque de listes de mots.

Supprimer les doublons d'une liste de mots

Les listes de mots contiennent souvent des entrées en double, surtout après avoir combiné plusieurs sources. Dans cette étape, vous apprendrez à supprimer ces doublons à l'aide des commandes sort et uniq. La commande uniq ne détecte que les lignes dupliquées adjacentes, il est donc crucial de trier le fichier au préalable.

Ajoutons intentionnellement quelques entrées en double à notre combined_wordlist.txt pour le démontrer.

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

Maintenant, visualisez le contenu de combined_wordlist.txt pour voir les doublons :

cat combined_wordlist.txt

Vous remarquerez que apple, banana et melon apparaissent plusieurs fois.

Pour supprimer les doublons, nous trions d'abord le fichier, puis nous redirigeons la sortie vers uniq. Nous enregistrerons le résultat dans un nouveau fichier, unique_wordlist.txt.

sort combined_wordlist.txt | uniq > unique_wordlist.txt

Maintenant, inspectez unique_wordlist.txt :

cat unique_wordlist.txt

La sortie devrait maintenant contenir uniquement les entrées uniques, triées par ordre alphabétique :

apple
banana
blueberry
grape
kiwi
melon
orange
peach
plum
strawberry

C'est une combinaison puissante de commandes pour nettoyer les listes de mots.

Trier une liste de mots par ordre alphabétique

Trier une liste de mots par ordre alphabétique est souvent utile pour l'organisation, une meilleure lisibilité et comme prérequis pour d'autres opérations telles que la suppression des doublons (comme vu à l'étape précédente). Dans cette étape, vous trierez explicitement une liste de mots.

Nous utiliserons la commande sort sur notre unique_wordlist.txt et enregistrerons la sortie triée dans sorted_wordlist.txt. Bien que unique_wordlist.txt soit déjà trié, cette étape démontre la commande sort indépendamment.

sort unique_wordlist.txt > sorted_wordlist.txt

Maintenant, visualisez le contenu de sorted_wordlist.txt :

cat sorted_wordlist.txt

La sortie sera les mots par ordre alphabétique :

apple
banana
blueberry
grape
kiwi
melon
orange
peach
plum
strawberry

La commande sort possède de nombreuses options, telles que -r pour l'ordre alphabétique inverse, ou -n pour le tri numérique. Par exemple, pour trier dans l'ordre inverse :

sort -r unique_wordlist.txt

Ceci produirait la sortie suivante :

strawberry
plum
peach
orange
melon
kiwi
grape
blueberry
banana
apple

Pour ce laboratoire, nous nous en tiendrons au tri alphabétique par défaut.

Filtrer une liste de mots par longueur

Il est parfois nécessaire de filtrer une liste de mots en fonction de la longueur des mots. Par exemple, vous pourriez ne vouloir que des mots d'une longueur comprise entre 5 et 8 caractères. Dans cette étape, vous utiliserez la commande awk pour filtrer les mots par leur longueur.

Nous allons filtrer sorted_wordlist.txt pour inclure uniquement les mots dont la longueur est comprise entre 5 et 7 caractères (inclus). La fonction length($0) dans awk renvoie la longueur de la ligne courante (mot).

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

Maintenant, inspectez le contenu de filtered_wordlist.txt :

cat filtered_wordlist.txt

La sortie devrait contenir uniquement les mots répondant aux critères de longueur :

apple
banana
orange
grape
melon
peach

Décomposons la commande awk :

  • awk: L'utilitaire en ligne de commande pour le traitement de texte.
  • 'length($0) >= 5 && length($0) <= 7': C'est le programme awk.
    • length($0): Renvoie la longueur de la ligne entière ($0 fait référence à la ligne entière).
    • >= 5: Vérifie si la longueur est supérieure ou égale à 5.
    • &&: Opérateur logique ET (AND).
    • <= 7: Vérifie si la longueur est inférieure ou égale à 7.
    • Si la condition est vraie, awk imprime la ligne par défaut.
  • sorted_wordlist.txt: Le fichier d'entrée.
  • > filtered_wordlist.txt: Redirige la sortie vers un nouveau fichier.

Cette capacité de filtrage est très puissante pour affiner les listes de mots à des fins spécifiques.

Résumé

Dans ce laboratoire, vous avez appris avec succès à créer et gérer des listes de mots personnalisées à l'aide de divers outils essentiels de la ligne de commande Linux. Vous avez commencé par générer des listes de mots simples avec echo et la redirection, puis combiné plusieurs listes à l'aide de cat. Vous avez maîtrisé la technique cruciale de suppression des doublons en combinant sort et uniq, et vous vous êtes entraîné à trier les listes de mots par ordre alphabétique. Enfin, vous avez utilisé awk pour filtrer les listes de mots en fonction de critères de longueur spécifiques. Ces compétences sont fondamentales pour toute personne travaillant avec des données textuelles, en particulier en cybersécurité pour des tâches telles que le cassage de mots de passe, le fuzzing et l'analyse de données. Vous avez maintenant une base solide pour manipuler et affiner les listes de mots afin de répondre à diverses exigences.