← ClaudeAtlas

ctf-stegolisted

Use when solving steganography CTF challenges — hidden data in images (PNG/JPG/BMP), audio (WAV/MP3), video, or text. Triggers on "ctf stego", "steganography", "hidden in image", "audio stego", "lsb".
26zl/cybersec-toolkit · ★ 6 · AI & Automation · score 73
Install: claude install-skill 26zl/cybersec-toolkit
# CTF stego methodology ## 0. CRITICAL — never `Read` an unvalidated image Per CLAUDE.md: reading a corrupt image poisons the conversation. Validate first: ```bash run_tool("file", "/path/to/image") run_tool("identify", "/path/to/image") # ImageMagick # or run_script: # from PIL import Image; img = Image.open(path); print(img.size, img.mode) ``` Only `Read` the image after both checks pass. ## 1. Triage every input ```bash file <file> xxd <file> | head -30 exiftool <file> # metadata — flag often hides here strings <file> | grep -i "ctf\|flag\|key\|pass" | head binwalk <file> # multi-file polyglots ``` Always check metadata first. ~30% of intro stego is just `exiftool`. ## 2. Image (PNG / JPG / BMP / GIF) | Technique | Tool / approach | | --- | --- | | LSB in pixels | `zsteg` (PNG/BMP), `stegsolve` | | EOF data after IEND/EOI | `binwalk -e`, manual hex | | JPG specific | `steghide extract -sf <file>` (often with empty pass), `stegseek` for brute | | PNG color planes | `stegsolve` (visual layer toggle) | | LSB matching, custom | `zsteg -a`, then write custom Python with PIL | | Polyglot (file with valid headers for multiple formats) | `binwalk`, `foremost` | | File appended after IEND chunk (PNG) | `pngcheck -v`, manual carve | | Modified/extra chunks | `pngcheck -v`, `pngcsum` | | Width/height tampering (PNG) | edit IHDR width/height, recalc CRC — `tweakpng` style | ```bash # zsteg covers most LSB cases for PNG/BMP zsteg -a image.png # ste