Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
cook — あなたのワードリストであなたのこだわりを満たすためのワードリストフレームワーク。セキュリティ研究者、バグバウンティハンター、ハッカーのために。 | Kitploit
ツール/GitHubGitHub/glitchedgitz/cook
パスワードクラッキングファジングペネトレーションテストユーティリティとフレームワーク
GitHubglitchedgitz/cook

cook

あなたのワードリストであなたのこだわりを満たすためのワードリストフレームワーク。セキュリティ研究者、バグバウンティハンター、ハッカーのために。

リポジトリを見るウェブサイト
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=[あなたのパス] という名前のパス変数を作成してください。

基本

基本が分からなければ、すべてが複雑になります。

範囲

パラメータアプローチ

任意の名前を付けて、パターンを生成するために使用します。 これは、メソッド を使用して列ごとにエンコードを適用する場合に特に便利です。

root@kitploit:~
cook -start intigriti,bugcrowd  -sep _,- -end users.rar,secret.zip  / start sep end
root@kitploit:~
注意: パターンにパラメータを含める必要があります。含めないと何も出力されません。

COOKの材料

Cook は cook-ingredients に依存しています。これは、assetnotes、seclist、fuzzdb などからのワードセット、関数、ポート、ワードリストの .yaml ファイルのコレクションです。

カテゴリ

ワードリスト/リスト/文字などを my.yaml に保存

関数

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

my.yaml のカスタマイズ

my.yaml を手動で編集するか、以下のコマンドを使用してください。

▸ 追加/更新

キーワードが存在しない場合は作成されます。存在する場合は更新され、同じ変数に新しい値が追加されます。

root@kitploit:~
# 構文
cook add [キーワード]=[値1, 値2, ..., 値N] in [カテゴリ]

# コマンド
cook add unique_name=word1,word2,word3 in lists

▸ 削除

root@kitploit:~
cook delete [キーワード]

ローカルファイル / 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 ハッシュ
      • 生成パターン > sha256 ハッシュ

命名規則の打破 💫

以下の2つのメソッドに特に注目してください。ワードリストを使用するたびに非常に役立ちます。

Smart Break -m smart

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

admin
New
admin
new

Smart Join -m smartjoin[<ケース>:<文字>]

分割してから指定された文字で結合し直します。

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

admin_New
admin_old

分割された部分にケースを適用

ここではキャメルケースを適用しています。

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] または 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[キー] または json[キー:サブキー:サブサブキー]

URL操作

root@kitploit:~
fb         filebase            - パスまたはURLからファイル名を抽出
s          scheme              - URLから http, https, gohper, ws などを抽出
           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                 - URLからTLDを抽出
           alldir              - URLのパスからすべてのディレクトリを抽出
sub        subdomain           - URLからサブドメインを抽出
           allsubs             - URLからサブドメインを抽出

エンコード/デコード

root@kitploit:~
b64e       b64encode           - Base64 エンコード
b64d       b64decode           - Base64 デコード

           charcode            - 文字コードエンコード
                                    - charcode[0]
                                        &#97&#98&#99
                                    - charcode[1] (セミコロンあり)
                                        &#97;&#98;&#99;

hexe       hexencode           - 16進数文字列エンコード
hexd       hexdecode           - 16進数文字列デコード

jsone      jsonescape          - JSON エスケープ
jsonu      jsonunescape        - JSON アンエスケープ

urle       urlencode           - URL 予約文字をエンコード
            utf16                - UTF-16 エンコーダ (リトルエンディアン)
            utf16be              - UTF-16 エンコーダ (ビッグエンディアン)
urld       urldecode           - URL デコード
urleall    urlencodeall        - すべての文字を URL エンコード

xmle       xmlescape           - XML エスケープ
xmlu       xmlunescape         - XML アンエスケープ

unicodee   unicodeencodeall    - Unicode エスケープ文字列エンコード (すべての文字)
unicoded   unicodedecode       - Unicode エスケープ文字列デコード

ハッシュ

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 を使用してください。

他のツールとの連携

パターンを生成し、パイプで他のツールと組み合わせます。

root@kitploit:~
cook [生成パターン] | [パイプ入力を受け付ける任意のツール]

▸ FFUF を使った Basic 認証のファジング

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

▸ FFUF を使った Null ペイロードファジング

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

▸ x8 を使った隠しパラメータの検出

root@kitploit:~
cook [生成された出力] | x8 -u https://target.com

▸ dnsx や httprobe を使った生存TLDの確認

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

究極の使い方

強力すぎる? しかし、毎日奇妙なバグ報奨金のものに出くわします。例えば、ターゲットからの大きなJSONファイル? 抽出、結合、マージなど、必要なことを行いたいかもしれません。Cook を自分のユースケースに合わせてスマートに使用できます。

実生活での使用例:

バグハンターとして、JSONファイルによく遭遇します。ワードリストを読んでコレクションに保存したいと思うかもしれません。

IIS Shortname 脆弱性に関するこのブログを読んだとします。 https://blog.assetnote.io/2020/09/18/finding-hidden-files-folders-iis-bigquery/。

ここで Assetnote は BIG ZIP FILE を共有しています。このファイルを保存し、必要なときに呼び出せるようにしたい場合、次のように保存します。これにより 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 を抽出
▸ path から filebase を抽出
▸ それを 命名規則 に基づいて分割

1行で解決

▸ Cook を使えば、抽出だけでなく、パスからファイルベースを抽出し、一意の値でソートし、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, // 標準出力に表示しない
	})

	// パターンを生成
	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呼び出されたときに直接使用する値の配列
filesURLの配列
ports数値の範囲
raw-filesローカルファイルの配列
functions関数 はパターン生成に使用されます
列スペースで区切る
値カンマで区切る
パラメータ任意の名前を付けられます。何かの前に - を使用してパラメータにします -param value
生の文字列文字列の前後に ` を使用して、cook の解析を停止します。キーワードを単語として使用したい場合に便利です。
パイプ入力任意のパラメータの値として - を使用してパイプ入力を受け取ります。
ファイル入力パラメータ名の後に : を使用してファイル入力を受け取ります。 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出力する最小列数