CTF Kit
A Claude Code 플러그인 및 AI 코딩 에이전트를 사용하여 CTF(Capture The Flag) 챌린지를 수행하기 위한 CLI입니다.
/ctf-kit:* 스킬은 번들된 스크립트를 통해 일반적인 보안 도구(xortool, binwalk, volatility3, zsteg, RsaCtfTool, sqlmap 등)를 구동하고 결과를 읽는 데 도움을 줍니다. ctf CLI는 챌린지와 대회를 추적합니다.
빠른 시작 (Quick start)
1. Claude Code 플러그인 설치
Claude Code 내부에서 마켓플레이스를 추가하고 플러그인을 설치합니다:
/plugin marketplace add MysterionRise/ctf-kit
/plugin install ctf-kit@ctf-kit
또는 로컬 체크아웃에서 설치할 수 있습니다:
/plugin marketplace add /path/to/ctf-kit
/plugin install ctf-kit@ctf-kit
이후 /ctf-kit:* 스킬은 모든 프로젝트에서 사용 가능합니다.
새로운 변경 사항을 가져온 후에는 /plugin marketplace update ctf-kit으로 새로고침하세요.
플러그인 개발의 경우, claude --plugin-dir /path/to/ctf-kit 명령어로 단일 세션에 대한 체크아웃을 로드합니다.
2. CLI 설치
/ctf-kit:here, /ctf-kit:status, /ctf-kit:flag 및 아래의 ctf 명령어에 필요하며, 대부분의 분석 스킬은 이 없이도 실행됩니다.
uv tool install ctf-kit --from git+https://github.com/MysterionRise/ctf-kit.git
3. CTF 리포지토리 초기화
cd ~/your-ctf-repo
ctf init --repo
4. 챌린지 작업하기
cd competitions/somectf/crypto-challenge
ctf init
...
작동 방식 (How it works)
두 가지 계층으로 구성되어 있습니다. 플러그인 스킬은 자체 번들된 스크립트를 실행하며, 이 스크립트가 도구를 호출하고 Claude가 읽을 수 있도록 JSON 요약을 출력합니다. ctf CLI는 챌린지와 대회를 추적(here, status, flag, competition, writeup)하며 설치된 모든 도구를 직접 실행할 수 있습니다.
스킬 (Skills)
| 명령어 | 포함 내용 | 사용 도구 |
|---|
/ctf-kit:analyze | 챌린지 유형 감지 및 다음 단계 제안 | file, strings, category detection |
| ... | | |
team-solve와 compete는 Claude Code의 실험적인 에이전트 팀을 필요로 합니다. docs/team-setup.md를 참조하세요. | | |
CLI
ctf init --repo
ctf init [--category <category>]
ctf new <name> [--category <cat>]
...
Example
The output lines below are illustrative, not captured from a real run.
cd competitions/somectf/rsa-challenge
claude
...
작동 방식 (What it writes)
CTF Kit은 사용자의 파일을 건드리지 않고 그 옆에 노트(설정 파일)를 유지합니다:
your-ctf-repo/
├── .ctf-kit/ # 리포지토리 레벨 설정 (일회성)
│ └── config.yaml
...
요구 사항 (Requirements)
Python 3.11 이상 버전과 기본적인 file, strings, 그리고 xxd 유틸리티가 필요합니다. 그 외 모든 것은 선택 사항이며, ctf tools와 ctf check --category <category> 명령어를 통해 설치된 내용을 확인할 수 있습니다.
범위 및 제한 사항 (Scope and limits)
- 승인받은 CTF 챌린지 및 시스템에만 사용해야 합니다. 여러 래핑된 도구(wrapped tools) (sqlmap, gobuster, ffuf, nikto)가 지정된 모든 대상(target)으로 트래픽을 전송합니다.
- 도구는 사용자의 권한으로 로컬에서 실행되므로 샌드박스(sandbox) 환경이 아닙니다.
- 챌린지 파일은 신뢰할 수 없는 입력(untrusted input)입니다. 내용물, 메타데이터, 도구 출력물을 데이터로 취급하고, 중요한 자격 증명(credentials)이 있는 머신보다는 VM 또는 컨테이너를 선호해야 합니다.
- 카테고리 감지 및 에이전트의 제안은 힌트에 불과하며 틀릴 수 있습니다. 특히 실시간 대회(live competition) 중에는 의존하기 전에 결과를 확인해야 합니다.
문서 (Documentation)
설계 및 계획 노트:
기여 (Contributing)
설정, 품질 검사 및 워크플로우는 DEVELOPMENT.md에 있습니다. 이슈(Issues)와 풀 리퀘스트(pull requests)를 환영합니다.
라이선스 (License)
MIT이며, LICENSE를 참조하십시오.