Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
cook — Фреймворк для работы со списками слов, чтобы удовлетворить ваши причуды с вашими списками слов. Для исследователей безопасности, программ bug bounty и хакеров. | Kitploit
Инструменты/GitHubGitHub/glitchedgitz/cook
Взлом паролейФаззингТестирование на ПроникновениеУтилиты и фреймворки
GitHubglitchedgitz/cook

cook

Фреймворк для работы со списками слов, чтобы удовлетворить ваши причуды с вашими списками слов. Для исследователей безопасности, программ bug bounty и хакеров.

Репозиторий
1.4k1406 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Сайт

COOK

Мощный генератор списков слов, разделитель, объединитель, искатель, сохранитель, создание перестановок и комбинаций слов, применение различных кодировок/декодировок и всё, что вам нужно.

Убийца разочарований! И настраиваемый!

Содержание

  • Установка
    • Конфигурация
  • Основы
    • Диапазоны
    • Параметрический подход
  • Ингредиенты COOK
    • Категории
    • Сохранение списков слов/списков/символов в my.yaml
    • Функции
    • Настройка my.yaml
      ▸ Добавить/Обновить
      ▸ Удалить
    • Локальный файл / Загрузка по URL
  • Методы
    • Множественное кодирование
    • Нарушение соглашений об именах 💫
    • Все методы cook help methods
  • Примеры использования
    • Соединение списков слов построчно
    • Печать на каждом шаге
    • Комбинация с инструментами
  • МАКСИМАЛЬНОЕ ИСПОЛЬЗОВАНИЕ
    • Пример из реальной жизни:
  • Оператор повторения * и **
  • Правила парсинга
  • Флаги
  • Использование как библиотека
  • Поделитесь своими рецептами/ингредиентами в cook-ingredients
  • Внести вклад

Установка

Используйте Go или скачайте последние сборки

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

Конфигурация

Начиная с версии v2.2 cook сохраняет cook-ingredients в $home/.config/cook/cook-ingredients

Чтобы изменить, создайте переменную пути с именем COOK=[YOUR PATH]

Основы

Без основ всё сложно.

Диапазоны

Параметрический подход

Дайте им любое имя и используйте для создания шаблона. Это будет полезнее при применении кодирования по столбцам с помощью методов.

root@kitploit:~
cook -start intigriti,bugcrowd  -sep _,- -end users.rar,secret.zip  / start sep end
root@kitploit:~
Примечание: вы должны включить параметр в шаблон, иначе ничего не будет выведено.

Ингредиенты COOK

Cook зависит от cook-ingredients, которые представляют собой коллекции .yaml файлов со словарями, функциями, портами, списками слов из assetnotes, seclist, fuzzdb, 15+ и др.

Категории

Сохранение списков слов/списков/символов в my.yaml

Функции

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

Настройка my.yaml

Отредактируйте my.yaml вручную или используйте эти команды.

▸ Добавить/Обновить

Если keyword не существует, он будет создан. В противном случае он обновится и добавит новое значение в ту же переменную.

root@kitploit:~
# Синтаксис
cook add [keyword]=[value1, value2, ..., valueN] in [category]

# Команда
cook add unique_name=word1,word2,word3 in lists

▸ Удалить

root@kitploit:~
cook delete [keyword]

Локальный файл / Загрузка по URL

Используйте : после имени параметра.

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

Доступ к спискам слов из баз данных

Cook загрузил несколько репозиториев и может напрямую использовать списки слов из них...

assetnotes, seclist, fuzzdb и др.

Методы

Используя методы, вы можете кодировать, декодировать, переворачивать, разделять, сортировать, извлекать и делать многое другое...

Методы могут быть применены к конечному выводу либо по столбцам

  • -m/-method для применения методов к конечному выводу
  • -mc/-methodcol для применения по столбцам.
  • param.methodname применить к любому параметру, пример этого параметра будет позже.

