- Stars
- 3.6k
- This week
- +55
- Forks
- 434
- Open issues
- 0
- Skills inside
- 12
Get started
Install the skills
npx skills add ljagiello/ctf-skillsInstalls into Claude Code, Codex, Cursor, OpenCode and the other agents it finds on your machine.
git clone --depth 1 https://github.com/ljagiello/ctf-skills.git /tmp/ctf-skills
cp -r /tmp/ctf-skills ~/.claude/skills/ctf-skillsClaude Code reads ~/.claude/skills/ (or .claude/skills/ in a project). Other agents read the same SKILL.md format from their own skills folder.
Inside this repo
12 skills
ctf-ai-mlctf-cryptoProvides cryptography attack techniques for CTF challenges. Use when attacking encryption, hashing, signatures, ZKP, PRNG, or mathematical crypto problems involving RSA, AES, ECC, lattices, LWE, CVP, number theory, Coppersmith, Pollard, Wiener, padding oracle, GCM, key derivation, or stream/block cictf-cryptoctf-forensicsProvides digital forensics and signal analysis techniques for CTF challenges. Use when analyzing disk images, memory dumps, event logs, network captures, cryptocurrency transactions, steganography, PDF analysis, Windows registry, Volatility, PCAP, Docker images, coredumps, side-channel power traces,ctf-forensicsctf-malwareProvides malware analysis and network traffic techniques for CTF challenges. Use when analyzing obfuscated scripts, malicious packages, custom crypto protocols, C2 traffic, PE/.NET binaries, RC4/AES encrypted communications, YARA rules, shellcode analysis, memory forensics for malware (Volatility mactf-malwarectf-miscProvides miscellaneous CTF challenge techniques for problems that do not cleanly fit the main categories. Use for encoding puzzles, pyjails, bash jails, RF/SDR, DNS oddities, unicode tricks, esoteric languages, QR or audio puzzles, constraint solving, game theory, unusual sandbox escapes, and hybridctf-miscctf-osintProvides open source intelligence techniques for CTF challenges. Use when gathering information from public sources, social media, geolocation, DNS records, username enumeration, reverse image search, Google dorking, Wayback Machine, Tor relays, FEC filings, or identifying unknown data like hashes actf-osintctf-pwnProvides binary exploitation techniques for CTF challenges. Use when you already have a vulnerable native target or service and need to turn memory corruption or low-level primitives into code execution or privilege escalation, such as buffer overflows, format strings, heap bugs, ROP, ret2libc, shelctf-pwnctf-reverseProvides reverse engineering techniques for CTF challenges. Use when the main job is to understand how a compiled, obfuscated, packed, or virtualized target works before exploiting or solving it, including binaries, APKs, WASM, firmware, custom VMs, bytecode, game clients, malware-like loaders, and ctf-reversectf-similar-searchSearches for similar CTF challenge writeups using Tavily API for search and content extraction. Use when the user requests finding related challenges, when solve-challenge has failed multiple times and needs reference solutions, or when first identifying a challenge type and seeking examples.ctf-similar-searchctf-webProvides web exploitation techniques for CTF challenges. Use when the target is primarily an HTTP application, API, browser client, template engine, identity flow, or smart-contract frontend/backend surface, including XSS, SQLi, SSTI, SSRF, XXE, JWT, auth bypass, file upload, request smuggling, OAutctf-webctf-writeupGenerates a single standardized submission-style CTF writeup for competition handoff and organizer review. Use after solving a CTF challenge to document the solution steps, tools used, and lessons learned in a structured format.ctf-writeupsolve-challengeSolves CTF challenges by performing first-pass triage, identifying the dominant category, and routing execution to the right specialized ctf-* skill. Use when the user gives you a challenge bundle, a remote service, a suspicious file, or only a vague challenge description and you must determine whersolve-challengeDocumentation
README
ctf-skills
Agent Skills for solving CTF challenges — web exploitation, binary pwn, crypto, reverse engineering, forensics, OSINT, and more. Works with any tool that supports the Agent Skills spec, including Claude Code.
Installation
npx skills add ljagiello/ctf-skills
Environment Setup
Two setup strategies depending on your workflow:
Pre-install (recommended before competitions)
Use the central installer entrypoint:
bash scripts/install_ctf_tools.sh all
Run a narrower mode when you only want one tool group:
bash scripts/install_ctf_tools.sh python
bash scripts/install_ctf_tools.sh pat
bash scripts/install_ctf_tools.sh apt
bash scripts/install_ctf_tools.sh brew
bash scripts/install_ctf_tools.sh gems
bash scripts/install_ctf_tools.sh go
bash scripts/install_ctf_tools.sh manual
Preview what would be installed (skips already-present packages):
bash scripts/install_ctf_tools.sh --dry-run all
Verify what's already installed:
bash scripts/install_ctf_tools.sh --verify
Use --force to reinstall everything regardless of what's already present. Install logs are saved to ~/.ctf-tools/.
The full package lists now live in scripts/install_ctf_tools.sh.
[!TIP] The
patmode shallow-clones PayloadsAllTheThings into~/.ctf-tools/PayloadsAllTheThingsand links it atctf-web/payloads/PayloadsAllTheThings. Bulk payloads stay out of git; technique files referencectf-web/pat-reference.mdwith a few exemplar payloads inline.
On-demand (during challenges)
Each skill's SKILL.md has a Prerequisites section listing only the tools needed for that category. Install as you go when the agent encounters a missing tool.
Skills
| Skill | Files | Description |
|---|---|---|
| ctf-ai-ml | 3 | Model weight perturbation negation, adversarial examples (FGSM, PGD, C&W), foolbox L1BasicIterativeAttack Keras evasion, hand-rolled Keras FGSM via K.gradients, prompt injection, LLM jailbreaking, model extraction, membership inference, neural network collision, LoRA adapter exploitation, gradient descent inversion, data poisoning, backdoor detection, token smuggling, context window manipulation |
| ctf-web | 23 | SQLi (blind boolean/time/error generators, second-order, WAF bypasses, EXIF metadata injection, keyword fragmentation bypass, MySQL column truncation, DNS record injection, ORDER BY CASE WHERE bypass, QR code input injection, double-keyword filter bypass), Burp Intruder parity via python-requests.md (sync, 30-worker ThreadPoolExecutor, 100-concurrency httpx async, generator streaming feeds, async_fuzz.py CLI fuzzer), PayloadsAllTheThings on-demand index (pat-reference.md), XSS (AngularJS sandbox escapes, DOM clobbering, CSP bypasses), SSTI (Jinja2, Twig, Go template FuncMap), SSRF (DNS rebinding, cloud metadata), XXE, file upload polyglots, deserialization (Java ysoserial, Python pickle, PHP), JWT (key confusion, dynamic length RSA parameters), OAuth/OIDC, prototype pollution |
| ctf-pwn | 65 | Buffer overflow, ROP chains, ret2csu, ret2vdso, vsyscall ROP PIE bypass, bad char XOR bypass, 5 runnable pwntools==4.15.0 template scripts in ctf-pwn/scripts/ with yield payload generators (ret2libc, SROP, shellcraft asm, format string write-size suites, seccomp ORW), heap exploitation (unlink, House of Force, largebin attack guide, glibc 2.39 tcache key protection + calloc behavior, House of Apple 2 + setcontext SUID variant, House of Tangerine/Einherjar), kernel exploitation (io_uring CVE-2024-0582, CET Shadow Stack signal-frame bypass, KASLR, SMEP/SMAP, ret2usr, modprobe_path), format string, SROP with UTF-8 constraints, Linux userland attack playbook + static-signals reference, 43 pwnable.tw writeups (ctf-pwn/pwnable-tw/) |
| ctf-crypto | 19 | RSA (small e, common modulus, Wiener, Boneh-Durfee $d<N^{0.292}$, partial-$d$ exposure, Hastad broadcast, Hastad broadcast with linear padding Coppersmith, Coppersmith structured primes, Franklin-Reiter related message attack e=3, Manger, Manger OAEP timing, Williams $p+1$ + ECM chain, LSB binary search oracle, Fermat/consecutive primes, multi-prime, restricted-digit primes, p=q bypass, cube root CRT, phi multiple factoring, weak keygen base representation, gcd(e,phi)>1 exponent reduction, CRT fault attack, homomorphic decryption oracle bypass, small prime CRT decomposition, Montgomery timing, Bleichenbacher low-exponent forgery, e=1 bypass), AES (ECB byte-at-a-time, CBC bitflip + padding oracle, GCM nonce reuse forbidden attack, ChaCha20-Poly1305 nonce reuse, key-committing partitioning oracle), ECC (small subgroup, invalid curve 5 variants, Smart $p$-adic lift, MOV pairing, twist attacks, SIDH Castryck-Decru warning, CSIDH volcano walk, ECDSA nonce reuse, Ed25519 torsion), classic DH (trivial g, Pohlig-Hellman, Lim-Lee confinement), Lattices/PQC (fpylll Howgrave-Graham lattice, NTRU negacyclic basis, GGH CVP embedding, Mersenne AJPS small roots, BDD predicate, ML-KEM/Kyber flattening), PRNG/stream (PCG XSH-RR, xoroshiro/xoshiro, BBS parity, Henon/Arnold chaos, Spritz/VMPC/RC4A, Trivium cube attack) |
| ctf-reverse | 22 | Binary analysis, custom VMs (+ VM bytecode lifting to LLVM IR), WASM, RISC-V, Rust serde, Python bytecode, Unicorn CPU emulation guide (unicorn-emulation.md: hooks, mixed-mode 64→32 retf with XMM state preservation, MMIO peripherals, Keystone trace inversion), Go (GoReSym), Android APK/DEX/JNI, anti-debug, anti-VM, control flow flattening deobfuscation, radare2 scripting with r2ghidra decompilation, ESIL single-function emulation, and batch-mode byte patching (radare2-r2pipe.md), r2frida live-process instrumentation, MBA simplification with msynth, MCP server integration for agent-driven RE (tools-mcp.md) |
| ctf-forensics | 14 | Disk/memory forensics (GIMP raw memory dump visual inspection, Kyoto Cabinet hash DB forensics), RAID 5 XOR recovery, APFS snapshot recovery, Windows KAPE triage, Windows/Linux forensics, steganography (Arnold's Cat Map descrambling, MJPEG extra bytes after FFD9, high-res SSTV custom FM demodulation, EXIF zlib + triangular numbers LSB, PDF xref generation number covert channel, pixel-wise ECB deduplication image recovery), network captures, tcpdump, TLS/SSL keylog decryption, RDP session decryption via PKCS12 key extraction, USB HID drawing, USB HID keyboard capture decoding (+ arrow key navigation tracking), USB MIDI Launchpad traffic reconstruction, UART decode, serial UART data decoding from WAV audio, side-channel power analysi… |
| ctf-osint | 4 | Social media, geolocation, Google Lens cropped region search, reflected/mirrored text reading, Street View panorama matching, What3Words micro-landmark matching, Google Plus Codes, Baidu reverse image search, Overpass Turbo spatial queries, username enumeration, username metadata mining (postal codes), Strava fitness route OSINT, Google Maps photo verification, DNS recon, archive research, Google dorking (TBS image filters), Telegram bots, FEC filings, WHOIS investigation, music-themed landmark geolocation with key encoding, Shodan SSH fingerprint deanonymization, gaming platform OSINT (WoW/Steam/Minecraft character lookup), fake service banner detection via nmap fingerprinting, git commit author email mining for credential pivot, .DS_S… |
| ctf-malware | 4 | Obfuscated scripts, C2 traffic, custom crypto protocols, .NET malware, PyInstaller unpacking, PE analysis, sandbox evasion, anti-analysis (VM detection, timing evasion, API hashing, process injection), dynamic analysis (strace/ltrace, network monitoring, memory extraction), YARA rules, shellcode analysis, memory forensics (Volatility malfind, process injection), Poison Ivy RAT Camellia decryption, DarkComet RAT forensics (keylogger log recovery, registry persistence), Cobalt Strike beacon analysis (Malleable C2 detection, dissect.cobaltstrike config extraction), trojanized plugin custom alphabet C2 decoding, ARP spoof + TCP RST injection to capture IRC C2 credentials |
| ctf-misc | 13 | Pyjails (audit-hook trampolines across 4 families, Filter'd length-limit trampolines, full NFKC compatibility decomposition, modern filter trios, func_globals module chain, restricted charset number gen, class attribute persistence, name mangling + func_code.co_consts + doc attribute access, f-string config injection via stored eval), bash jails (BASH_ENV vectors), encodings (two-pass try_xor + bytes-preserving auto_decode, base64→xor→zlib chains, QR polyglots, Brainfuck dual-interpreter equality jails, DTMF, Gray code, RTF custom tag extraction, SMS PDU decoding, RFC4042 UTF-9, pixel color binary encoding, TOPKEK binary encoding, MaxiCode 2D barcode decoding, DTMF audio + multi-tap T9 phone keypad, music note interval steganography), audio steganography (audio.md: Morse extraction with channel auto-detection, spectrogram, SSTV), RF/SDR, DNS exploitation (+ round-robin A record enumeration), Unicode stego, floating-point tricks, game theory, commitment schemes, WASM, K8s, custom assembly sandbox escape, Lua sandbox escape (function name injection, table indexing bypass), Ruby sandbox escape via TracePoint.trace, cookie check… |
| ctf-similar-search | 0 | Searches for similar CTF challenge writeups via the Tavily API (search + content extraction) to find reference solutions when stuck or identifying a challenge type |
| solve-challenge | 0 | Orchestrator skill — analyzes challenge and delegates to category skills |
| ctf-writeup | 0 | Generates standardized submission-style writeups with metadata, solution steps, code, and lessons learned |
Usage
Skills are loaded automatically based on context. You can also invoke the orchestrator directly:
/solve-challenge <challenge description or URL>
Contributing
See CONTRIBUTING.md for development setup and contribution guidelines.
Sponsors
ctf-skills is maintained in my spare time. If it saves your team hours during a competition or a security assessment, you can sponsor the project on GitHub.
- $5/month keeps the lights on and lists you in the thanks below.
- $25/month adds your name and a link below.
- $100/month puts your logo below.
- $1,500/month: featured sponsor. A dedicated section near the top of this README with your name, logo, a short description and a link, labelled "Sponsored". You draft the text, I approve it. Three-month minimum, paid in advance; month to month or quarterly after that. Bank transfer or GitHub Sponsors, invoice on request.
Because ctf-skills serves a security-focused audience, I review every sponsor before accepting: expect questions about how your product handles access, credentials and data retention. API credits or discount codes for users are welcome in addition to a sponsorship, not instead of one.
No sponsor yet. Be the first.
License
MIT
Created by Lukasz Jagiello. Write-up: lukasz.jagiello.org/projects/ctf-skills.