Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
gorilla — outil pour générer des listes de mots ou étendre une liste existante à l'aide de mutations. | Kitploit
Outils/GitHubGitHub/andreiverse/gorilla
Cassage de Mots de PasseAttaques de Mots de PasseCollecte d'InformationsCrawler
GitHubandreiverse/gorilla

gorilla

outil pour générer des listes de mots ou étendre une liste existante à l'aide de mutations.

Voir le dépôt
39022il y a 6 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

gorilla

gorilla est l'outil ultime de listes de mots, regroupant de nombreuses fonctionnalités étonnantes telles que :

  • la génération de listes de mots basées sur des motifs (comme crunch)
  • la génération de listes de mots basées sur des formats courants de mots de passe/noms d'utilisateur (comme cupp)
  • l'extraction des mots d'une page web pour créer une liste de mots (comme cewl)
  • l'extension de listes de mots existantes à l'aide de mutations (comme l'attaque basée sur des règles de hashcat)

installation avec cargo

Avec Cargo de Rust installé, exécutez cargo install --git https://github.com/d4rckh/gorilla --branch main

Vous devriez maintenant pouvoir exécuter gorilla --help

compilation avec cargo

root@kitploit:~
cargo build --release
# the binary will be located in target/release folder

génération de mots de passe

L'argument --from-pattern/-p est utilisé pour demander à gorilla de générer des mots de passe basés sur un motif. Par exemple, la commande suivante affichera chaque mot contenant 5 lettres minuscules.

root@kitploit:~
gorilla --from-pattern "{a-z}{a-z}{a-z}{a-z}{a-z}"

D'autres exemples de motifs sont administrator{0-9} (administrator0 -> administrator9) ; hello_world{a-z}{0-9} (hello_worlda0 -> hello_worldz9).

Si vous souhaitez enregistrer la sortie dans un fichier, vous pouvez utiliser l'argument --output-file/-o.

image

Gorilla prend désormais également en charge les jeux de caractères. Ils sont définis dans src/char_sets.rs. Voici quelques exemples de motifs qui les utilisent : {l} => a b c d ... z ; {u} => A B C D ... Z ; {d} => 1 2 3 4 ... 9 ; {s} => (espace) ! " # $ ... ~. Vous pouvez en combiner plusieurs, ainsi {luds} donnerait un jeu de caractères contenant tous les autres jeux de caractères décrits (#45).

Si vous utilisez une plage et que chaque extrémité comporte 1 caractère, vous effectuez une plage de caractères. Par exemple :

  • {a-z} ajoutera chaque caractère de l'alphabet, un à la fois : a, b, c, d, e, f, g,...., x, y et z ;
  • {a-c} ajoutera uniquement a, b et c, un à la fois ;
  • {0-9} ajoutera uniquement 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, un à la fois. Si vous utilisez une plage et que l'une des extrémités comporte plus d'un caractère, chaque extrémité sera analysée comme un nombre non signé de 32 bits et donnera à la place une plage numérique. Par exemple :
  • {2020-2026} ajoutera 2020, 2021, 2022, 2023, 2024, 2025 et 2026, un à la fois.
  • {1-100} ajoutera les nombres de 1 à 100 (inclus), un à la fois.

Expérimental : si l'intérieur de vos accolades contient une virgule, la chaîne sera divisée par celle-ci et chaque partie sera ajoutée, une à la fois. Par exemple, {Jan,Feb,Mar} ajoutera Jan, Feb et Mar, un à la fois.

Vous pouvez éventuellement lancer plusieurs threads de génération de motifs à l'aide du paramètre --pattern-threads. Je recommande de le définir sur le nombre maximal de threads disponibles sur votre ordinateur.

modification de listes de mots existantes à l'aide de mutations/règles

Grâce aux arguments de la ligne de commande, vous pouvez effectuer toutes les mutations prises en charge, mais vous êtes limité à un seul ensemble de mutations. Un ensemble de mutations est un ensemble de mutations appliquées à un mot. Via la CLI, les mutations sont fournies via l'argument --mutation/-m.

root@kitploit:~
gorilla --from-pattern "administrator" --mutation "prepend:_"

image

En général, vous souhaiterez utiliser l'argument --from-file/-i plutôt que --from-pattern dans ce cas pour spécifier une liste de mots au lieu d'un seul mot, mais par souci de simplicité, j'utiliserai cela.

La commande ci-dessus prend 1 mot en entrée et affiche 1 mot : _administrator. Vous pouvez ajouter plusieurs mutations en utilisant le même paramètre.

root@kitploit:~
gorilla --from-pattern "administrator" \
  -m "prepend:_" \
  -m "append:{0-9}"

Cette fois encore, elle prend 1 seul mot, mais en affichera 10 différents. L'ajout de la syntaxe {0-9} à prepend et append générera plusieurs mots. La commande ci-dessus génère les mots suivants.

root@kitploit:~
_administrator0
_administrator1
_administrator2
[.. snip ..]
_administrator8
_administrator9

Si nous fournissions une liste de mots via le fichier -i, nous obtiendrions le nombre de mots de cette liste multiplié par 10.

Jusqu'à présent, nous n'avons appliqué qu'un seul ensemble de mutations. En général, vous souhaiterez en combiner plusieurs. Cela se fait via les fichiers YAML. Vous en spécifiez un avec l'argument --mutations-file/-f. Un exemple se trouve dans le fichier sets/simple.yml de ce dépôt et ressemble à ceci :

root@kitploit:~
name: simple

mutation_sets:
  - [ nothing ] # => word
  - [ reverse ] # => drow
  - [ remove_last_letter ] # => wor
  - [ remove_first_letter ] # => ord
  - [ uppercase_all ] # => WORD
  - [ "append:{0-9}" ] # => word1, word2, word3
  - [ "2 append:{0-9}" ] # => word11, word22, word33
  - [ "replace:o:0", "replace:a:4", "replace:e:3" ] # => w0rd, h3ll0

image

Chaque fichier de mutations doit avoir une valeur name et une valeur mutation_sets comme indiqué dans l'exemple. Les ensembles de mutations ci-dessus généreront, à partir d'un seul mot, 27 autres mots.

root@kitploit:~
administrator
administrator
rotartsinimda
administrato
dministrator
ADMINISTRATOR
administrator0
[.. snip ..]
administrator9
administrator00
[.. snip ..]
administrator99
4dministr4t0r

Si vous souhaitez vérifier que votre fichier de mutations ne contient pas d'erreurs avant de l'utiliser, vous pouvez utiliser la syntaxe suivante pour l'analyser et afficher le résumé.

root@kitploit:~
gorilla --mutations-file muts.yml 

extraction des mots d'une page web

(Pour l'instant) vous ne pouvez extraire les mots que d'une page spécifique. Les balises style et script sont automatiquement supprimées.

Vous pouvez spécifier une page à l'aide de l'argument --from-website/-w. Par exemple

root@kitploit:~
gorilla --from-website https://example.org/

image

La commande ci-dessus affichera chaque mot de ce site web. Vous pouvez ajouter d'autres arguments présentés précédemment, comme --mutations-file/-f, --mutation/-m et bien sûr --output-file/-o pour les enregistrer (au lieu de les afficher).

mutations conditionnelles

Vous pouvez appliquer un ensemble de mutations à des mots spécifiques qui satisfont certaines conditions. Cela n'a de sens que dans les fichiers YAML.

Le fichier de mutations suivant supprimera les mots qui ne contiennent pas la chaîne admin. Contrairement aux mutations précédentes, celle-ci peut supprimer des mots.

root@kitploit:~
name: filtering_words

mutation_sets:
  - [ "if_contains:admin" ]

Un autre exemple est le suivant, qui ajoutera un underscore uniquement aux mots de plus de 5 caractères.

root@kitploit:~
name: conditional_mutation

mutation_sets:
  - [ "if_length:>5", "append:_" ],
  - [ "! if_length:>5" ]

Remarquez que nous avons dû ajouter un autre ensemble de mutations commençant par la version négative de la première mutation conditionnelle, car sinon les mots de moins de 6 caractères seraient supprimés.

autres mutations

gorilla prend en charge de nombreuses autres mutations et, comme l'outil est encore en développement, il serait très pénible d'en maintenir une liste ici. Si vous êtes curieux de connaître les autres mutations, vous pouvez consulter l'enum Action du fichier src/mutation.rs.

utilisation de formats courants de mots de passe/noms d'utilisateur pour créer des listes de mots

Les formats sont définis dans des ensembles de formatage via des fichiers YAML et sont fournis à gorilla via l'argument --from-formatting/-q. Actuellement, un seul ensemble de formatage a été créé, situé dans sets/formatting/basic_usernames.yml. Il ressemble (approximativement) à ceci.

root@kitploit:~
name: basic_usernames

fields:
  - [ f_name ]
  - [ l_name ]

formatting_sets:
  - [ "{f_name}_{l_name}" ]
  - [ "{l_name}{f_name}" ]
  - [ ["{f_name}", [1st_letter]], "_{l_name}" ]
  - [ ["{f_name}", [1st_letter]], "{l_name}" ]

Les champs requis sont name, fields et formatting_sets. La valeur fields correspond au profil de l'utilisateur et contient des informations utilisées ensuite dans les formatting_sets.

Si vous exécutez l'ensemble, vous serez invité à saisir chaque champ et les noms d'utilisateur seront générés.

image

note : ne rendez pas les mutations dans les ensembles de formatage trop complexes, elles s'exécuteront toutes sur un seul thread ! Combinez le fichier de formatage avec un fichier de mutations pour exécuter des mutations en parallèle. N'utilisez pas de motifs combinatoires dans les ensembles de mutations des ensembles de formatage.

astuce : vous pouvez utiliser les autres arguments normalement, comme --mutations-file/-f pour générer de nouveaux mots via des mutations ou --output-file/-o pour enregistrer les mots.

Chaque ensemble de formatage est un tableau de chaînes qui sont ensuite concaténées. Ainsi, ["{f_name}", "{l_name}"] équivaut à ["{f_name}{l_name}"]. Au lieu d'une chaîne, vous pouvez fournir un tableau, ce qui vous permet d'appliquer des mutations que vous avez déjà utilisées pour étendre des listes de mots.

root@kitploit:~
- [ "{f_name}_", [ "{l_name}", [ reverse ] ] ]

Si f_name est joe et l_name est doe, le formatage résultant générera joe_eod. Les mutations utiles dans les ensembles de formatage sont remove_last_letter, remove_first_letter et 1st_letter.

Si vous souhaitez appliquer un ensemble de formatage à de nombreux profils utilisateur, vous pouvez utiliser l'argument --with-csv/-c pour fournir un fichier CSV. Pour l'ensemble de formatage basic_usernames, le CSV doit être formaté comme ceci :

root@kitploit:~
f_name,l_name
joe,doe
james,smith
robert,smith

image

toutes les mutations disponibles :

de base

  • append:PATTERN - ajoute un motif ou simplement un texte
  • prepend:PATTERN - préfixe un motif ou simplement un texte
  • replace:TEXT1:TEXT2 - remplace TEXT1 par TEXT2
  • reverse - inverse le mot
  • uppercase_all - met tout en majuscules
  • lowercase_all - met tout en minuscules
  • remove_first_letter - supprime la première lettre
  • remove_last_letter - supprime la dernière lettre
  • capitalize - met la première lettre du mot en majuscule (le reste en minuscules)
  • toggle_case - inverse la casse de chaque caractère

avancé

  • if_length:COND - efface le mot s'il ne correspond pas à la condition sur la longueur du mot (COND = >NUMBER/<NUMBER/=NUMBER)
  • if_contains:TEXT - identique à ci-dessus mais efface s'il ne contient pas un mot
  • clone - clone le mot
  • wipe - supprime tout du mot
  • 1st_letter - garde tout sauf la première lettre
  • nothing - ne fait rien
Télécharger l’outil