Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
cook — 워드리스트에 대한 당신의 기호를 충족시켜주는 워드리스트 프레임워크입니다. 보안 연구자, 버그 바운티 헌터 및 해커를 위한 도구입니다. | Kitploit
도구/GitHubGitHub/glitchedgitz/cook
Password CrackingFuzzingPenetration TestingUtilities & Frameworks
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=[YOUR PATH]를 생성하세요.

기본

기본 없이는 모든 것이 복잡합니다.

범위

매개변수 접근법

원하는 이름을 지정하고 패턴을 생성하는 데 사용하세요. 메서드를 사용하여 열 단위로 인코딩을 적용할 때 더 유용합니다.

root@kitploit:~
cook -start intigriti,bugcrowd  -sep _,- -end users.rar,secret.zip  / start sep end
root@kitploit:~
참고: 패턴에 매개변수를 포함해야 합니다. 그렇지 않으면 아무것도 출력되지 않습니다.

COOK의 재료

Cook은 cook-ingredients에 의존합니다. 이는 assetnotes, seclist, fuzzdb 등 15+ 이상의 워드셋, 함수, 포트, 워드리스트를 포함한 .yaml 파일 모음입니다.

카테고리

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 해싱 > base 64 인코딩 > URL 인코딩
  • 다른 인코딩:
    • 쉼표 , 사용
    • md5,sha1,sha256 동일한 생성 패턴에 다른 인코딩 적용
    • 출력 논리:
      • 생성된 패턴 > md5 해싱
      • 생성된 패턴 > sha1 해싱
      • 생성된 패턴 > sha256 해싱

명명 규칙 해제 💫

다음 두 메서드에 특별히 주목하세요. 워드리스트를 사용할 때마다 큰 도움이 됩니다.

스마트 분할 -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

분리된 부분에 대소문자 적용

여기서는 카멜케이스를 적용했습니다.

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[this:tothis]

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에서 최상위 도메인 추출
           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    - 유니코드 이스케이프 문자열 인코딩 (모든 문자)
unicoded   unicodedecode       - 유니코드 이스케이프 문자열 디코딩

해시

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 [생성된 패턴] | [파이프 입력을 지원하는 모든 도구]

▸ 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

궁극적인 사용법

너무 강력한가요? 하지만 매일 타겟의 큰 JSON 파일과 같은 이상한 BB(버그 바운티) 자료를 접하게 됩니다. 추출, 결합, 병합 등 무엇이든 하고 싶을 때 cook을 사용 사례에 맞게 현명하게 사용할 수 있습니다.

실제 사용 예제:

BBH로서 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 추출
▸ 명명 규칙에 따라 분할

한 줄 솔루션

▸ cook을 사용하면 추출할 수 있을 뿐만 아니라, 경로에서 파일 베이스를 추출하고 고유하게 정렬한 후 smartjoin을 사용하여 다양한 순열을 생성할 수 있습니다.

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

그리고 이것이 바로 cook이 탄생한 방식입니다. IIS Shortname 퍼징 중에 시작되었고, 이후 다른 기능들이 추가되었습니다.

반복 연산자 * 및 **

  • 가로 반복에는 *를 사용하세요.
  • 세로 반복에는 **를 사용하세요.
  • *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출력할 최소 열 개수