Install
openclaw skills install ctf-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, DTMF audio spectrograms, packet timing analysis, CD audio disc images, or recovering deleted files and credentials.
openclaw skills install ctf-forensicsQuick reference for forensics CTF challenges. Each technique has a one-liner here; see supporting files for full details.
Python packages (all platforms):
pip install volatility3 Pillow numpy matplotlib
Linux (apt):
apt install binwalk foremost libimage-exiftool-perl tshark sleuthkit \
ffmpeg steghide testdisk john pcapfix
macOS (Homebrew):
brew install binwalk exiftool wireshark sleuthkit ffmpeg \
testdisk john-jumbo
Ruby gems (all platforms):
gem install zsteg
/ctf-crypto./ctf-malware./ctf-web./ctf-misc./ctf-osint./ctf-reverse.# File analysis
file suspicious_file
exiftool suspicious_file # Metadata
binwalk suspicious_file # Embedded files
strings -n 8 suspicious_file
hexdump -C suspicious_file | head # Check magic bytes
# Disk forensics
sudo mount -o loop,ro image.dd /mnt/evidence
fls -r image.dd # List files
photorec image.dd # Carve deleted files
# Memory forensics (Volatility 3)
vol3 -f memory.dmp windows.info
vol3 -f memory.dmp windows.pslist
vol3 -f memory.dmp windows.filescan
See disk-and-memory.md for full Volatility plugin reference, VM forensics, and coredump analysis.
grep -iE "(flag|part|piece|fragment)" server.log # Flag fragments
grep "FLAGPART" server.log | sed 's/.*FLAGPART: //' | uniq | tr -d '\n' # Reconstruct
sort logfile.log | uniq -c | sort -rn | head # Find anomalies
See linux-forensics.md for Linux attack chain analysis and Docker image forensics.
Key Event IDs:
RDP Session IDs (TerminalServices-LocalSessionManager):
import Evtx.Evtx as evtx
with evtx.Evtx("Security.evtx") as log:
for record in log.records():
print(record.xml())
See windows.md for full event ID tables, registry analysis, SAM parsing, USN journal, and anti-forensics detection.
dir/Explorer. Detect with fls -r image.dd | grep ":", extract with icat. See windows.md.If attacker cleared event logs, use these alternative sources:
See windows.md for detailed parsing code and anti-forensics detection checklist.
steghide extract -sf image.jpg
zsteg image.png # PNG/BMP analysis
stegsolve # Visual analysis
Binary border stego: Black/white pixels in 1px image border encode bits clockwise
FFT frequency domain: Image data hidden in 2D FFT magnitude spectrum; try np.fft.fft2 visualization
DTMF audio: Phone tones encoding data; decode with multimon-ng -a DTMF
Multi-layer PDF: Check hidden comments, post-EOF data, XOR with keywords, ROT18 final layer
SSTV + LSB: SSTV signal may be red herring; check 2-bit LSB of audio samples with stegolsb
SVG keyframes: Animation keyTimes/values attributes encode binary/Morse via fill color alternation
PNG chunk reorder: Fix chunk order: IHDR → ancillary → IDAT (in order) → IEND
File overlays: Check after IEND for appended archives with overwritten magic bytes
APNG frame extraction: Animated PNG has multiple frames; extract with apngdis or parse fdAT/fcTL chunks. See steganography.md.
PNG height/CRC manipulation: Modify IHDR height field, brute-force until CRC matches to reveal hidden rows. See steganography.md.
Pixel coordinate chain stego: Linked-list traversal where R=data byte, G/B=next pixel coordinates. See stego-image.md.
AVI frame differential: XOR consecutive video frames to reveal hidden data in pixel differences. See stego-image.md.
Custom freq DTMF: Non-standard dual-tone frequencies; generate spectrogram first (ffmpeg -i audio -lavfi showspectrumpic), map custom grid to keypad digits, decode variable-length ASCII
JPEG DQT LSB: Unused quantization tables (ID 2, 3) carry LSB-encoded data; access via Image.open().quantization and extract bit 0 from each of 64 values
Multi-track audio subtraction: Two nearly-identical audio tracks in MKV/video; sox -m a0.wav "|sox a1.wav -p vol -1" diff.wav cancels shared content, flag appears in spectrogram of difference signal (5-12 kHz band)
Packet interval timing: Identical packets with two distinct interval values (e.g., 10ms/100ms) encode binary; filter by interface, compute inter-packet deltas, threshold to bits
See steganography.md, stego-advanced.md, and stego-advanced-2.md for full code examples and decoding workflows.
exiftool document.pdf # Metadata (often hides flags!)
pdftotext document.pdf - # Extract text
strings document.pdf | grep -i flag
binwalk document.pdf # Embedded files
Advanced PDF stego (Nullcon 2026 rdctd): Six techniques -- invisible text separators, URI annotations with escaped braces, Wiener deconvolution on blurred images, vector rectangle QR codes, compressed object streams (mutool clean -d), document metadata fields.
See steganography.md for full PDF steganography techniques and code.
# Disk images
sudo mount -o loop,ro image.dd /mnt/evidence
fls -r image.dd && photorec image.dd
# VM images (OVA/VMDK)
tar -xvf machine.ova
7z x disk.vmdk -oextracted "Windows/System32/config/SAM" -r
# Memory (Volatility 3)
vol3 -f memory.dmp windows.pslist
vol3 -f memory.dmp windows.cmdline
vol3 -f memory.dmp windows.netscan
vol3 -f memory.dmp windows.dumpfiles --physaddr <addr>
# String carving
strings -a -n 6 memdump.bin | grep -E "FLAG|SSH_CLIENT|SESSION_KEY"
# Coredump
gdb -c core.dump # info registers, x/100x $rsp, find "flag"
See disk-and-memory.md for full Volatility plugin reference, VM forensics, and VMware snapshots. See disk-advanced.md for deleted partition recovery, ZFS forensics, and ransomware analysis.
# Extract with impacket, crack with hashcat -m 1000
python -c "from impacket.examples.secretsdump import *; SAMHashes('SAM', LocalOperations('SYSTEM').getBootKey()).dump()"
See windows.md for SAM details and network-advanced.md for NTLMv2 cracking from PCAP.
https://mempool.space/api/tx/<TXID>| Magic | Format | Extension | Notes |
|---|---|---|---|
OggS | Ogg container | .ogg | Audio/video |
RIFF | RIFF container | .wav,.avi | Check subformat |
%PDF | .pdf | Check metadata & embedded objects | |
GCDE | PrusaSlicer binary G-code | .g, .bgcode | See 3d-printing.md |
$R files)Pattern (Backchimney): Malware uses WMI event subscriptions for persistence (MITRE T1546.003).
python PyWMIPersistenceFinder.py OBJECTS.DATA
See windows.md for WMI repository analysis details.
data.replace(b'\r\n', b'\n').replace(b'\r\x00', b'\r')rsatool, add to Wiresharktshark -e usb.iso.data, import as raw PCM in Audacityaircrack-ng -w wordlist capture.pcap cracks WPA handshake; WEP cracked with enough IVs. See network.md.pcapfix -d corrupted.pcap repairs broken PCAP headers/checksums for Wireshark loading. See network.md.See network.md for SMB3 decryption, credential extraction, and linux-forensics.md for full TLS/TFTP/USB workflows.
Login Data SQLite with AES-GCM using DPAPI master keyplaces.sqlite -- SELECT url FROM moz_places WHERE url LIKE '%flag%'See linux-forensics.md for full browser credential decryption code.
RUN commands even after cleanup. tar xf app.tar then inspect config blob. See linux-forensics.md.auth.log, .bash_history, recent binaries, PCAP. See linux-forensics.md.bytes(a ^ b for a, b in zip(disk1, disk3)). See disk-advanced.md.testdisk or kpartx -av. See disk-advanced.md.bson Python library. See disk-and-memory.md.veracrypt --mount or cryptsetup open --type tcrypt. See disk-and-memory.md.gitdumper.sh for exposed .git dirs. See linux-forensics.md.keepass2john lacks v4/Argon2 support; use ivanmrsulja/keepass2john fork or keepass4brute. Generate wordlists with cewl. See linux-forensics.md.git rebase --squash leaves orphaned objects recoverable via git fsck --unreachable --no-reflogs. See linux-forensics.md.0x30/0x31) appended after DNS question structure encode binary bits; 8-bit MSB-first chunks → ASCII. See network-advanced.md.mount -o subvol=@backup accesses historical copies. See disk-recovery.md.ESC_G protocol embeds zlib-compressed RGB image data in base64 chunks. Strip escape sequences, concatenate, decompress, reconstruct. See steganography.md.LsaLookupSids with incrementing RIDs enumerates AD accounts from PCAP. See network-advanced.md.adb pull, analyze with apktool, check shared_prefs/ and SQLite databases in /data/data/<package>/. See disk-and-memory.md.docker save exports layered tars; deleted files persist in earlier layers. docker history --no-trunc reveals build secrets. See disk-and-memory.md.list-object-versions recovers deleted flags. See disk-and-memory.md.icat with different XID block offsets to read inodes across transaction IDs. See disk-advanced.md..wcm files contain macros with embedded encrypted data; XOR formula (a+b)-2*(a&b) = bitwise XOR. See disk-advanced.md.git hash-object. See linux-forensics.md.sox audio.wav reversed.wav reverse or Audacity Effect → Reverse reveals hidden message. See stego-advanced-2.md.ffprobe -hide_banner file.mp4 to enumerate, ffmpeg -i file.mp4 -map 0:1 -frames:v 1 flag.jpg to extract. See steganography.md.0xE5 but data remains. fls -r -d image.img lists deleted entries, icat image.img <inode> recovers by inode. See disk-recovery.md.e2fsck -y disk.img reconnects to /lost+found. Also use debugfs lsdel or icat. See disk-recovery.md.struct input_event binary dump; filter type==1 (EV_KEY), value==1 (press), map keycodes via input-event-codes.h. See signals-and-hardware.md.CByte((val-78)/3) transforms to ELF bytes. Reimplement in Python, never run the macro. See linux-forensics.md./Kids array. Add to /Kids, increment /Count, re-render. See network-advanced.md.3*N. See stego-advanced-2.md.pyrasite-shell to running Python process, decompile func_code objects with uncompyle6 (Python <=3.8) or pycdc (Python 3.9+), dump globals() for secrets. See linux-forensics.md.binwalk/foremost; use HFSExplorer + 010 Editor HFS template to extract extent records. See disk-advanced.md.arccos + differentiation. See stego-advanced-2.md.key = row*16 + col); reconstruct visual patterns from button press sequences. See signals-and-hardware.md.Enumerate AD accounts from PCAP by analyzing LSARPC LsaLookupSids calls with sequential RIDs after Guest auth. Filter: dcerpc.cn_bind_to_str contains lsarpc.
See network-advanced.md for full RPC call sequence and Wireshark filters.
Extract crackable HMAC-MD5 hashes from MS-SNTP responses by sending NTP requests with machine account RIDs. Crack with hashcat -m 31300.
# Extract NTP payloads, convert to hashcat format, crack
tshark -r capture.pcapng -Y "ntp && ip.src == <DC_IP>" -T fields -e udp.payload
hashcat -m 31300 -a 0 -O hashes.txt rockyou.txt --username
See network-advanced.md for payload parsing script and full attack chain.
Quick path: tshark --export-objects http,/tmp/objects extracts uploaded files instantly. Check for multipart POST uploads, unusual User-Agent strings, and exfiltrated files (images with flag text). See network.md.
echo "base64string" | base64 -d
echo "hexstring" | xxd -r -p
# ROT13: tr 'A-Za-z' 'N-ZA-Mn-za-m'
ROT18: ROT13 on letters + ROT5 on digits. Common final layer in multi-stage forensics. See linux-forensics.md for implementation.