Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
cook — Un framework de listas de palabras para satisfacer tus caprichos con tus listas de palabras. Para investigadores de seguridad, bug bounty y hackers. | Kitploit
Herramientas/GitHubGitHub/glitchedgitz/cook
Descifrado de ContraseñasFuzzingPruebas de PenetraciónUtilidades y Frameworks
GitHubglitchedgitz/cook

cook

Un framework de listas de palabras para satisfacer tus caprichos con tus listas de palabras. Para investigadores de seguridad, bug bounty y hackers.

Ver Repositorio
1.4k140hace 6 mesesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Sitio web

COOK

Un generador de wordlists, divisor, fusionador, buscador, guardador, creador de permutaciones y combinaciones de palabras, aplica diferentes codificaciones/decodificaciones y todo lo que necesites.

¡Matador de frustraciones! y Personalizable.

Índice

  • Instalación
    • Configuración
  • Básico
    • Rangos
    • Enfoque de parámetros
  • Ingredientes de COOK
    • Categorías
    • Guardar wordlists/listas/caracteres todo en my.yaml
    • Funciones
    • Personalizar my.yaml
      ▸ Añadir/Actualizar
      ▸ Eliminar
    • Archivo local / Obtener URL
  • Métodos
    • Codificación múltiple
    • Romper convenciones de nomenclatura 💫
    • Todos los métodos cook help methods
  • Algunos ejemplos de uso
    • Unir wordlists línea por línea
    • Imprimir en cada paso
    • Combinar con herramientas
  • USO DEFINITIVO
    • Ejemplo de uso en la vida real:
  • Operador de repetición * y **
  • Reglas de análisis
  • Banderas
  • Usar como biblioteca
  • Comparte tus recetas/ingredientes en cook-ingredients
  • Contribuir

Instalación

Usa Go o descarga las últimas builds

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

Configuración

A partir de la versión v2.2 cook guarda cook-ingredients en $home/.config/cook/cook-ingredients

Para cambiarlo crea una variable de ruta llamada COOK=[TU RUTA]

Básico

Sin lo básico, todo es complejo.

Rangos

Enfoque de parámetros

Ponles cualquier nombre y úsalos para generar el patrón. Esto será más útil cuando apliques codificación por columnas usando métodos.

root@kitploit:~
cook -start intigriti,bugcrowd  -sep _,- -end users.rar,secret.zip  / start sep end
root@kitploit:~
Nota: debes incluir el parámetro en el patrón, de lo contrario no imprimirá nada.

Ingredientes de COOK

Cook depende de cook-ingredients, que son colecciones de archivos .yaml con conjuntos de palabras, funciones, puertos, wordlists de assetnotes, seclist, fuzzdb, 15+ etc.

Categorías

Guardar wordlists/listas/caracteres todo en my.yaml

Funciones

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

Personalizar my.yaml

Edita my.yaml manualmente o usa estos comandos.

▸ Añadir/Actualizar

Si la palabra clave no existe, la creará. De lo contrario, la actualizará y agregará el nuevo valor en la misma variable.

root@kitploit:~
# Sintaxis
cook add [palabra_clave]=[valor1, valor2, ..., valorN] in [categoría]

# Comando
cook add nombre_unico=palabra1,palabra2,palabra3 in lists

▸ Eliminar

root@kitploit:~
cook delete [palabra_clave]

Archivo local / Obtener URL

usa : después del nombre del parámetro.

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

Acceder a wordlists de bases de datos

Cook ha obtenido múltiples repositorios y puede usar directamente wordlists de estos repositorios...

assetnotes, seclist, fuzzdb, etc.

Métodos

Usando métodos puedes codificar, decodificar, invertir, dividir, ordenar, extraer y hacer mucho más...

Los métodos pueden aplicarse al resultado final o por columnas

  • -m/-method para aplicar métodos al resultado final
  • -mc/-methodcol para aplicar por columnas.
  • param.nombremétodo aplicar a cualquier parámetro; explicaremos esto de los parámetros más adelante.

Codificación múltiple

  • Codificaciones superpuestas:
    • Usa punto .
    • md5.b64e.urle aplica varios métodos uno tras otro.
    • Lógica de salida:
      • Patrón generado > hash md5 > codificación base64 > codificación URL.
  • Codificaciones diferentes:
    • Usa coma ,
    • md5,sha1,sha256 aplica diferentes codificaciones al mismo patrón generado.
    • Lógica de salida:
      • Patrón generado > hash md5
      • Patrón generado > hash sha1
      • Patrón generado >

Romper convenciones de nomenclatura 💫

Enfoque especial en estos 2 métodos, te serán de gran ayuda cada vez que uses cualquier wordlist.

Smart Break -m smart

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

admin
New
admin
new

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

Rompe y vuelve a unir con el carácter suministrado.

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

admin_New
admin_old

Aplicar mayúsculas sobre lo separado

Aquí aplicamos camelcase

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