Множественное кодирование

  • Перекрывающиеся кодировки:
    • Используйте точку .
    • md5.b64e.urle применяет несколько методов один за другим.
    • Логика вывода:
      • Сгенерированный шаблон > хеширование md5 > кодирование base64 > URL-кодирование.
  • Разные кодировки:
    • Используйте запятую ,
    • md5,sha1,sha256 применяет разные кодировки к одному и тому же сгенерированному шаблону.
    • Логика вывода:
      • Сгенерированный шаблон > хеширование md5
      • Сгенерированный шаблон > хеширование sha1

Нарушение соглашений об именах 💫

Особое внимание этим двум методам; они будут очень полезны каждый раз, когда вы используете какой-либо список слов.

Умное разделение -m smart

root@kitploit:~
▶ cook adminNew,admin_new -m smart
root@kitploit:~
Вывод:

admin
New
admin
new

Умное соединение -m smartjoin[<case>:<char>]

Оно разделяет и соединяет обратно с указанным символом.

root@kitploit:~
▶ cook adminNew,admin-old -m smartjoin[:_]
root@kitploit:~
Вывод:

admin_New
admin_old

Применение регистров к разделённым словам

Здесь мы применили CamelCase

root@kitploit:~
▶ cook suppose_this_is_long_text -m smartjoin[c:_]
root@kitploit:~
Вывод:

suppose_This_Is_Long_Text

Все методы cook help methods

root@kitploit:~
sort                           - Отсортировать
sortu                          - Отсортировать, оставляя только уникальные значения
reverse                        - Перевернуть строку
leet                           - a->4, b->8, e->3 ...
                                    leet[0] or leet[1]

smart                          - Разделить слова по соглашениям об именах
                                    redirectUri, redirect_uri, redirect-uri  ->  [redirect, uri]
smartjoin                      - Разделяет слова по соглашениям об именах &
                                    param.smartjoin[c,_] (регистр, соединитель)
                                    redirect-uri, redirectUri, redirect_uri ->  redirect_Uri

u          upper               - Верхний регистр
l          lower               - Нижний регистр
t          title               - Заглавный регистр (каждое слово с большой буквы)

Операции со строками

root@kitploit:~
split                          - split[символ]
splitindex                     - splitindex[символ:индекс]
replace                        - Заменить все replace[это:на это]

JSON

root@kitploit:~
json                           - Извлечь поле JSON
                                    json[ключ] or json[ключ:подключ:под-подключ]

Операции с URL

root@kitploit:~
fb         filebase            - Извлечь имя файла из пути или URL
s          scheme              - Извлечь http, https, gohper, ws и т.д. из URL
           user                - Извлечь имя пользователя из URL
           pass                - Извлечь пароль из URL
h          host                - Извлечь хост из URL
p          port                - Извлечь порт из URL
ph         path                - Извлечь путь из URL
f          fragment            - Извлечь фрагмент из URL
q          query               - Извлечь весь запрос из URL
k          keys                - Извлечь ключи из URL
v          values              - Извлечь значения из URL
d          domain              - Извлечь домен из URL
           tld                 - Извлечь TLD из URL
           alldir              - Извлечь все каталоги из пути URL
sub        subdomain           - Извлечь поддомен из URL
           allsubs             - Извлечь поддомены из URL

Кодирование/Декодирование

root@kitploit:~
b64e       b64encode           - Кодировать в Base64
b64d       b64decode           - Декодировать из Base64

           charcode            - Дать кодировку charcode
                                    - charcode[0]
                                        &#97&#98&#99
                                    - charcode[1] с точкой с запятой
                                        &#97;&#98;&#99;

hexe       hexencode           - Кодировать в hex-строку
hexd       hexdecode           - Декодировать из hex-строки

jsone      jsonescape          - Экранировать JSON
jsonu      jsonunescape        - Снять экранирование JSON

