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
cook — Un framework de wordlists pour satisfaire vos envies avec vos wordlists. Pour les chercheurs en sécurité, chasseurs de bugs et hackers. | Kitploit
Outils/GitHubGitHub/glitchedgitz/cook
Cassage de Mots de PasseFuzzingTests d'IntrusionUtilitaires et Frameworks
GitHubglitchedgitz/cook

cook

Un framework de wordlists pour satisfaire vos envies avec vos wordlists. Pour les chercheurs en sécurité, chasseurs de bugs et hackers.

Voir le dépôt
1.4k140il 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
Site web

COOK

Un générateur de wordlist surpuissant, capable de diviser, fusionner, rechercher, sauvegarder, créer des permutations et combinaisons de mots, appliquer différents encodages/décodages et tout ce dont vous avez besoin.

Tueur de frustration ! & Personnalisable !

Index

  • Installation
    • Configuration
  • Base
    • Plages
    • Approche par paramètres
  • Les ingrédients de COOK
    • Catégories
    • Enregistrer des wordlists/listes/chaines de caractères dans my.yaml
    • Fonctions
    • Personnaliser my.yaml
      ▸ Ajouter/Mettre à jour
      ▸ Supprimer
    • Fichier local / URL distante
  • Méthodes
    • Encodages multiples
    • Briser les conventions de nommage 💫
    • Toutes les méthodes cook help methods
  • Exemples d'utilisation
    • Joindre des wordlists ligne par ligne
    • Afficher à chaque étape
    • Combiner avec d'autres outils
  • UTILISATION ULTIME
    • Exemple d'utilisation réelle :
  • Opérateur de répétition * et **
  • Règles d'analyse
  • Drapeaux (Flags)
  • Utiliser comme bibliothèque
  • Partagez vos recettes/ingrédients dans cook-ingredients
  • Contribuer

Installation

Utilisez Go ou téléchargez les dernières versions

root@kitploit:~
go install -v github.com/glitchedgitz/cook/v2/cmd/cook@latest

Configuration

À partir de la version v2.2, cook enregistre cook-ingredients dans $home/.config/cook/cook-ingredients

Pour changer, créez une variable de chemin nommée COOK=[VOTRE CHEMIN]

Base

Sans les bases, tout est complexe.

Plages

Approche par paramètres

Nommez-les comme vous voulez et utilisez-les pour générer le motif. Cela sera plus utile lorsque vous appliquerez un encodage colonne par colonne à l'aide des méthodes.

root@kitploit:~
cook -start intigriti,bugcrowd  -sep _,- -end users.rar,secret.zip  / start sep end
root@kitploit:~
Remarque : vous devez inclure le paramètre dans le motif, sinon rien ne sera affiché.

Les ingrédients de COOK

Cook dépend de cook-ingredients, qui sont des collections de fichiers .yaml contenant des jeux de mots, fonctions, ports, wordlists provenant de assetnotes, seclist, fuzzdb, 15+ etc.

Catégories

Enregistrer des wordlists/listes/chaines de caractères dans my.yaml

Fonctions

root@kitploit:~
cook -dob date[17,Sep,1994] elliot _,-, dob

Personnaliser my.yaml

Modifiez my.yaml manuellement ou utilisez ces commandes.

▸ Ajouter/Mettre à jour

Si le mot-clé n'existe pas, il sera créé. Sinon, il sera mis à jour et la nouvelle valeur sera ajoutée à la même variable.

root@kitploit:~
# Syntaxe
cook add [mot-clé]=[valeur1, valeur2, ..., valeurN] dans [catégorie]

# Commande
cook add nom_unique=mot1,mot2,mot3 in lists

▸ Supprimer

root@kitploit:~
cook delete [mot-clé]

Fichier local / URL distante

Utilisez : après le nom du paramètre.

root@kitploit:~
cook -f: live.txt f
root@kitploit:~
cook -f: https://example.com/wordlist.txt f

Accéder aux wordlists depuis les bases de données

Cook a récupéré plusieurs dépôts et peut directement utiliser les wordlists de ces dépôts...