suppose_This_Is_Long_Text

Todos los métodos cook help methods

root@kitploit:~
sort                           - Ordenarlos
sortu                          - Ordenar con valores únicos solamente
reverse                        - Invertir cadena
leet                           - a->4, b->8, e->3 ...
                                    leet[0] o leet[1]

smart                          - Separar palabras según convenciones de nomenclatura
                                    redirectUri, redirect_uri, redirect-uri  ->  [redirect, uri]
smartjoin                      - Esto dividirá las palabras según convenciones de nomenclatura &
                                    param.smartjoin[c,_] (mayúsculas, unión)
                                    redirect-uri, redirectUri, redirect_uri ->  redirect_Uri

u          upper               - Mayúsculas
l          lower               - Minúsculas
t          title               - Título (capitalizar)

Operaciones con cadenas

root@kitploit:~
split                          - split[carácter]
splitindex                     - splitindex[carácter:índice]
replace                        - Reemplazar todo replace[esto:esto]

JSON

root@kitploit:~
json                           - Extraer campo JSON
                                    json[clave] o json[clave:subclave:sub-subclave]

Operaciones con URL

root@kitploit:~
fb         filebase            - Extraer nombre de archivo de una ruta o URL
s          scheme              - Extraer http, https, gohper, ws, etc. de la URL
           user                - Extraer nombre de usuario de la URL
           pass                - Extraer contraseña de la URL
h          host                - Extraer host de la URL
p          port                - Extraer puerto de la URL
ph         path                - Extraer ruta de la URL
f          fragment            - Extraer fragmento de la URL
q          query               - Extraer toda la consulta de la URL
k          keys                - Extraer claves de la URL
v          values              - Extraer valores de la URL
d          domain              - Extraer dominio de la URL
           tld                 - Extraer tld de la URL
           alldir              - Extraer todos los directorios de la ruta de la URL
sub        subdomain           - Extraer subdominio de la URL
           allsubs             - Extraer subdominio de la URL

Codificar/Decodificar

root@kitploit:~
b64e       b64encode           - Codificar Base64
b64d       b64decode           - Decodificar Base64

           charcode            - Dar codificación charcode
                                    - charcode[0]
                                        &#97&#98&#99
                                    - charcode[1] con punto y coma
                                        &#97;&#98;&#99;

hexe       hexencode           - Codificar cadena hexadecimal
hexd       hexdecode           - Decodificar cadena hexadecimal

jsone      jsonescape          - Escapar JSON
jsonu      jsonunescape        - Desescapar JSON

urle       urlencode           - Codificar caracteres reservados URL
            utf16                - Codificador UTF-16 (Little Endian)
            utf16be              - Codificador UTF-16 (Big Endian)
urld       urldecode           - Decodificar URL
urleall    urlencodeall        - Codificar todos los caracteres URL

xmle       xmlescape           - Escapar XML
xmlu       xmlunescape         - Desescapar XML

unicodee   unicodeencodeall    - Codificar cadena con escape Unicode (todos los caracteres)
unicoded   unicodedecode       - Decodificar cadena con escape Unicode

HASHES

root@kitploit:~
md5                            - Suma MD5
sha1                           - Checksum SHA1
sha224                         - Checksum SHA224
sha256                         - Checksum SHA256
sha384                         - Checksum SHA384
sha512                         - Checksum SHA512

Algunos ejemplos de uso

Algunos casos de uso generales para comprender cook.

▸ ¿Sitios que usan prefijo/sufijo personalizado?

▸ Unir wordlists línea por línea

Usa la bandera -append:

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

Nota: A veces es confuso encontrar el índice de la columna, entonces usa -col

▸ Imprimir en cada paso

Si quieres empezar a imprimir datos para cada permutación, usa la bandera -min

Nota: A veces es confuso encontrar el índice de la columna, entonces usa -col

Combinar con herramientas

Genera un patrón y combínalo con otras herramientas usando TUBERÍA (PIPE).

root@kitploit:~
cook [Patrón generado] | [Cualquier herramienta con entrada por tubería]

▸ Fuzzing de autenticación básica con FFUF

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

▸ Fuzzing de payload nulo con FFUF

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

▸ Parámetros ocultos con x8

root@kitploit:~
cook [salida generada] | x8 -u https://target.com

▸ Dominios de nivel superior en vivo con dnsx o httprobe

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

USO DEFINITIVO

¿Demasiado poderoso? Pero a diario te encuentras con cosas raras de BB, como un gran archivo JSON del objetivo. Quizás quieras extraer, unir, fusionar o lo que sea. Puedes usar cook de manera inteligente según tu caso de uso.

Ejemplo de uso en la vida real:

Como BBH, a menudo nos encontramos con archivos JSON. Tal vez leas algo y quieras guardar una wordlist en tu colección.

Supongamos que lees este blog sobre vulnerabilidades de nombres cortos de IIS https://blog.assetnote.io/2020/09/18/finding-hidden-files-folders-iis-bigquery/.