urle       urlencode           - URL-кодировать зарезервированные символы
            utf16                - Кодировщик UTF-16 (Little Endian)
            utf16be              - Кодировщик UTF-16 (Big Endian)
urld       urldecode           - URL-декодировать
urleall    urlencodeall        - URL-кодировать все символы

xmle       xmlescape           - Экранировать XML
xmlu       xmlunescape         - Снять экранирование XML

unicodee   unicodeencodeall    - Кодировать строку в Unicode-escape (все символы)
unicoded   unicodedecode       - Декодировать из Unicode-escape

ХЕШИ

root@kitploit:~
md5                            - MD5 сумма
sha1                           - SHA1 контрольная сумма
sha224                         - SHA224 контрольная сумма
sha256                         - SHA256 контрольная сумма
sha384                         - SHA384 контрольная сумма
sha512                         - SHA512 контрольная сумма

Примеры использования

Несколько общих примеров для понимания работы cook.

▸ Сайты с пользовательскими суффиксами/префиксами?

▸ Соединение списков слов построчно

Используйте флаг -append:

root@kitploit:~
cook -l: live.txt -p: payloads.txt l / p -append 2
root@kitploit:~
# Несколько столбцов
cook col1 col2 col3 col4 col5 -append 2,5

Примечание: Иногда сложно найти индекс столбца, тогда используйте -col

▸ Печать на каждом шаге

Если вы хотите начать выводить данные для каждой перестановки, используйте флаг -min

Примечание: Иногда сложно найти индекс столбца, тогда используйте -col

Комбинация с инструментами

Сгенерируйте шаблон и объедините с другими инструментами через PIPE.

root@kitploit:~
cook [Сгенерированный шаблон] | [Любой инструмент с вводом через pipe]

▸ Фаззинг базовой аутентификации с FFUF

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

▸ Фаззинг пустыми нагрузками с FFUF

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

▸ Скрытые параметры с x8

root@kitploit:~
cook [сгенерированный вывод] | x8 -u https://target.com

▸ Актуальные домены верхнего уровня с dnsx или httprobe

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

МАКСИМАЛЬНОЕ ИСПОЛЬЗОВАНИЕ

Слишком мощно? Но каждый день вы сталкиваетесь со странными вещами в BB, например, с большим JSON-файлом от цели? Возможно, вы захотите извлечь, объединить, слить или что-то ещё. Вы можете использовать cook гибко под свою задачу.

Пример из реальной жизни:

Как BBH, мы часто сталкиваемся с JSON-файлами. Возможно, вы читаете, нашли список слов, чтобы сохранить в своей коллекции.

Допустим, вы прочитали этот блог об уязвимостях IIS Shortname https://blog.assetnote.io/2020/09/18/finding-hidden-files-folders-iis-bigquery/.

Здесь Assetnote поделился БОЛЬШИМ ZIP-ФАЙЛОМ. Теперь вам нужно что-то, что может сохранить этот файл, и вы сможете вспомнить его, когда понадобится.

Сохраните его так... это сохранит файл в my.yaml

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

Или вручную сохраните в my.yaml,

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

Примечание: cook уже сохранил это в стандартных списках слов, вы можете использовать cook shub_zip_files для доступа

▸ Файл содержит данные такого вида, но они не пригодны напрямую.

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

Допустим, вам нужно:
▸ Извлечь поле JSON path
▸ Извлечь filebase из path
▸ Затем разделить его на основе соглашений об именах

Решение в одну строку

▸ С cook мы можем не только извлечь, но и извлечь filebase из path, отсортировать уникальные, затем использовать smartjoin для создания различных перестановок.

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

Именно так и родился cook, во время фаззинга IIS Shortnames, а позже я добавил другие функции.

Оператор повторения * и **

  • Используйте * для горизонтального повторения.
  • Используйте ** для вертикального повторения.
  • И попробуйте *10-1 или *1-10.