assetnotes, seclist, fuzzdb, etc.

Méthodes

Grâce aux méthodes, vous pouvez encoder, décoder, inverser, diviser, trier, extraire et bien plus encore...

Les méthodes peuvent être appliquées sur la sortie finale ou colonne par colonne

  • -m/-method pour appliquer des méthodes sur la sortie finale
  • -mc/-methodcol pour appliquer colonne par colonne.
  • param.nomdelaméthode s'applique à n'importe quel paramètre (nous verrons ce principe avec les paramètres plus tard).

Encodages multiples

  • Encodages superposés :
    • Utilisez le point .
    • md5.b64e.urle applique plusieurs méthodes l'une après l'autre.
    • Logique de sortie :
      • Motif généré > hachage md5 > encodage base 64 > encodage URL.
  • Encodages différents :
    • Utilisez la virgule ,
    • md5,sha1,sha256 applique différents encodages au même motif généré.
    • Logique de sortie :
      • Motif généré > hachage md5
      • Motif généré > hachage sha1
      • Motif généré >

Briser les conventions de nommage 💫

Un accent particulier sur ces deux méthodes, elles vous seront d'une grande aide à chaque fois que vous utilisez une wordlist.

Smart Break -m smart

root@kitploit:~
▶ cook adminNew,admin_new -m smart
root@kitploit:~
Sortie :

admin
New
admin
new

Smart Join -m smartjoin[<case>:<char>]

Il brise et ré-assemble avec le caractère fourni.

root@kitploit:~
▶ cook adminNew,admin-old -m smartjoin[:_]
root@kitploit:~
Sortie :

admin_New
admin_old

Appliquer des casses sur les mots séparés

Ici, nous avons appliqué le camelCase

root@kitploit:~
▶ cook suppose_this_is_long_text -m smartjoin[c:_]
root@kitploit:~
Sortie :

suppose_This_Is_Long_Text

Toutes les méthodes cook help methods

root@kitploit:~
sort                           - Trier
sortu                          - Trier avec valeurs uniques uniquement
reverse                        - Inverser la chaîne
leet                           - a->4, b->8, e->3 ...
                                    leet[0] ou leet[1]

smart                          - Séparer les mots selon les conventions de nommage
                                    redirectUri, redirect_uri, redirect-uri  ->  [redirect, uri]
smartjoin                      - Sépare les mots des conventions de nommage &
                                    param.smartjoin[c,_] (case, join)
                                    redirect-uri, redirectUri, redirect_uri ->  redirect_Uri

u          upper               - Majuscules
l          lower               - Minuscules
t          title               - Première lettre en majuscule

Opérations sur les chaînes

root@kitploit:~
split                          - split[char]
splitindex                     - splitindex[char:index]
replace                        - Remplacer tout replace[ceci:parceci]

JSON

root@kitploit:~
json                           - Extraire un champ JSON
                                    json[clé] ou json[clé:sous-clé:sous-sous-clé]

Opérations sur les URLs

root@kitploit:~
fb         filebase            - Extraire le nom de fichier d'un chemin ou d'une URL
s          scheme              - Extraire http, https, gohper, ws, etc. d'une URL
           user                - Extraire le nom d'utilisateur d'une URL
           pass                - Extraire le mot de passe d'une URL
h          host                - Extraire l'hôte d'une URL
p          port                - Extraire le port d'une URL
ph         path                - Extraire le chemin d'une URL
f          fragment            - Extraire le fragment d'une URL
q          query               - Extraire toute la requête d'une URL
k          keys                - Extraire les clés d'une URL
v          values              - Extraire les valeurs d'une URL
d          domain              - Extraire le domaine d'une URL
           tld                 - Extraire le TLD d'une URL
           alldir              - Extraire tous les répertoires du chemin d'une URL
sub        subdomain           - Extraire le sous-domaine d'une URL
           allsubs             - Extraire tous les sous-domaines d'une URL

Encodage/Décodage

