关于 ctf-forensics
ctf-forensics 是用于解决数字取证类 CTF 挑战的速查技能,涵盖磁盘、内存、Windows、网络、硬件和隐写分析,并通过配套文件提供详细流程与命令。
主要功能
- 01磁盘、内存与虚拟机取证
- 02Windows 日志与痕迹分析
- 03网络及外围设备流量分析
- 04图像、音频与视频隐写
- 05参考命令与专项技术
适用场景
- 01从磁盘镜像中恢复已删除文件
- 02根据日志或数据包捕获重建活动
- 03查找媒体文件中的隐藏数据
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ ljagiello/ ctf-skills --skill ctf-forensics安装后在 Claude Code 中输入/ctf-forensics确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
3d-printing.mddisk-advanced.mddisk-and-memory.mddisk-recovery.mdlinux-forensics.mdnetwork-advanced.mdnetwork.mdperipheral-capture.mdsignals-and-hardware.mdsteganography.mdstego-advanced-2.mdstego-advanced.mdstego-image.mdwindows.md详细介绍
CTF 取证与区块链
取证 CTF 挑战速查。此处为每种技巧提供一句说明;完整详情请参阅辅助文件。
前置条件
Python 包(所有平台):
pip install volatility3 Pillow numpy matplotlib scipy librosa scikit-learn opencv-python-headless pymongo impacket brotli exrex stegano heatshrink2
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(所有平台):
gem install zsteg
其他资源
- 3d-printing.md - 3D 打印取证(PrusaSlicer 二进制 G-code、QOIF、热缩管)
- windows.md - Windows 取证(注册表、SAM、事件日志、回收站、NTFS 替代数据流、USN 日志、PowerShell 历史记录、Defender MPLog、WMI 持久化、Amcache)
- network.md - 网络取证基础(tcpdump、TLS/SSL 密钥日志解密、从核心转储中提取 TLS 主密钥、Wireshark、PCAP、端口扫描、SMB3 解密、5G/NR 协议、WordPress 侦察、凭据、USB HID 速记、BCD 编码、HTTP 文件上传外传、通过时间戳排序重组分卷压缩包)
- network-advanced.md - 高级网络取证(数据包间隔时序编码、破解 NTLMv2 哈希、TCP 标志隐蔽信道、DNS 末字节隐写、DNS 尾随字节二进制编码、使用 XOR + ZIP 和 mDNS 密钥的多层 PCAP、Brotli 解压缩炸弹接缝分析、通过 LSARPC 回收 SMB RID、Timeroasting MS-SNTP 哈希提取、dnscat2 重组、破解 RADIUS 共享密钥、RC4 流识别、ICMP 负载字节轮转、ICMP ping 延时隐蔽信道)
- peripheral-capture.md - USB/HID/蓝牙外设流量重建(恢复 USB HID 鼠标/笔绘图、解码 USB HID 键盘捕获数据、通过 USB 键盘 LED 摩斯电码外传、跟踪 USB HID 键盘方向键导航、重组蓝牙 RFCOMM 数据包)
- disk-and-memory.md - 核心磁盘/内存取证(Volatility、磁盘挂载/雕刻、VM/OVA/VMDK、VMware 快照、GIMP 原始内存转储可视化检查、核心转储、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+ 资源分叉恢复、Kyoto Cabinet 哈希数据库取证、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 解密、从曲面反射重建 QR 码)
- stego-image.md - 图像专用隐写术(JPEG 未使用的 DQT 表 LSB、BMP 位平面 QR 提取、图像谜题重组、F5 JPEG DCT 比率检测、PNG 未使用调色板条目隐写、QR 码块重建、基于种子的像素置换 + 多位平面 QR、JPEG 缩略图像素到文本映射、带像素筛选的条件 LSB、JPEG 松弛空间、最近邻插值隐写、RGB 奇偶隐写)
- stego-advanced.md - 高级隐写术第 1 部分:音频和信号技术(FFT 频域、DTMF 音频、SSTV+LSB、DotCode 条码、自定义频率双音键盘、多轨音频差分相减、跨声道多位 LSB、音频 FFT 音符、音频元数据八进制编码、嵌套 tar 空白字符编码、通过密码破解实现 DeepSound 音频隐写、音频波形二进制编码、音频频谱图隐藏 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 压缩提交恢复、浏览器痕迹分析(Chrome/Chromium/Firefox 历史记录、Cookie、下载、local storage、会话恢复)、通过字节暴力破解修复损坏的 Git blob、将 VBA 宏 Excel 单元格数据提取为 ELF 二进制、通过 pyrasite 恢复 Python 内存中源代码)
- signals-and-hardware.md - 使用 decode code 解码硬件信号(VGA 帧解析、HDMI TMDS 符号解码、DisplayPort 8b/10b + LFSR 解扰器)、Voyager Golden Record 音频、Saleae Logic 2 UART 解码、Flipper Zero .sub 文件、侧信道功耗分析(DPA)、键盘声学侧信道、CD 音频光盘映像隐写(CIRC 去交错 + 螺旋渲染)、从视频中提取大写锁定 LED 摩斯电码、Linux input_event 键盘记录器转储解析、从 WAV 音频中提取串行 UART、USB MIDI Launchpad 网格重建
何时切换方向
- 如果你恢复了一个加密数据块,而难点变成了 RSA、AES 或格密码学,请切换到
/ctf-crypto。 - 如果证据确实指向恶意软件暂存、信标配置提取或加壳样本,请切换到
/ctf-malware。 - 如果该工件是 Web 应用备份或 API 转储,而剩下的问题是应用程序逻辑,请切换到
/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)
vol -f memory.dmp windows.info
vol -f memory.dmp windows.pslist
vol -f memory.dmp windows.filescan
如需完整的 Volatility 插件参考、虚拟机取证和核心转储分析,请参阅 disk-and-memory.md。
日志分析
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
如需了解 Linux 攻击链分析和 Docker 镜像取证,请参阅 linux-forensics.md。
Windows 事件日志(.evtx)
关键事件 ID:
- 1001 - Bugcheck/重启
- 1102 - 审计日志已清除
- 4720 - 用户帐户已创建
- 4781 - 帐户已重命名
RDP 会话 ID(TerminalServices-LocalSessionManager):
- 21 - 会话登录成功
- 24 - 会话已断开
- 1149 - RDP 身份验证成功(RemoteConnectionManager,包含源 IP)
import Evtx.Evtx as evtx
with evtx.Evtx("Security.evtx") as log:
for record in log.records():
print(record.xml())
如需完整的事件 ID 表、注册表分析、SAM 解析、USN 日志和反取证检测,请参阅 windows.md。
- **NTFS 备用数据流(ADS):**通过命名的 NTFS 流附加到文件的隐藏数据。无法通过
dir/Explorer 查看。使用fls -r image.dd | grep ":"检测,使用icat提取。请参阅 windows.md。
日志被清除时
如果攻击者清除了事件日志,请使用以下替代来源:
- USN 日志 ($J) - 文件操作时间线(MFT 引用、时间戳、原因)
- SAM 注册表 - 根据键的 last_modified 时间戳确定帐户创建情况
- PowerShell 历史记录 - ConsoleHost_history.txt(USN DATA_EXTEND = 命令时间)
- Defender MPLog - 包含威胁检测和 ASR 事件的独立日志
- Prefetch - 程序执行证据
- 用户配置文件创建时间 - 首次登录时间(USN 日志中的配置文件目录)
如需详细的解析代码和反取证检测清单,请参阅 windows.md。
隐写术
steghide extract -sf image.jpg -p ""
zsteg image.png # PNG/BMP analysis
stegsolve # Visual analysis
-
二值边框隐写: 图像 1px 边框中的黑白像素按顺时针方向编码比特
-
FFT 频域: 图像数据隐藏在 2D FFT 幅度频谱中;尝试使用
np.fft.fft2进行可视化 -
DTMF 音频: 编码数据的电话音;使用
multimon-ng -a DTMF解码 -
多层 PDF: 检查隐藏注释、EOF 后的数据、与关键词进行 XOR 运算,以及最后一层的 ROT18
-
SSTV + LSB: SSTV 信号可能是烟雾弹;使用
stegolsb检查音频样本的 2-bit LSB -
SVG 关键帧: 动画的
keyTimes/values属性通过填充颜色交替编码二进制数据/Morse 电码 -
PNG 块重排: 修正块顺序:IHDR → 辅助块 → IDAT(按顺序)→ IEND
-
文件覆盖层: 检查 IEND 之后是否有追加的归档文件,其魔数可能已被覆盖
-
APNG 帧提取: 动态 PNG 包含多个帧;使用
apngdis提取,或解析fdAT/fcTL块。参见 steganography.md。 -
PNG 高度/CRC 操纵: 修改 IHDR 高度字段,并暴力枚举直到 CRC 匹配,从而显示隐藏行。参见 steganography.md。
-
像素坐标链隐写: 遍历链表,其中 R=数据字节,G/B=下一个像素的坐标。参见 stego-image.md。
-
AVI 帧差分: 对连续视频帧进行 XOR 运算,从像素差异中揭示隐藏数据。参见 stego-image.md。
-
自定义频率 DTMF: 非标准双音频率;先生成频谱图(
ffmpeg -i audio -lavfi showspectrumpic),将自定义网格映射到键盘数字,再解码变长 ASCII -
JPEG DQT LSB: 未使用的量化表(ID 2、3)携带 LSB 编码数据;通过
Image.open().quantization访问,并从 64 个值中逐个提取第 0 位 -
多音轨音频相减: MKV/视频中包含两条几乎相同的音轨;
sox -m a0.wav "|sox a1.wav -p vol -1" diff.wav可抵消共有内容,差分信号的频谱图中会出现标记(5-12 kHz 频段) -
数据包间隔计时: 间隔值不同的相同数据包(例如 10ms/100ms)编码二进制数据;按接口筛选,计算数据包间隔,并通过阈值转换为比特
完整代码示例和解码工作流请参见 steganography.md、stego-advanced.md 和 stego-advanced-2.md。
PDF 分析
exiftool document.pdf # Metadata (often hides flags!)
pdftotext document.pdf - # Extract text
strings document.pdf | grep -i flag
binwalk document.pdf # Embedded files
高级 PDF 隐写(Nullcon 2026 rdctd): 六种技术——不可见文本分隔符、带转义花括号的 URI 注释、对模糊图像进行 Wiener 反卷积、矢量矩形 QR 码、压缩对象流(mutool clean -d)、文档元数据字段。
完整的 PDF 隐写技术和代码请参见 steganography.md。
磁盘 / VM / 内存取证
# 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)
vol -f memory.dmp windows.pslist
vol -f memory.dmp windows.cmdline
vol -f memory.dmp windows.netscan
vol -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"
完整的 Volatility 插件参考、VM 取证和 VMware 快照请参见 disk-and-memory.md。已删除分区恢复、ZFS 取证和勒索软件分析请参见 disk-advanced.md。
Windows 密码哈希
# Extract with impacket, crack with hashcat -m 1000
python -c "from impacket.examples.secretsdump import *; SAMHashes('SAM', LocalOperations('SYSTEM').getBootKey()).dump()"
SAM 详情请参见 windows.md,从 PCAP 破解 NTLMv2 请参见 network-advanced.md。
Bitcoin 追踪
- 使用 mempool.space API:
https://mempool.space/api/tx/<TXID> - 剥离链: 务必跟踪金额较大的输出;整数金额通常表示剥离交易
不常见的文件魔数字节
| 魔数 | 格式 | 扩展名 | 备注 |
|---|---|---|---|
OggS | Ogg 容器 | .ogg | 音频/视频 |
RIFF | RIFF 容器 | .wav、.avi | 检查子格式 |
%PDF | .pdf | 检查元数据和嵌入对象 | |
GCDE | PrusaSlicer 二进制 G-code | .g、.bgcode | 参见 3d-printing.md |
常见标记位置
- PDF 元数据字段(作者、标题、关键词)
- 图像 EXIF 数据
- 已删除的文件(回收站
$R文件) - 注册表值
- 浏览器历史记录
- 日志文件片段
- 内存字符串
WMI 持久化分析
**模式(Backchimney):**恶意软件利用 WMI 事件订阅实现持久化(MITRE T1546.003)。
# Tool: https://github.com/davidpany/WMI_Forensics (run against a copy of OBJECTS.DATA)
python WMI_Forensics/PyWMIPersistenceFinder.py OBJECTS.DATA
- 查找包含 CommandLineEventConsumer 的 FilterToConsumerBindings
- Consumer 命令中的 Base64 编码 PowerShell
- 由系统事件(登录、计时器)触发的事件筛选器
有关 WMI 存储库(OBJECTS.DATA)的位置及相关反取证痕迹,请参阅 windows.md。
网络取证速查
- **TFTP netascii:**二进制传输会损坏;使用
data.replace(b'\r\n', b'\n').replace(b'\r\x00', b'\r')修复 - **TLS 密钥日志解密:**将 SSLKEYLOGFILE 或 RSA 私钥导入 Wireshark(编辑 → 首选项 → 协议 → TLS)
- **TLS 弱 RSA:**提取证书、分解模数,使用
rsatool生成私钥,再添加到 Wireshark - **USB 音频:**使用
tshark -e usb.iso.data提取等时数据,并在 Audacity 中作为原始 PCM 导入 - **从 PCAP 提取 NTLMv2:**从 NTLMSSP_AUTH 提取服务器质询、NTProofStr 和 blob,然后进行暴力破解
- WPA/WEP WiFi 解密:
aircrack-ng -w wordlist capture.pcap可破解 WPA 握手;WEP 在 IV 足够时可破解。请参阅 network.md。 - PCAP 修复:
pcapfix -d corrupted.pcap可修复损坏的 PCAP 标头/校验和,使其能够在 Wireshark 中加载。请参阅 network.md。 - **USB HID 键盘解码:**从 USB 捕获中提取 8 字节 HID 报告;字节 2 = 键码,字节 0 = 修饰键(Shift)。请参阅 peripheral-capture.md。
- **dnscat2 重组:**解码十六进制/Base32 子域标签,去除 9 字节 dnscat2 标头,删除重复传输,并重组载荷。请参阅 network-advanced.md。
- **通过 USB 键盘 LED 外传数据:**主机到设备的 HID SET_REPORT 数据包会切换 Caps Lock LED。时序编码为摩斯电码。请参阅 peripheral-capture.md。
有关 SMB3 解密、凭据提取,请参阅 network.md;有关完整的 TLS/TFTP/USB 工作流,请参阅 linux-forensics.md。
浏览器取证
- **Chrome/Edge:**使用 DPAPI 主密钥,通过 AES-GCM 解密
Login DataSQLite 数据库 - **Firefox:**查询
places.sqlite--SELECT url FROM moz_places WHERE url LIKE '%flag%'
有关完整的浏览器凭据解密代码,请参阅 linux-forensics.md。
其他技术速查
- Docker 镜像取证: Config JSON 会保留所有
RUN命令,即使清理后也是如此。运行tar xf app.tar,然后检查 config blob。参见 linux-forensics.md。 - Linux 攻击链: 检查
auth.log、.bash_history、近期二进制文件和 PCAP。参见 linux-forensics.md。 - RAID 5 XOR 恢复: 3 盘 RAID 5 中的两块磁盘 → 逐字节 XOR 以恢复第三块磁盘:
bytes(a ^ b for a, b in zip(disk1, disk3))。参见 disk-advanced.md。 - 使用 GIMP 目视检查原始内存转储: Volatility 失效时,在 GIMP 中以原始 RGB 数据格式打开
.dmp,宽度设为显示器宽度(约 1920);滚动查找用户桌面的帧缓冲区截图。参见 disk-and-memory.md。 - Kyoto Cabinet 哈希数据库取证: 对键值已清零的 KC 哈希数据库,依次插入探测键并进行二进制差分,找出每个键覆盖的哈希槽,从而恢复键的顺序。参见 disk-advanced.md。
- PowerShell 勒索软件: 从 minidump 中提取脚本,找出 AES 密钥,解密 SMTP 附件。参见 disk-and-memory.md。
- Linux 勒索软件与内存转储: 如果 Volatility 不可靠,可通过扫描原始内存中的候选值并验证魔数来恢复 AES 密钥;重新干净地提取 zip,以免漏掉文件或产生假阴性。参见 disk-advanced.md。
- 已删除分区: 使用
testdisk或kpartx -av。参见 disk-advanced.md。 - ZFS 取证: 重建标签、Fletcher4 校验和,并破解 PBKDF2。参见 disk-advanced.md。
- BSON 重建: 从原始字节中重组 BSON(Binary JSON)文档;使用 Python 库
bson进行解析。参见 disk-and-memory.md。 - 挂载 TrueCrypt: 使用已知密码,通过
veracrypt --mount或cryptsetup open --type tcrypt挂载 TrueCrypt/VeraCrypt 卷。参见 disk-and-memory.md。 - 硬件信号: VGA/HDMI TMDS/DisplayPort、Voyager 音频、Saleae UART 解码、Flipper Zero。参见 signals-and-hardware.md。
- 从视频中提取 Caps Lock LED 摩斯电码: 使用 OpenCV 跟踪监控摄像头各帧中 Caps Lock LED 的像素;亮灭时长编码为摩斯电码(短=点,长=划)。参见 signals-and-hardware.md。
- I2C 协议解码: 解码 I2C 总线捕获数据(SDA/SCL 线路),提取 EEPROM 或传感器通信中的数据。参见 signals-and-hardware.md。
- 穿孔卡 OCR: 根据标准编码网格,将孔位映射到字符,以解码 IBM-29 穿孔卡图像。参见 signals-and-hardware.md。
- USB HID 鼠标绘图: 按绘图模式将相对 HID 移动渲染为位图;分离不同模式,跳过提笔操作,并放大 5-8 倍。参见 peripheral-capture.md。
- 侧信道功耗分析: 多维功耗迹线(位置 × 猜测值 × 迹线 × 样本)。对迹线取平均,找到方差最大的样本,再选取泄漏点功耗最大的猜测值。参见 signals-and-hardware.md。
- 数据包间隔计时: PCAP 中的数据以数据包间隔时长编码。两个间隔值对应两个比特值。参见 network-advanced.md。
- BMP 位平面 QR 码: 使用 NumPy 提取每个 RGB 通道的位平面 0-2;隐藏的 QR 码通常位于位平面 1(而非位平面 0)。参见 stego-image.md。
- 图像拼图重组: 比较拼块边缘的像素差异以匹配边缘,再贪心地将拼块放入网格。参见 stego-image.md。
- 使用密码破解 DeepSound 音频隐写: 使用
deepsound2john.py提取哈希,用 John 破解,再从 WAV 中取回隐藏文件;务必同时检查频谱图和 DeepSound。参见 stego-advanced.md。 - 从弯曲反射中重建 QR 码: 手动从视频中的玻璃球反射重建 QR 码;翻转并去畸变,使用已知明文前缀修正前几个字节,高 ECC 可纠正其余部分。参见 steganography.md。
- 音频 FFT 音符: 主导频率 → 音符名称(A-G)可拼出单词。参见 stego-advanced.md。
- 音频元数据八进制: Exiftool 注释中以下划线分隔的八进制数 → 解码为 ASCII/base64。参见 stego-advanced.md。
- G-code 可视化: 侧面投影(XZ/YZ)可显示文字。参见 3d-printing.md。
- Git 目录恢复: 使用
gitdumper.sh获取暴露的.git目录。参见 linux-forensics.md。 - 破解 KeePass v4: 标准
keepass2john不支持 v4/Argon2;可使用ivanmrsulja/keepass2johnfork 或keepass4brute。使用cewl生成字典。参见 linux-forensics.md。 - 跨通道多位 LSB: RGB 通道使用不同的位位置(R[0]、G[1]、B[2])编码隐藏数据。参见 stego-advanced.md。
- F5 JPEG DCT 检测: 使用 F5 时,AC 系数中 ±1 与 ±2 的比例会从约 3:1 降至约 1:1;稀疏图像需要辅以 ±2/±3 指标。参见 stego-image.md。
- PNG 未使用调色板隐写: 未被像素引用的 PLTE 条目会在红色通道值中携带隐藏数据。参见 stego-image.md。
- 键盘声学侧信道: 从按键音频提取 MFCC 特征,并使用 KNN 对照带标签的参考数据进行分类。10ms 窗口可捕获撞击瞬态。参见 signals-and-hardware.md。
- TCP 标志位隐蔽信道: 6 个 TCP 标志位(FIN/SYN/RST/PSH/ACK/URG)= 值 0-63,可编码 base64 字符。在一致的目标端口上出现不合常理的标志位组合,可能表示隐蔽数据。参见 network-advanced.md。
- Brotli 解压炸弹接缝: 压缩炸弹包含重复数据块;标志位会在某个接缝处打破模式。比较相邻数据块以找到不连续处,仅解压该区域。参见 network-advanced.md。
- Git reflog/fsck squash 恢复:
git rebase --squash会留下孤立对象,可通过git fsck --unreachable --no-reflogs恢复。参见 linux-forensics.md。 - DNS 尾随字节二进制数据: 附加在 DNS 问题结构后的额外字节(
0x30/0x31)编码二进制位;按 MSB 优先方式分组成 8 位数据块 → ASCII。参见 network-advanced.md。 - 伪造 TLS + mDNS 密钥 + 可打印字符合并: 伪装成 TLS 的 TCP 流中隐藏着 ZIP;XOR 密钥来自 mDNS TXT 记录;从两个解密后的数组中选取可打印字符并合并。参见 network-advanced.md。
- 基于种子的像素置换隐写: 使用已知种子确定性地打乱像素(Fisher-Yates)+ 从 Y 通道进行多位平面交错 LSB 提取 → 隐藏的 QR 码。参见 stego-image.md。
- BTRFS 快照恢复: 已删除文件仍会保留在 BTRFS 快照/备用子卷中。使用
mount -o subvol=@backup访问历史副本。参见 disk-recovery.md。 - JPEG XL TOC 置换: JXL 的渐进式 TOC 置换控制部分解码时的图块收敛顺序。逐步增加截断偏移,测量哪些图块最先收敛 → 收敛顺序编码了 flag。参见 stego-advanced-2.md。
- Kitty 终端图形:
ESC_G协议会在 base64 数据块中嵌入 zlib 压缩的 RGB 图像数据。移除转义序列、拼接数据、解压并重建图像。参见 steganography.md。 - ANSI 转义序列隐写: flag 文本交错隐藏在 ANSI 颜色代码和 Braille 字符之间。渲染后不可见;移除转义序列和非 ASCII 字符即可提取。参见 steganography.md。
- 自立体图求解: 复制图层,使用差值混合,并水平移动约 100px,以显现隐藏的 3D 文字。参见 steganography.md。
- 双层字节与行交错: 两个文件先按字节交错,再按扫描行交错。先分离偶数/奇数字节(可得到有效图像),再分离偶数/奇数行。参见 steganography.md。
- SMB RID 回收: 使用 Guest 身份验证,通过 LSARPC
LsaLookupSids配合递增的 RID,可从 PCAP 中枚举 AD 账户。参见 network-advanced.md。 - Timeroasting(MS-SNTP): 使用计算机 RID 发送 NTP 请求,从 DC 提取 HMAC-MD5 哈希;使用 hashcat -m 31300 破解。参见 network-advanced.md。
- Android 取证: 使用
adb pull提取 APK,使用apktool分析,并检查/data/data/<package>/中的shared_prefs/和 SQLite 数据库。参见 disk-and-memory.md。 - Docker 容器取证:
docker save会导出分层 tar;已删除文件仍会保留在早期层中。docker history --no-trunc可揭示构建密钥。参见 disk-and-memory.md。 - 云存储取证: S3/GCP/Azure 版本控制会保留已删除的对象。
list-object-versions可恢复已删除的 flag。参见 disk-and-memory.md。 - APFS 快照恢复: 写时复制文件系统会在快照中保留历史文件状态;使用不同的 XID 块偏移,通过
icat读取跨事务 ID 的 inode。参见 disk-advanced.md。 - Windows KAPE 分类分析: 预先收集的工件 ZIP;从 PowerShell 历史记录开始,然后检查 Amcache → MFT → 注册表配置单元。参见 disk-and-memory.md。
- WordPerfect 宏 XOR:
.wcm文件包含嵌入加密数据的宏;XOR 公式(a+b)-2*(a&b)= 按位 XOR。参见 disk-advanced.md。 - 从核心转储提取 TLS 主密钥: 在核心转储中搜索会话 ID(从 Wireshark 握手中获取);将其前面的 48 字节作为主密钥。创建 Wireshark 预主密钥日志文件。参见 network.md。
- 损坏 Git blob 修复: 单字节损坏会改变 SHA-1;穷举每个字节位置(256 × 文件大小),并使用
git hash-object验证。参见 linux-forensics.md。 - 从 PCAP 重组分卷压缩包: 通过 HTTP 传输的同尺寸文件,其 MD5 哈希名称表明它们是压缩包分片;根据 Apache 目录列表的时间戳排序并拼接,再从 TCP 聊天流中提取密码。参见 network.md。
- 视频帧累积: 视频中会在不同位置闪现图像;合成所有帧(逐像素取最大值)即可揭示隐藏的 QR 码或图像。参见 stego-advanced-2.md。
- 反向音频: 听起来像语音但杂乱的音频,可能是反向播放的语音;使用
sox audio.wav reversed.wav reverse或 Audacity 的“效果” → “反向”可揭示隐藏消息。参见 stego-advanced-2.md。 - 多视频流容器隐写: MP4/MKV 中包含多个视频流;默认流是烟雾弹,flag 位于辅助流中。使用
ffprobe -hide_banner file.mp4枚举视频流,再使用ffmpeg -i file.mp4 -map 0:1 -frames:v 1 flag.jpg提取。参见 steganography.md。 - FAT16 空闲空间恢复: flag 隐藏在 FAT16 文件系统的未分配簇中。解析 FAT 表,枚举空闲簇(条目 = 0x0000),读取数据区域。参见 disk-recovery.md。
- FAT16 已删除文件恢复(fls/icat): FAT 删除操作会将目录条目的首字节替换为
0xE5,但数据仍然保留。fls -r -d image.img会列出已删除条目,icat image.img <inode>可按 inode 恢复文件。参见 disk-recovery.md。 - Ext2 孤立 inode 恢复: 已删除文件会留下孤立 inode;
e2fsck -y disk.img可将其重新连接到/lost+found。也可使用debugfs的lsdel或icat。参见 disk-recovery.md。 - Linux input_event 键盘记录解析: 24 字节的
struct input_event二进制转储;筛选type==1(EV_KEY)、value==1(按下),并通过input-event-codes.h映射键码。参见 signals-and-hardware.md。 - 将 VBA 宏单元格数据转换为二进制: Excel 单元格中包含数值;VBA
CByte((val-78)/3)会将其转换为 ELF 字节。在 Python 中重新实现,切勿运行该宏。参见 linux-forensics.md。 - RGB 奇偶校验隐写: 对每个像素的 R+G+B 求和;偶数=白色,奇数=黑色,可渲染出隐藏的二进制位图。参见 stego-image.md。
- 隐藏的 PDF 对象: 未被
/Kids数组引用的内容流对象。将其添加到/Kids,增加/Count,然后重新渲染。参见 network-advanced.md。 - Arnold Cat Map 图像解扰: 作用于方形图像的周期性混沌变换;迭代正向映射,直到原图重新出现。周期是
GL(2, Z_N)中矩阵的阶。参见 stego-advanced-2.md。 - 恢复 Python 内存中的源代码: 将
pyrasite-shell附加到正在运行的 Python 进程,使用uncompyle6.main.decompile(Python <=3.8)或pycdc(Python 3.9+)反编译__code__对象,并转储globals()以查找机密信息。参见 linux-forensics.md。 - HFS+ 资源分支恢复: HFS+ 资源分支中的隐藏数据对
binwalk/foremost不可见;使用 HFSExplorer + 010 Editor HFS 模板提取 extent 记录。参见 disk-advanced.md。 - 从 WAV 音频解码串行 UART: 音频中的方波编码了 UART 串行数据;确定波特率,解析起始位/停止位,解码 LSB 优先的字节帧。参见 signals-and-hardware.md。
- 高分辨率 SSTV 解调: 标准 SSTV 解码器无法处理高采样率录音;使用
arccos+ 求导进行手动 FM 解调。参见 stego-advanced-2.md。 - 损坏 ZIP 标头修复: 修复本地文件头(偏移 26)和中央目录(偏移 28)中的文件名长度字段;备用方法:在候选偏移处穷举原始 deflate 数据。参见 disk-recovery.md。
- SQLite 编辑历史重建: 重放 SQLite 差异表中的插入/移除差异,以重建文档每个中间状态;flag 可能曾被输入后又删除。参见 disk-advanced.md。
- MJPEG FFD9 尾随字节隐写: MJPEG 帧中 JPEG EOI 标记(FFD9)后的额外字节会形成不可见的隐蔽信道;按 FFD8 分割,提取 FFD9 后的数据。参见 stego-advanced-2.md。
- USB MIDI Launchpad 网格重建: USB PCAP 中的 MIDI Note On/Off 映射到 8x8 Launchpad 网格(
key = row*16 + col);根据按钮按下序列重建视觉图案。参见 signals-and-hardware.md。
通过 LSARPC 回收 SMB RID(Midnight 2026)
分析 PCAP 中 Guest 身份验证后的 LSARPC LsaLookupSids 调用,查找连续的 RID,以枚举 AD 账户。筛选条件:dcerpc.cn_bind_to_str contains lsarpc。
完整的 RPC 调用序列和 Wireshark 筛选器请参阅 network-advanced.md。
Timeroasting / MS-SNTP 哈希提取(Midnight 2026)
向带有机器账户 RID 的 NTP 请求发送请求,从 MS-SNTP 响应中提取可破解的 HMAC-MD5 哈希。使用 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
负载解析脚本和完整攻击链请参阅 network-advanced.md。
PCAP 中的 HTTP 数据外传
快速方法: tshark --export-objects http,/tmp/objects 可立即提取上传的文件。检查 multipart POST 上传、不寻常的 User-Agent 字符串以及外传文件(包含标记文本的图像)。请参阅 network.md。
常见编码
echo "base64string" | base64 -d
echo "hexstring" | xxd -r -p
# ROT13: tr 'A-Za-z' 'N-ZA-Mn-za-m'
ROT18: 对字母使用 ROT13,对数字使用 ROT5。常见于多阶段取证的最后一层。实现方法请参阅 linux-forensics.md。