CTF Forensics & Blockchain
Quick reference for forensics CTF challenges. Each technique has a one-liner here; see supporting files for full details.
Prerequisites
Python packages (all platforms):
CODEBLOCK0
Linux (apt):
CODEBLOCK1
macOS (Homebrew):
CODEBLOCK2
Ruby gems (all platforms):
CODEBLOCK3
Additional Resources
- - 3d-printing.md - 3D printing forensics (PrusaSlicer binary G-code, QOIF, heatshrink)
- windows.md - Windows forensics (registry, SAM, event logs, recycle bin, NTFS alternate data streams, USN journal, PowerShell history, Defender MPLog, WMI persistence, Amcache)
- network.md - Network forensics basics (tcpdump, TLS/SSL keylog decryption, TLS master key extraction from coredump, Wireshark, PCAP, port scanning, SMB3 decryption, 5G/NR protocols, WordPress recon, credentials, USB HID steno, BCD encoding, HTTP file upload exfiltration, split archive reassembly via timestamp ordering)
- network-advanced.md - Advanced network forensics (packet interval timing encoding, USB HID mouse/pen drawing recovery, NTLMv2 hash cracking, TCP flag covert channel, DNS last-byte steganography, DNS trailing byte binary encoding, multi-layer PCAP with XOR + ZIP and mDNS key, Brotli decompression bomb seam analysis, SMB RID recycling via LSARPC, Timeroasting MS-SNTP hash extraction)
- disk-and-memory.md - Core disk/memory forensics (Volatility, disk mounting/carving, VM/OVA/VMDK, VMware snapshots, coredumps, Windows KAPE triage, PowerShell ransomware, Android forensics, Docker container forensics, cloud storage forensics, BSON reconstruction, TrueCrypt/VeraCrypt mounting)
- disk-advanced.md - Advanced disk and memory techniques (deleted partitions, ZFS forensics, GPT GUID encoding, VMDK sparse parsing, memory dump string carving, ransomware key recovery, WordPerfect macro XOR, minidump ISO 9660 recovery, APFS snapshot recovery, RAID 5 XOR recovery, HFS+ resource fork recovery, SQLite edit history reconstruction)
- disk-recovery.md - Disk recovery and extraction patterns (LUKS master key recovery, PRNG timestamp seed brute-force, VBA macro binary recovery, FemtoZip decompression, XFS filesystem reconstruction, tar duplicate entry extraction, nested matryoshka filesystem extraction, anti-carving via null byte interleaving, BTRFS subvolume/snapshot recovery, FAT16 free space data recovery, FAT16 deleted file recovery via Sleuth Kit fls/icat, ext2 orphaned inode recovery via fsck, corrupted ZIP header repair)
- steganography.md - General steganography (binary border stego, PDF multi-layer stego, SVG keyframes, PNG reorder, file overlays, GIF frame diff Morse code, GZSteg + spammimic, spreadsheet frequency recovery, Kitty terminal graphics protocol decoding, ANSI escape sequence steganography, autostereogram solving, two-layer byte+line interleaving, multi-stream video container stego, progressive PNG layered XOR decryption)
- stego-image.md - Image-specific steganography (JPEG unused DQT table LSB, BMP bitplane QR extraction, image puzzle reassembly, F5 JPEG DCT ratio detection, PNG unused palette entry stego, QR code tile reconstruction, seed-based pixel permutation + multi-bitplane QR, JPEG thumbnail pixel-to-text mapping, conditional LSB with pixel filtering, JPEG slack space, nearest-neighbor interpolation stego, RGB parity steganography)
- stego-advanced.md - Advanced steganography part 1: audio and signal techniques (FFT frequency domain, DTMF audio, SSTV+LSB, DotCode barcode, custom frequency dual-tone keypad, multi-track audio differential subtraction, cross-channel multi-bit LSB, audio FFT musical notes, audio metadata octal encoding, nested tar whitespace encoding, audio waveform binary encoding, audio spectrogram hidden QR)
- stego-advanced-2.md - Advanced steganography part 2: video, image transform, and format-specific techniques (video frame accumulation, reversed audio, video frame averaging, JPEG XL TOC permutation steganography, Arnold's Cat Map descrambling, high-resolution SSTV custom FM demodulation, MJPEG FFD9 trailing byte stego, EXIF zlib + Stegano pixel patterns, PDF xref covert channel, ANSI escape code stego, pixel-wise ECB deduplication)
- linux-forensics.md - Linux/app forensics (log analysis, Docker image forensics, attack chains, browser credentials, Firefox history, TFTP, TLS weak RSA, USB audio, Git directory recovery, KeePass v4 cracking, Git reflog/fsck squash recovery, browser artifact analysis (Chrome/Chromium/Firefox history, cookies, downloads, local storage, session restore), corrupted git blob repair via byte brute-force, VBA macro Excel cell data to ELF binary extraction, Python in-memory source recovery via pyrasite)
- signals-and-hardware.md - Hardware signal decoding with decode code (VGA frame parsing, HDMI TMDS symbol decode, DisplayPort 8b/10b + LFSR descrambler), Voyager Golden Record audio, Saleae Logic 2 UART decode, Flipper Zero .sub files, side-channel power analysis (DPA), keyboard acoustic side-channel, CD audio disc image steganography (CIRC de-interleaving + spiral rendering), Linux inputevent keylogger dump parsing, serial UART from WAV audio, USB MIDI Launchpad grid reconstruction
When to Pivot
- - If you recover an encrypted blob and the hard part becomes RSA, AES, or lattice work, switch to
/ctf-crypto. - If the evidence really points to malware staging, beacon config extraction, or packed samples, switch to
/ctf-malware. - If the artifact is a web app backup or API dump and the remaining problem is application logic, switch to
/ctf-web. - If the forensic evidence is really an encoding puzzle, steganography trick, or esoteric format rather than true forensics, switch to
/ctf-misc. - If you need to trace infrastructure, attribute actors, or investigate public records from forensic findings, switch to
/ctf-osint. - If the recovered artifact is a compiled binary or firmware that needs disassembly and analysis, switch to
/ctf-reverse.
Quick Start Commands
CODEBLOCK4
See disk-and-memory.md for full Volatility plugin reference, VM forensics, and coredump analysis.
Log Analysis
CODEBLOCK5
See linux-forensics.md for Linux attack chain analysis and Docker image forensics.
Windows Event Logs (.evtx)
Key Event IDs:
- - 1001 - Bugcheck/reboot
- 1102 - Audit log cleared
- 4720 - User account created
- 4781 - Account renamed
RDP Session IDs (TerminalServices-LocalSessionManager):
- - 21 - Session logon succeeded
- 24 - Session disconnected
- 1149 - RDP auth succeeded (RemoteConnectionManager, has source IP)
CODEBLOCK6
See windows.md for full event ID tables, registry analysis, SAM parsing, USN journal, and anti-forensics detection.
- - NTFS Alternate Data Streams (ADS): Hidden data attached to files via named NTFS streams. Invisible to
dir/Explorer. Detect with fls -r image.dd | grep ":", extract with icat. See windows.md.
When Logs Are Cleared
If attacker cleared event logs, use these alternative sources:
- 1. USN Journal ($J) - File operations timeline (MFT ref, timestamps, reasons)
- SAM registry - Account creation from key lastmodified timestamps
- PowerShell history - ConsoleHosthistory.txt (USN DATA_EXTEND = command timing)
- Defender MPLog - Separate log with threat detections and ASR events
- Prefetch - Program execution evidence
- User profile creation - First login time (profile dir in USN journal)
See windows.md for detailed parsing code and anti-forensics detection checklist.
Steganography
CODEBLOCK7
- - 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 INLINECODE10
- 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 INLINECODE11
- 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.
PDF Analysis
CODEBLOCK8
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 / VM / Memory Forensics
CODEBLOCK9
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.
Windows Password Hashes
CODEBLOCK10
See windows.md for SAM details and network-advanced.md for NTLMv2 cracking from PCAP.
Bitcoin Tracing
- - Use mempool.space API: INLINECODE21
- Peel chain: ALWAYS follow LARGER output; round amounts indicate peels
Uncommon File Magic Bytes
| Magic | Format | Extension | Notes |
|---|
| INLINECODE22 | Ogg container | INLINECODE23 | Audio/video |
| INLINECODE24 |
RIFF container |
.wav,
.avi | Check subformat |
|
%PDF | PDF |
.pdf | Check metadata & embedded objects |
|
GCDE | PrusaSlicer binary G-code |
.g,
.bgcode | See 3d-printing.md |
Common Flag Locations
- - PDF metadata fields (Author, Title, Keywords)
- Image EXIF data
- Deleted files (Recycle Bin
$R files) - Registry values
- Browser history
- Log file fragments
- Memory strings
WMI Persistence Analysis
Pattern (Backchimney): Malware uses WMI event subscriptions for persistence (MITRE T1546.003).
CODEBLOCK11
- - Look for FilterToConsumerBindings with CommandLineEventConsumer
- Base64-encoded PowerShell in consumer commands
- Event filters triggered on system events (logon, timer)
See windows.md for WMI repository analysis details.
Network Forensics Quick Reference
- - TFTP netascii: Binary transfers corrupted; fix with INLINECODE33
- TLS keylog decryption: Import SSLKEYLOGFILE or RSA private key into Wireshark (Edit → Preferences → Protocols → TLS)
- TLS weak RSA: Extract cert, factor modulus, generate private key with
rsatool, add to Wireshark - USB audio: Extract isochronous data with
tshark -e usb.iso.data, import as raw PCM in Audacity - NTLMv2 from PCAP: Extract server challenge + NTProofStr + blob from NTLMSSPAUTH, brute-force
- WPA/WEP WiFi decryption:
aircrack-ng -w wordlist capture.pcap cracks WPA handshake; WEP cracked with enough IVs. See network.md. - PCAP repair:
pcapfix -d corrupted.pcap repairs broken PCAP headers/checksums for Wireshark loading. See network.md. - USB HID keyboard decoding: Extract 8-byte HID reports from USB captures; byte 2 = keycode, byte 0 = modifiers (Shift). See network-advanced.md.
- dnscat2 reassembly: Decode hex/base32 subdomain labels, strip 9-byte dnscat2 header, deduplicate retransmissions, reassemble payload. See network-advanced.md.
- USB keyboard LED exfiltration: Host-to-device HID SETREPORT packets toggle Caps Lock LED. Timing encodes Morse code. See network-advanced.md.
See network.md for SMB3 decryption, credential extraction, and linux-forensics.md for full TLS/TFTP/USB workflows.
Browser Forensics
- - Chrome/Edge: Decrypt
Login Data SQLite with AES-GCM using DPAPI master key - Firefox: Query
places.sqlite -- INLINECODE40
See linux-forensics.md for full browser credential decryption code.
Additional Technique Quick References
- - Docker image forensics: Config JSON preserves ALL
RUN commands even after cleanup. tar xf app.tar then inspect config blob. See linux-forensics.md. - Linux attack chains: Check
auth.log, .bash_history, recent binaries, PCAP. See linux-forensics.md. - RAID 5 XOR recovery: Two disks of a 3-disk RAID 5 → XOR byte-by-byte to recover the third:
bytes(a ^ b for a, b in zip(disk1, disk3)). See disk-advanced.md. - PowerShell ransomware: Extract scripts from minidump, find AES key, decrypt SMTP attachment. See disk-and-memory.md.
- Linux ransomware + memory dump: If Volatility is unreliable, recover AES key via raw-memory candidate scanning and magic-byte validation; re-extract zip cleanly to avoid missing files/false negatives. See disk-advanced.md.
- Deleted partitions:
testdisk or kpartx -av. See disk-advanced.md. - ZFS forensics: Reconstruct labels, Fletcher4 checksums, PBKDF2 cracking. See disk-advanced.md.
- BSON reconstruction: Reassemble BSON (Binary JSON) documents from raw bytes; parse with
bson Python library. See disk-and-memory.md. - TrueCrypt mounting: Mount TrueCrypt/VeraCrypt volumes with known password using
veracrypt --mount or cryptsetup open --type tcrypt. See disk-and-memory.md. - Hardware signals: VGA/HDMI TMDS/DisplayPort, Voyager audio, Saleae UART decode, Flipper Zero. See signals-and-hardware.md.
- I2C protocol decoding: Decode I2C bus captures (SDA/SCL lines) to extract data from EEPROM or sensor communications. See signals-and-hardware.md.
- Punched card OCR: Decode IBM-29 punch card images by mapping hole positions to characters using standard encoding grid. See signals-and-hardware.md.
- USB HID mouse drawing: Render relative HID movements per draw mode as bitmap; separate modes, skip pen lifts, scale 5-8x. See network-advanced.md.
- Side-channel power analysis: Multi-dimensional power traces (positions × guesses × traces × samples). Average across traces, find sample with max variance, select guess with max power at leak point. See signals-and-hardware.md.
- Packet interval timing: Binary data encoded as inter-packet delays in PCAP. Two interval values = two bit values. See network-advanced.md.
- BMP bitplane QR: Extract bitplanes 0-2 per RGB channel with NumPy; hidden QR often in bit 1 (not bit 0). See stego-image.md.
- Image puzzle reassembly: Edge-match pixel differences between piece borders, greedy placement in grid. See stego-image.md.
- Audio FFT notes: Dominant frequencies → musical note names (A-G) spell words. See stego-advanced.md.
- Audio metadata octal: Exiftool comment with underscore-separated octal numbers → decode to ASCII/base64. See stego-advanced.md.
- G-code visualization: Side projections (XZ/YZ) reveal text. See 3d-printing.md.
- Git directory recovery:
gitdumper.sh for exposed .git dirs. See linux-forensics.md. - KeePass v4 cracking: Standard
keepass2john lacks v4/Argon2 support; use ivanmrsulja/keepass2john fork or keepass4brute. Generate wordlists with cewl. See linux-forensics.md. - Cross-channel multi-bit LSB: Different bit positions per RGB channel (R[0], G[1], B[2]) encode hidden data. See stego-advanced.md.
- F5 JPEG DCT detection: Ratio of ±1 to ±2 AC coefficients drops from ~3:1 to ~1:1 with F5; sparse images need secondary ±2/±3 metric. See stego-image.md.
- PNG unused palette stego: Unused PLTE entries (not referenced by pixels) carry hidden data in red channel values. See stego-image.md.
- Keyboard acoustic side-channel: MFCC features from keystroke audio + KNN classification against labeled reference. 10ms window captures impact transient. See signals-and-hardware.md.
- TCP flag covert channel: 6 TCP flag bits (FIN/SYN/RST/PSH/ACK/URG) = values 0-63, encoding base64 characters. Nonsensical flag combos on a consistent dest port = covert data. See network-advanced.md.
- Brotli decompression bomb seam: Compressed bomb has repeating blocks; flag breaks the pattern at a seam. Compare adjacent blocks to find discontinuity, decompress only that region. See network-advanced.md.
- Git reflog/fsck squash recovery:
git rebase --squash leaves orphaned objects recoverable via git fsck --unreachable --no-reflogs. See linux-forensics.md. - DNS trailing byte binary: Extra bytes (
0x30/0x31) appended after DNS question structure encode binary bits; 8-bit MSB-first chunks → ASCII. See network-advanced.md. - Fake TLS + mDNS key + printability merge: TCP stream disguised as TLS hides ZIP; XOR key from mDNS TXT record; merge two decrypted arrays by selecting printable characters. See network-advanced.md.
- Seed-based pixel permutation stego: Deterministic pixel shuffle (Fisher-Yates with known seed) + multi-bitplane interleaved LSB extraction from Y channel → hidden QR code. See stego-image.md.
- BTRFS snapshot recovery: Deleted files persist in BTRFS snapshots/alternate subvolumes.
mount -o subvol=@backup accesses historical copies. See disk-recovery.md. - JPEG XL TOC permutation: JXL's progressive TOC permutation controls tile convergence order during partial decode. Truncate at increasing offsets, measure which tiles converge first → convergence order encodes flag. See stego-advanced-2.md.
- Kitty terminal graphics:
ESC_G protocol embeds zlib-compressed RGB image data in base64 chunks. Strip escape sequences, concatenate, decompress, reconstruct. See steganography.md. - ANSI escape sequence stego: Flag text interleaved between ANSI color codes and braille characters. Invisible when rendered; extract by stripping escape sequences and non-ASCII. See steganography.md.
- Autostereogram solving: Duplicate layer, difference blend, shift horizontally ~100px to reveal hidden 3D text. See steganography.md.
- Two-layer byte+line interleaving: Two files byte-interleaved, then scanlines interleaved. Deinterleave even/odd bytes first (valid images), then even/odd lines. See steganography.md.
- SMB RID recycling: Guest auth + LSARPC
LsaLookupSids with incrementing RIDs enumerates AD accounts from PCAP. See network-advanced.md. - Timeroasting (MS-SNTP): NTP requests with machine RIDs extract HMAC-MD5 hashes from DC; crack with hashcat -m 31300. See network-advanced.md.
- Android forensics: Extract APK with
adb pull, analyze with apktool, check shared_prefs/ and SQLite databases in /data/data/<package>/. See disk-and-memory.md. - Docker container forensics:
docker save exports layered tars; deleted files persist in earlier layers. docker history --no-trunc reveals build secrets. See disk-and-memory.md. - Cloud storage forensics: S3/GCP/Azure versioning preserves deleted objects.
list-object-versions recovers deleted flags. See disk-and-memory.md. - APFS snapshot recovery: Copy-on-write filesystem preserves historical file states in snapshots; use
icat with different XID block offsets to read inodes across transaction IDs. See disk-advanced.md. - Windows KAPE triage: Pre-collected artifact ZIPs; start with PowerShell history → Amcache → MFT → registry hives. See disk-and-memory.md.
- WordPerfect macro XOR:
.wcm files contain macros with embedded encrypted data; XOR formula (a+b)-2*(a&b) = bitwise XOR. See disk-advanced.md. - TLS master key from coredump: Search coredump for session ID (from Wireshark handshake); read 48 bytes before it as master key. Create Wireshark pre-master-secret log file. See network.md.
- Corrupted git blob repair: Single-byte corruption changes SHA-1; brute-force each byte position (256 × filesize) verifying with
git hash-object. See linux-forensics.md. - Split archive reassembly from PCAP: Same-sized HTTP-transferred files with MD5-hash names are archive fragments; order by Apache directory listing timestamps, concatenate, extract password from TCP chat stream. See network.md.
- Video frame accumulation: Video with flashing images at various positions; composite all frames (per-pixel maximum) reveals hidden QR code or image. See stego-advanced-2.md.
- Reversed audio: Garbled audio that sounds like speech played backwards;
sox audio.wav reversed.wav reverse or Audacity Effect → Reverse reveals hidden message. See stego-advanced-2.md. - Multi-stream video container stego: MP4/MKV with multiple video streams; default stream is a red herring, flag in secondary stream.
ffprobe -hide_banner file.mp4 to enumerate, ffmpeg -i file.mp4 -map 0:1 -frames:v 1 flag.jpg to extract. See steganography.md. - FAT16 free space recovery: Flag hidden in unallocated clusters of FAT16 filesystem. Parse FAT table, enumerate free clusters (entry = 0x0000), read data region. See disk-recovery.md.
- FAT16 deleted file recovery (fls/icat): FAT deletion replaces first byte of directory entry with
0xE5 but data remains. fls -r -d image.img lists deleted entries, icat image.img <inode> recovers by inode. See disk-recovery.md. - Ext2 orphaned inode recovery: Deleted file leaves orphaned inode;
e2fsck -y disk.img reconnects to /lost+found. Also use debugfs lsdel or icat. See disk-recovery.md. - Linux inputevent keylogger parsing: 24-byte
struct input_event binary dump; filter type==1 (EVKEY), value==1 (press), map keycodes via input-event-codes.h. See signals-and-hardware.md. - VBA macro cell data to binary: Excel cells with numeric values; VBA
CByte((val-78)/3) transforms to ELF bytes. Reimplement in Python, never run the macro. See linux-forensics.md. - RGB parity steganography: Sum R+G+B per pixel; even=white, odd=black renders hidden binary bitmap. See stego-image.md.
- Hidden PDF objects: Unreferenced content stream objects not in
/Kids array. Add to /Kids, increment /Count, re-render. See network-advanced.md. - Arnold's Cat Map descrambling: Periodic chaotic transform on square images; iterate forward map until original reappears. Period divides
3*N. See stego-advanced-2.md. - Python in-memory source recovery: Attach
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. - HFS+ resource fork recovery: Hidden data in HFS+ Resource Forks invisible to
binwalk/foremost; use HFSExplorer + 010 Editor HFS template to extract extent records. See disk-advanced.md. - Serial UART from WAV audio: Square wave in audio encodes UART serial data; determine baud rate, parse start/stop bits, decode LSB-first byte frames. See signals-and-hardware.md.
- High-resolution SSTV demodulation: Standard SSTV decoders fail on high-sample-rate recordings; use manual FM demodulation via
arccos + differentiation. See stego-advanced-2.md. - Corrupted ZIP header repair: Fix filename length fields in both Local File Header (offset 26) and Central Directory (offset 28); fallback: brute-force raw deflate at candidate offsets. See disk-recovery.md.
- SQLite edit history reconstruction: Replay insert/remove diffs from SQLite diff table to reconstruct document at every intermediate state; flag may have been typed then deleted. See disk-advanced.md.
- MJPEG FFD9 trailing byte stego: Extra bytes after JPEG EOI marker (FFD9) in MJPEG frames create invisible covert channel; split on FFD8, extract post-FFD9 data. See stego-advanced-2.md.
- USB MIDI Launchpad grid reconstruction: MIDI Note On/Off in USB PCAP maps to 8x8 Launchpad grid (
key = row*16 + col); reconstruct visual patterns from button press sequences. See signals-and-hardware.md.
SMB RID Recycling via LSARPC (Midnight 2026)
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.
Timeroasting / MS-SNTP Hash Extraction (Midnight 2026)
Extract crackable HMAC-MD5 hashes from MS-SNTP responses by sending NTP requests with machine account RIDs. Crack with hashcat -m 31300.
CODEBLOCK12
See network-advanced.md for payload parsing script and full attack chain.
HTTP Exfiltration in PCAP
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.
Common Encodings
CODEBLOCK13
ROT18: ROT13 on letters + ROT5 on digits. Common final layer in multi-stage forensics. See linux-forensics.md for implementation.
CTF 取证与区块链
CTF取证挑战的快速参考。每种技术在此提供一行说明;完整细节请参见支持文件。
前置条件
Python包(所有平台):
bash
pip install volatility3 Pillow numpy matplotlib
Linux(apt):
bash
apt install binwalk foremost libimage-exiftool-perl tshark sleuthkit \
ffmpeg steghide testdisk john pcapfix
macOS(Homebrew):
bash
brew install binwalk exiftool wireshark sleuthkit ffmpeg \
testdisk john-jumbo
Ruby gems(所有平台):
bash
gem install zsteg
附加资源
- - 3d-printing.md - 3D打印取证(PrusaSlicer二进制G代码、QOIF、heatshrink)
- windows.md - Windows取证(注册表、SAM、事件日志、回收站、NTFS备用数据流、USN日志、PowerShell历史记录、Defender MPLog、WMI持久化、Amcache)
- network.md - 网络取证基础(tcpdump、TLS/SSL密钥日志解密、从coredump提取TLS主密钥、Wireshark、PCAP、端口扫描、SMB3解密、5G/NR协议、WordPress侦察、凭据、USB HID隐写、BCD编码、HTTP文件上传外泄、通过时间戳排序重组分卷压缩包)
- network-advanced.md - 高级网络取证(数据包间隔时间编码、USB HID鼠标/笔绘制恢复、NTLMv2哈希破解、TCP标志隐蔽信道、DNS最后一个字节隐写、DNS尾部字节二进制编码、带XOR+ZIP和mDNS密钥的多层PCAP、Brotli解压炸弹接缝分析、通过LSARPC的SMB RID回收、Timeroasting MS-SNTP哈希提取)
- disk-and-memory.md - 核心磁盘/内存取证(Volatility、磁盘挂载/文件雕刻、VM/OVA/VMDK、VMware快照、coredump、Windows KAPE分类、PowerShell勒索软件、Android取证、Docker容器取证、云存储取证、BSON重建、TrueCrypt/VeraCrypt挂载)
- disk-advanced.md - 高级磁盘和内存技术(已删除分区、ZFS取证、GPT GUID编码、VMDK稀疏解析、内存转储字符串雕刻、勒索软件密钥恢复、WordPerfect宏XOR、minidump ISO 9660恢复、APFS快照恢复、RAID 5 XOR恢复、HFS+资源分支恢复、SQLite编辑历史重建)
- disk-recovery.md - 磁盘恢复和提取模式(LUKS主密钥恢复、PRNG时间戳种子暴力破解、VBA宏二进制恢复、FemtoZip解压缩、XFS文件系统重建、tar重复条目提取、嵌套套娃文件系统提取、通过空字节交错的反雕刻、BTRFS子卷/快照恢复、FAT16空闲空间数据恢复、通过Sleuth Kit fls/icat的FAT16已删除文件恢复、通过fsck的ext2孤立inode恢复、损坏ZIP头部修复)
- steganography.md - 通用隐写术(二进制边框隐写、PDF多层隐写、SVG关键帧、PNG重排序、文件叠加、GIF帧差异摩尔斯码、GZSteg + spammimic、电子表格频率恢复、Kitty终端图形协议解码、ANSI转义序列隐写、自动立体图求解、两层字节+行交错、多流视频容器隐写、渐进式PNG分层XOR解密)
- stego-image.md - 图像特定隐写术(JPEG未使用DQT表LSB、BMP位平面QR提取、图像拼图重组、F5 JPEG DCT比率检测、PNG未使用调色板条目隐写、QR码瓦片重建、基于种子的像素置换+多bitplane QR、JPEG缩略图像素到文本映射、带像素过滤的条件LSB、JPEG松弛空间、最近邻插值隐写、RGB奇偶校验隐写)
- stego-advanced.md - 高级隐写术第1部分:音频和信号技术(FFT频域、DTMF音频、SSTV+LSB、DotCode条码、自定义频率双音键盘、多轨音频差分减法、跨通道多bit LSB、音频FFT音符、音频元数据八进制编码、嵌套tar空白编码、音频波形二进制编码、音频频谱图隐藏QR)
- stego-advanced-2.md - 高级隐写术第2部分:视频、图像变换和格式特定技术(视频帧累积、反向音频、视频帧平均、JPEG XL TOC置换隐写、Arnold猫映射去扰、高分辨率SSTV自定义FM解调、MJPEG FFD9尾部字节隐写、EXIF zlib + Stegano像素模式、PDF xref隐蔽信道、ANSI转义码隐写、逐像素ECB去重)
- linux-forensics.md - Linux/应用取证(日志分析、Docker镜像取证、攻击链、浏览器凭据、Firefox历史记录、TFTP、TLS弱RSA、USB音频、Git目录恢复、KeePass v4破解、Git reflog/fsck squash恢复、浏览器工件分析(Chrome/Chromium/Firefox历史记录、cookies、下载、本地存储、会话恢复)、通过字节暴力破解的损坏git blob修复、VBA宏Excel单元格数据到ELF二进制提取、通过pyrasite的Python内存中源码恢复)
- signals-and-hardware.md - 带解码代码的硬件信号解码(VGA帧解析、HDMI TMDS符号解码、DisplayPort 8b/10b + LFSR去扰器)、旅行者金唱片音频、Saleae Logic 2 UART解码、Flipper Zero .sub文件、侧信道功率分析(DPA)、键盘声学侧信道、CD音频光盘图像隐写(CIRC去交错+螺旋渲染)、Linux inputevent键盘记录器转储解析、来自WAV音频的串行UART、USB MIDI Launchpad网格重建
何时切换
- - 如果恢复了一个加密blob且难点变为RSA、AES或格问题,切换到/ctf-crypto。
- 如果证据确实指向恶意软件部署、信标配置提取或加壳样本,切换到/ctf-malware。
- 如果工件是Web应用备份或API转储且剩余问题是应用逻辑,切换到/ctf-web。
- 如果取证证据实际上是一个编码谜题、隐写技巧或深奥格式而非真正的取证,切换到/ctf-misc。
- 如果需要追踪基础设施、归因行为者或从取证发现中调查公共记录,切换到/ctf-osint。
- 如果恢复的工件是需要反汇编和分析的编译二进制或固件,切换到/ctf-reverse。
快速启动命令
bash
文件分析
file suspicious_file
exiftool suspicious_file # 元数据
binwalk suspicious_file # 嵌入文件
strings -n 8 suspicious_file
hexdump -C suspicious_file | head # 检查魔数
磁盘取证
sudo mount -o loop,ro image.dd /mnt/evidence
fls -r image.dd # 列出文件
photorec image.dd # 雕刻已删除文件
内存取证(Volatility 3)
vol3 -f memory.dmp windows.info
vol3 -f memory.dmp windows.pslist
vol3 -f memory.dmp windows.filescan
完整Volatility插件参考、VM取证和coredump分析请参见disk-and-memory.md。
日志分析
bash
grep -iE (flag|part|piece|fragment) server.log # Flag片段
grep FLAGPART server.log | sed s/.*FLAGPART: // | uniq | tr -d \n # 重建
sort logfile.log | uniq -c | sort -rn | head # 查找异常
Linux攻击链分析和Docker镜像取证请参见linux-forensics.md。
Windows事件日志(.evtx)
关键事件ID:
- - 1001 - 错误检查/重启
- 1102 - 审计日志已清除
- 4720 - 用户帐户已创建
- 4781 - 帐户已重命名
RDP会话ID(TerminalServices-LocalSessionManager):