root@kitploit:~
b64e       b64encode           - Encodage Base64
b64d       b64decode           - Décodage Base64

           charcode            - Donne l'encodage charcode
                                    - charcode[0]
                                        &#97&#98&#99
                                    - charcode[1] avec point-virgule
                                        &#97;&#98;&#99;

hexe       hexencode           - Encodage hexadécimal d'une chaîne
hexd       hexdecode           - Décodage hexadécimal d'une chaîne

jsone      jsonescape          - Échappement JSON
jsonu      jsonunescape        - Déséchappement JSON

urle       urlencode           - Encodage URL des caractères réservés
            utf16                - Encodage UTF-16 (Little Endian)
            utf16be              - Encodage UTF-16 (Big Endian)
urld       urldecode           - Décodage URL
urleall    urlencodeall        - Encodage URL de tous les caractères

xmle       xmlescape           - Échappement XML
xmlu       xmlunescape         - Déséchappement XML

unicodee   unicodeencodeall    - Encodage d'échappement Unicode d'une chaîne (tous les caractères)
unicoded   unicodedecode       - Décodage d'échappement Unicode d'une chaîne

HACHAGES

root@kitploit:~
md5                            - Somme MD5
sha1                           - Somme de contrôle SHA1
sha224                         - Somme de contrôle SHA224
sha256                         - Somme de contrôle SHA256
sha384                         - Somme de contrôle SHA384
sha512                         - Somme de contrôle SHA512

Exemples d'utilisation

Quelques cas d'usage généraux pour comprendre Cook.

▸ Sites utilisant un suffixe/préfixe personnalisé ?

▸ Joindre des wordlists ligne par ligne

Utilisez le drapeau -append :

root@kitploit:~
cook -l: live.txt -p: payloads.txt l / p -append 2
root@kitploit:~
# Colonnes multiples
cook col1 col2 col3 col4 col5 -append 2,5

Remarque : Parfois il est difficile de trouver l'index d'une colonne, utilisez alors -col

▸ Afficher à chaque étape

Si vous voulez commencer à afficher les données à chaque permutation, utilisez le drapeau -min

Remarque : Parfois il est difficile de trouver l'index d'une colonne, utilisez alors -col

Combiner avec d'autres outils

Générez un motif et combinez-le avec d'autres outils via un PIPE.