Aquí Assetnote compartió UN GRAN ARCHIVO ZIP. Ahora necesitas algo que pueda guardar este archivo y puedas recuperarlo cuando lo necesites.

Guárdalo así..., esto guardará el archivo en my.yaml

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

O guárdalo manualmente en my.yaml,

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

Nota: cook ya lo ha guardado en las wordlists por defecto, puedes usar cook shub_zip_files para acceder a él

▸ El archivo contiene datos como estos, pero esto no es directamente útil.

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"}
...

Digamos que necesitas:
▸ Extraer el campo JSON path
▸ extraer filebase de path
▸ luego dividirlo según convenciones de nomenclatura

Solución en una sola línea

▸ Con cook no solo podemos extraerlo, podemos extraer filebase de la ruta y ordenar único, luego usar smartjoin para crear diferentes permutaciones.

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

Y así fue como nació cook, mientras fuzzeaba nombres cortos de IIS y luego le añadí otras características.

Operador de repetición * y **

  • Usa * para repetición horizontal.
  • Usa ** para repetición vertical.
  • Y prueba esto *10-1 o esto *1-10.

Reglas de análisis

Banderas

Usar como biblioteca

Puedes usar Cook como biblioteca en tus proyectos Go.

Uso básico

root@kitploit:~
package main

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

func main() {
	// Crear una nueva instancia de cook
	cookInst := cook.New(&cook.COOK{
		Pattern:     []string{"a,b,c", "1,2,3"},
		PrintResult: false, // No imprimir en stdout
	})

	// Generar el patrón
	cookInst.Generate()

	fmt.Println("Patrones generados:", cookInst.Final)
}

Generación eficiente de múltiples patrones (v2.X.X y superior)

Para generar múltiples patrones sin reinicializar recursos cada vez:

root@kitploit:~
package main

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

func main() {
	// Crear un generador que inicializa los recursos compartidos una vez
	generator := cook.NewGenerator()

	// Generar múltiples patrones de manera eficiente
	list1 := generator.Generate([]string{"a,b,c", "1,2,3"})
	list2 := generator.Generate([]string{"admin", "password-2023"})

	fmt.Println("Patrón 1:", list1)
	fmt.Println("Patrón 2:", list2)
}

Generación concurrente de patrones

El generador también admite la generación concurrente de patrones:

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))

	// Generar patrones concurrentemente
	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()

	// Usar los resultados
	for i, r := range results {
		fmt.Printf("Patrón %d generó %d resultados\n", i, len(r))
	}
}

Ejemplo de búsqueda

Busca en cook-ingredients usando la biblioteca:

root@kitploit:~
package main

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

func main() {
	cookInst := cook.NewWithoutConfig()
	results := cookInst.Search("api")
	fmt.Printf("Patrones de API buscados: %v\n", results)
}

Comparte tus recetas e ingredientes en cook-ingredients

  • Comparte tu archivo yaml con la comunidad

Contribuir

  • Usar concurrencia y hacerlo más rápido
  • Autocompletado para shells
  • Hacer que append funcione algo así como cook file1 =/= file2, asegurarse de que los caracteres funcionen directamente con todos los terminales.
  • Hacer que las cadenas sin procesar funcionen como en los lenguajes de programación. Es decir, un mejor analizador.
  • No lo sé, podrías usar tu creatividad y añadir algunas características increíbles.
  • Puedes invitarme un café☕
Descargar herramienta
CategoríaDescripción
listsArray de valores para usar directamente al ser invocados
filesArray de urls
portsRangos de números
raw-filesArray de archivos locales
functionsFunciones usadas para generar patrones
hash sha256
ColumnasSeparadas por espacio
ValoresSeparados por coma
ParámetrosPuedes darle cualquier nombre al parámetro, usa - antes de cualquier cosa para convertirlo en parámetro -param valor
Cadenas sin procesarUsa ` antes y después de la cadena para evitar el análisis de cook. Útil cuando necesitas usar alguna palabra clave como una palabra.
Entrada de tuberíaToma entrada de tubería usando - como valor de cualquier parámetro.
Entrada de archivoUsa : después del nombre del parámetro para tomar entrada de archivo. cook -f: live.txt f
FuncionesSolo se pueden llamar mediante parámetros.
MétodosSe pueden usar en parámetros o en la salida final.
BanderaUso
-peekMira la salida usando -peek 50 para las primeras 50 líneas
-a, -appendAñade a las líneas anteriores, en lugar de permutaciones
-c, -colImprime los números de columna y sus valores
-conf, -configInformación de configuración
-mc, -methodcolAplica métodos por columnas -mc 0:md5,b64e; 1:reverse
Para todas las columnas separa -mc md5,b64e
-m, -methodAplica métodos a la salida final
-h, -helpAyuda
-minNúmero mínimo de columnas a imprimir