mcpField
C
ctf-forensics

ctf-forensics

github.com/ljagiello安全3.6k9.2k 次安装2 天前更新
代码仓库

关于 ctf-forensics

ctf-forensics 是用于解决数字取证类 CTF 挑战的速查技能,涵盖磁盘、内存、Windows、网络、硬件和隐写分析,并通过配套文件提供详细流程与命令。

主要功能

  1. 01磁盘、内存与虚拟机取证
  2. 02Windows 日志与痕迹分析
  3. 03网络及外围设备流量分析
  4. 04图像、音频与视频隐写
  5. 05参考命令与专项技术

适用场景

  1. 01从磁盘镜像中恢复已删除文件
  2. 02根据日志或数据包捕获重建活动
  3. 03查找媒体文件中的隐藏数据

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/ljagiello/ctf-skills --skill ctf-forensics

安装后在 Claude Code 中输入/ctf-forensics确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

3d-printing.md
disk-advanced.md
disk-and-memory.md
disk-recovery.md
linux-forensics.md
network-advanced.md
network.md
peripheral-capture.md
signals-and-hardware.md
steganography.md
stego-advanced-2.md
stego-advanced.md
stego-image.md
windows.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。

日志被清除时

如果攻击者清除了事件日志,请使用以下替代来源:

  1. USN 日志 ($J) - 文件操作时间线(MFT 引用、时间戳、原因)
  2. SAM 注册表 - 根据键的 last_modified 时间戳确定帐户创建情况
  3. PowerShell 历史记录 - ConsoleHost_history.txt(USN DATA_EXTEND = 命令时间)
  4. Defender MPLog - 包含威胁检测和 ASR 事件的独立日志
  5. Prefetch - 程序执行证据
  6. 用户配置文件创建时间 - 首次登录时间(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>
  • 剥离链: 务必跟踪金额较大的输出;整数金额通常表示剥离交易

不常见的文件魔数字节

魔数格式扩展名备注
OggSOgg 容器.ogg音频/视频
RIFFRIFF 容器.wav、.avi检查子格式
%PDFPDF.pdf检查元数据和嵌入对象
GCDEPrusaSlicer 二进制 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 Data SQLite 数据库
  • **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/keepass2john fork 或 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。

评论

支持 Markdown