root@kitploit:~
cook [Motif généré] | [N'importe quel outil acceptant une entrée par pipe]

▸ Fuzzing d'authentification Basic avec FFUF

root@kitploit:~
cook liste_utilisateurs : liste_mots_de_passe -m b64e | ffuf -u https://target.com -w - -H "Authorization: Basic FUZZ"

▸ Fuzzing de charge utile nulle avec FFUF

root@kitploit:~
cook https://target.com/**100 | ffuf -u FUZZ -w -

▸ Paramètres cachés avec x8

root@kitploit:~
cook [sortie générée] | x8 -u https://target.com

▸ Domaines de premier niveau actifs avec dnsx ou httprobe

root@kitploit:~
cook example.com seclists-tlds.txt  | dnsx -v

UTILISATION ULTIME

Trop puissant ? Mais tous les jours, vous tombez sur des trucs bizarres en Bug Bounty, comme un gros fichier JSON provenant d'une cible ? Peut-être voulez-vous extraire, joindre, fusionner ou autre. Vous pouvez utiliser Cook intelligemment selon votre cas d'usage.

Exemple d'utilisation réelle :

En tant que chasseur de bugs, nous rencontrons souvent des fichiers JSON. Peut-être lisez-vous un blog pour trouver une wordlist à enregistrer dans votre collection.

Prenons ce blog sur les vulnérabilités IIS Shortname : https://blog.assetnote.io/2020/09/18/finding-hidden-files-folders-iis-bigquery/.

Assetnote a partagé un GROS FICHIER ZIP. Vous avez besoin de quelque chose qui puisse sauvegarder ce fichier et que vous puissiez le rappeler quand vous en avez besoin.

Enregistrez-le comme ceci... cela sauvegardera le fichier dans my.yaml

root@kitploit:~
cook add shub_zip_files=[URL] in files

Ou enregistrez-le manuellement dans my.yaml :

root@kitploit:~
shub_zip_files: [https://storage.googleapis.com/zipfilesbq/zipfiles.json]

Remarque : cook a déjà enregistré ce fichier dans ses wordlists par défaut, vous pouvez utiliser cook shub_zip_files pour y accéder

▸ Le fichier contient des données comme celles-ci, mais ce n'est pas directement utilisable.

root@kitploit:~
{"repo_name":"cocowool/RoseCMS","ref":"refs/heads/1","path":"user_guide/_downloads/ELDocs.tmbundle.zip","mode":"33261","id":"f7a11b364ca918379b48ad525798148e7470b6b1"}
{"repo_name":"xuguanfeng/practise","ref":"refs/heads/1","path":"node_modules/selenium-webdriver/node_modules/adm-zip/test/assets/fast.zip","mode":"33188","id":"f4ed17b98c9d7bcd21efc4523ce75fbe2b071d0a"}
{"repo_name":"xuguanfeng/practise","ref":"refs/heads/1","path":"node_modules/selenium-webdriver/node_modules/adm-zip/test/assets/store.zip","mode":"33188","id":"e2add30dc0e3129dc89e20a71abe7314052d0002"}
{"repo_name":"xuguanfeng/practise","ref":"refs/heads/1","path":"node_modules/selenium-webdriver/node_modules/adm-zip/test/assets/ultra.zip","mode":"33188","id":"86a8ec776107c075ce2c7f803472aa97dc25cbf7"}
{"repo_name":"xuguanfeng/practise","ref":"refs/heads/1","path":"node_modules/selenium-webdriver/node_modules/adm-zip/test/assets/normal.zip","mode":"33188","id":"b4602c94ee000ee54c71c9302b9db956b3fd9f0e"}
{"repo_name":"xuguanfeng/practise","ref":"refs/heads/1","path":"node_modules/selenium-webdriver/node_modules/adm-zip/test/assets/fastest.zip","mode":"33188","id":"f4ed17b98c9d7bcd21efc4523ce75fbe2b071d0a"}
{"repo_name":"xuguanfeng/practise","ref":"refs/heads/1","path":"node_modules/selenium-webdriver/node_modules/adm-zip/test/assets/maximum.zip","mode":"33188","id":"86a8ec776107c075ce2c7f803472aa97dc25cbf7"}
...

Disons que vous avez besoin de :
▸ Extraire le champ JSON path
▸ Extraire le filebase du path
▸ Puis le diviser selon les conventions de nommage

Solution en une seule ligne

▸ Avec Cook, non seulement nous pouvons l'extraire, mais nous pouvons aussi extraire le filebase du chemin, trier les uniques, puis utiliser smartjoin pour créer différentes permutations.

root@kitploit:~
cook -z shub_zip_files z.json[path].fb.sortu.smartjoin[c:_]

Et c'est aussi ainsi que Cook est né, en fuzzoant les IIS Shortnames et plus tard j'ai ajouté d'autres fonctionnalités.

Opérateur de répétition * et **

  • Utilisez * pour la répétition horizontale.
  • Utilisez ** pour la répétition verticale.
  • Et essayez ceci *10-1 ou ceci *1-10.

Règles d'analyse

Drapeaux (Flags)

Utiliser comme bibliothèque

Vous pouvez utiliser Cook comme bibliothèque dans vos projets Go.

Utilisation de base

root@kitploit:~
package main

import (
	"fmt"
	"github.com/glitchedgitz/cook/v2/pkg/cook"
)

func main() {
	// Créer une nouvelle instance de cook
	cookInst := cook.New(&cook.COOK{
		Pattern:     []string{"a,b,c", "1,2,3"},
		PrintResult: false, // Ne pas afficher sur stdout
	})

	// Générer le motif
	cookInst.Generate()

	fmt.Println("Motifs générés :", cookInst.Final)
}

Génération efficace de motifs multiples (v2.X.X et supérieur)

Pour générer plusieurs motifs sans réinitialiser les ressources à chaque fois :

root@kitploit:~
package main

import (
	"fmt"
	"github.com/glitchedgitz/cook/v2/pkg/cook"
)

func main() {
	// Créer un générateur qui initialise les ressources partagées une fois
	generator := cook.NewGenerator()

	// Générer plusieurs motifs efficacement
	liste1 := generator.Generate([]string{"a,b,c", "1,2,3"})
	liste2 := generator.Generate([]string{"admin", "password-2023"})

	fmt.Println("Motif 1 :", liste1)
	fmt.Println("Motif 2 :", liste2)
}

Génération concurrente de motifs

Le générateur supporte également la génération concurrente de motifs :

root@kitploit:~
package main

import (
	"fmt"
	"sync"
	"github.com/glitchedgitz/cook/v2/pkg/cook"
)

func main() {
	generator := cook.NewGenerator()
	patterns := [][]string{
		{"user-1-5", "pass-1-3"},
		{"admin", "Admin-2023-2025"},
	}

	var wg sync.WaitGroup
	results := make([][]string, len(patterns))

	// Générer les motifs de manière concurrente
	for i, pattern := range patterns {
		wg.Add(1)
		go func(idx int, p []string) {
			defer wg.Done()
			results[idx] = generator.Generate(p)
		}(i, pattern)
	}

	wg.Wait()

	// Utiliser les résultats
	for i, r := range results {
		fmt.Printf("Le motif %d a généré %d résultats\n", i, len(r))
	}
}

Exemple de recherche

Recherchez dans cook-ingredients en utilisant la bibliothèque :

root@kitploit:~
package main

import (
	"fmt"
	"github.com/glitchedgitz/cook/v2/pkg/cook"
)

func main() {
	cookInst := cook.NewWithoutConfig()
	results := cookInst.Search("api")
	fmt.Printf("Motifs API trouvés : %v\n", results)
}

Partagez vos recettes et ingrédients dans cook-ingredients

  • Partagez votre fichier yaml avec la communauté

Contribuer

  • Utilisez la concurrence et rendez-le plus rapide
  • Auto-complétion pour les shells
  • Faire fonctionner append comme ceci cook fichier1 =/= fichier2, assurez-vous que les caractères fonctionnent directement avec tous les terminaux.
  • Faire en sorte que la chaîne brute fonctionne comme dans les langages de programmation. Cela signifie un meilleur analyseur.
  • Je ne sais pas, vous pourriez utiliser votre créativité et ajouter des fonctionnalités géniales.
  • Vous pouvez m'offrir un café☕
Télécharger l’outil
CatégorieDescription
listsTableau de valeurs à utiliser directement lorsqu'elles sont appelées
filesTableau d'URLs
portsPlages de nombres
raw-filesTableau de fichiers locaux
functionsLes fonctions sont utilisées pour générer des motifs
hachage sha256
ColonnesSéparées par un espace
ValeursSéparées par une virgule
ParamètresVous pouvez donner n'importe quel nom à un paramètre, utilisez - avant quelque chose pour en faire un paramètre -param valeur
Chaînes brutesUtilisez ` avant et après la chaîne pour stopper l'analyse de Cook. Utile quand vous devez utiliser un mot-clé comme un mot ordinaire.
Entrée par pipePrenez une entrée par pipe en utilisant - comme valeur d'un paramètre.
Entrée fichierUtilisez : après le nom du paramètre pour prendre une entrée fichier. cook -f: live.txt f
FonctionsPeuvent être appelées uniquement via les paramètres.
MéthodesPeuvent être utilisées sur les paramètres ou sur la sortie finale
DrapeauUtilisation
-peekAperçu de la sortie en utilisant -peek 50 pour les 50 premières lignes
-a, -appendAjoute aux lignes précédentes, au lieu de permutations
-c, -colAffiche les numéros de colonnes et leurs valeurs
-conf, -configInformations de configuration
-mc, -methodcolApplique les méthodes colonne par colonne -mc 0:md5,b64e; 1:reverse
Pour toutes les colonnes, séparez -mc md5,b64e
-m, -methodApplique les méthodes à la sortie finale
-h, -helpAide
-minNombre minimum de colonnes à afficher