Правила парсинга

Флаги

Использование как библиотека

Вы можете использовать Cook как библиотеку в ваших Go-проектах.

Базовое использование

root@kitploit:~
package main

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

func main() {
	// Создание нового экземпляра cook
	cookInst := cook.New(&cook.COOK{
		Pattern:     []string{"a,b,c", "1,2,3"},
		PrintResult: false, // Не выводить в stdout
	})

	// Генерация шаблона
	cookInst.Generate()

	fmt.Println("Сгенерированные шаблоны:", cookInst.Final)
}

Эффективная генерация нескольких шаблонов (v2.X.X и выше)

Для генерации нескольких шаблонов без повторной инициализации ресурсов каждый раз:

root@kitploit:~
package main

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

func main() {
	// Создание генератора, который инициализирует общие ресурсы один раз
	generator := cook.NewGenerator()

	// Эффективная генерация нескольких шаблонов
	list1 := generator.Generate([]string{"a,b,c", "1,2,3"})
	list2 := generator.Generate([]string{"admin", "password-2023"})

	fmt.Println("Шаблон 1:", list1)
	fmt.Println("Шаблон 2:", list2)
}

Параллельная генерация шаблонов

Генератор также поддерживает параллельную генерацию шаблонов:

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

	// Параллельная генерация шаблонов
	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()

	// Использование результатов
	for i, r := range results {
		fmt.Printf("Шаблон %d сгенерировал %d результатов\n", i, len(r))
	}
}

Пример поиска

Поиск в cook-ingredients с помощью библиотеки:

root@kitploit:~
package main

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

func main() {
	cookInst := cook.NewWithoutConfig()
	results := cookInst.Search("api")
	fmt.Printf("Результаты поиска 'api': %v\n", results)
}

Поделитесь своими рецептами и ингредиентами в cook-ingredients

  • Поделитесь своим yaml-файлом с сообществом

Внести вклад

  • Используйте конкурентность и сделайте это быстрее
  • Автодополнение для оболочек
  • Сделать append работающим примерно так: cook file1 =/= file2, чтобы символы работали напрямую во всех терминалах.
  • Сделать сырые строки работающими так же, как в языках программирования. То есть улучшенный парсер.
  • Я не знаю, вы можете проявить креативность и добавить какие-нибудь потрясающие функции.
  • Вы можете купить мне кофе☕
Скачать инструмент
КатегорияОписание
listsМассив значений для прямого использования при вызове
filesМассив URL-адресов
portsДиапазоны чисел
raw-filesМассив локальных файлов
functionsФункции используются для генерации шаблонов
  • Сгенерированный шаблон > хеширование sha256
  • СтолбцыРазделяются пробелом
    ЗначенияРазделяются запятой
    ПараметрыВы можете дать параметру любое имя; используйте - перед чем угодно, чтобы сделать его параметром -param значение
    Сырые строкиИспользуйте ` до и после строки, чтобы остановить парсинг cook. Полезно, когда нужно использовать какое-либо ключевое слово как слово.
    Ввод через pipeИспользуйте - как значение любого параметра для ввода через pipe.
    Файловый вводИспользуйте : после имени параметра для файлового ввода. cook -f: live.txt f
    ФункцииМогут вызываться только через параметры.
    МетодыМогут использоваться на параметрах или на конечном выводе
    ФлагИспользование
    -peekПосмотреть вывод с помощью -peek 50 для первых 50 строк
    -a, -appendДобавлять к предыдущим строкам, вместо перестановок
    -c, -colВывести номера столбцов и их значения
    -conf, -configИнформация о конфигурации
    -mc, -methodcolПрименять методы по столбцам -mc 0:md5,b64e; 1:reverse
    Для всех столбцов раздельно -mc md5,b64e
    -m, -methodПрименять методы к конечному выводу
    -h, -helpПомощь
    -minМинимальное количество столбцов для вывода