| name | ctf-forensics |
| description | 提供用于CTF挑战的数字取证和信号分析技术。适用于分析磁盘镜像、内存转储、事件日志、网络抓包、加密货币交易、隐写术、PDF分析、Windows注册表、Volatility、PCAP、Docker镜像、coredump、侧信道功率轨迹、DTMF音频频谱图、数据包时序分析、CD音频光盘镜像,或恢复已删除文件和凭据。 |
| license | MIT |
| compatibility | 需要基于文件系统的代理(Claude Code或类似工具),支持bash、Python 3,并具备工具安装的网络访问权限。 |
| allowed-tools | Bash Read Write Edit Glob Grep Task WebFetch WebSearch |
| metadata | {"user-invocable":"false"} |
CTF Forensics & Blockchain
CTF取证挑战快速参考。每种技术这里都有一行命令;完整细节请参见支持文件。
先决条件
Python包(所有平台):
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(所有平台):
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密钥日志解密,coredump中TLS主密钥提取,Wireshark,PCAP,端口扫描,SMB3解密,5G/NR协议,WordPress侦察,凭据,USB HID速记,BCD编码,HTTP文件上传外泄,基于时间戳排序的分卷归档重组)
- network-advanced.md - 高级网络取证(数据包间隔时序编码,NTLMv2哈希破解,TCP标志隐蔽信道,DNS末字节隐写,DNS尾字节二进制编码,多层PCAP与XOR+ZIP及mDNS密钥,Brotli解压炸弹缝隙分析,SMB RID回收通过LSARPC,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原始内存转储可视化检查,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+资源分支恢复,Kyoto Cabinet哈希数据库取证,SQLite编辑历史重构)
- disk-recovery.md - 磁盘恢复和提取模式(LUKS主密钥恢复,伪随机数生成器时间戳种子暴力破解,VBA宏二进制恢复,FemtoZip解压,XFS文件系统重构,tar重复条目提取,嵌套套娃文件系统提取,反雕刻通过空字节交错,BTRFS子卷/快照恢复,FAT16空闲空间数据恢复,FAT16已删除文件通过Sleuth Kit fls/icat恢复,ext2孤立inode通过fsck恢复,损坏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去重)
何时切换方向
- 如果你恢复了一个加密数据块,而难点变成了 RSA、AES 或格密码学,切换到
/ctf-crypto。
- 如果证据确实指向恶意软件的预备阶段、信标配置提取或打包样本,切换到
/ctf-malware。
- 如果工件是一个 Web 应用备份或 API 转储,剩下的问题是应用逻辑,切换到
/ctf-web。
- 如果取证证据实际上是编码谜题、隐写术技巧或晦涩格式,而非真正的取证,切换到
/ctf-misc。
- 如果你需要追踪基础设施、归因攻击者或从取证发现中调查公共记录,切换到
/ctf-osint。
- 如果恢复的工件是需要反汇编和分析的编译二进制文件或固件,切换到
/ctf-reverse。
快速启动命令
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
vol3 -f memory.dmp windows.info
vol3 -f memory.dmp windows.pslist
vol3 -f memory.dmp windows.filescan
完整的 Volatility 插件参考、虚拟机取证和核心转储分析见 disk-and-memory.md。
日志分析
grep -iE "(flag|part|piece|fragment)" server.log
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 - 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/资源管理器不可见。用 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
zsteg image.png
stegsolve
-
二值边界隐写: 1 像素边框的黑白像素顺时针编码比特
-
FFT 频域隐写: 图像数据隐藏在二维 FFT 幅度谱中;尝试 np.fft.fft2 可视化
-
DTMF 音频: 电话音调编码数据;用 multimon-ng -a DTMF 解码
-
多层 PDF: 检查隐藏注释、EOF 后数据、与关键词异或、ROT18 最终层
-
SSTV + LSB: SSTV 信号可能是干扰;用 stegolsb 检查音频样本的 2 位 LSB
-
SVG 关键帧: 动画的 keyTimes/values 属性通过填充色交替编码二进制/摩斯码
-
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 帧差分: 异或连续视频帧,揭示像素差异中的隐藏数据。详见 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)出现 flag
-
包间隔定时: 相同包有两种不同间隔(如 10ms/100ms)编码二进制;按接口过滤,计算包间差,阈值转比特
完整代码示例和解码流程见 steganography.md、stego-advanced.md 和 stego-advanced-2.md。
PDF 分析
exiftool document.pdf
pdftotext document.pdf -
strings document.pdf | grep -i flag
binwalk document.pdf
高级 PDF 隐写(Nullcon 2026 rdctd): 六种技术——不可见文本分隔符、带转义大括号的 URI 注释、模糊图像的 Wiener 反卷积、矢量矩形二维码、压缩对象流(mutool clean -d)、文档元数据字段。
完整 PDF 隐写技术和代码见 steganography.md。
磁盘 / 虚拟机 / 内存取证
sudo mount -o loop,ro image.dd /mnt/evidence
fls -r image.dd && photorec image.dd
tar -xvf machine.ova
7z x disk.vmdk -oextracted "Windows/System32/config/SAM" -r
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>
strings -a -n 6 memdump.bin | grep -E "FLAG|SSH_CLIENT|SESSION_KEY"
gdb -c core.dump
完整的 Volatility 插件参考、虚拟机取证和 VMware 快照请参见 disk-and-memory.md。删除分区恢复、ZFS 取证和勒索软件分析请参见 disk-advanced.md。
Windows 密码哈希
python -c "from impacket.examples.secretsdump import *; SAMHashes('SAM', LocalOperations('SYSTEM').getBootKey()).dump()"
有关 SAM 详细信息请参见 windows.md,有关从 PCAP 破解 NTLMv2 请参见 network-advanced.md。
比特币追踪
- 使用 mempool.space API:
https://mempool.space/api/tx/<TXID>
- 剥离链(Peel chain): 始终跟踪较大输出;整数金额通常表示剥离操作
不常见的文件魔数
| 魔数 | 格式 | 扩展名 | 说明 |
|---|
OggS | Ogg 容器 | .ogg | 音频/视频 |
RIFF | RIFF 容器 | .wav,.avi | 检查子格式 |
%PDF | PDF | .pdf | 检查元数据和嵌入对象 |
GCDE | PrusaSlicer 二进制 G-code | .g, .bgcode | 参见 3d-printing.md |
常见的 Flag 位置
- PDF 元数据字段(作者、标题、关键词)
- 图片 EXIF 数据
- 已删除文件(回收站
$R 文件)
- 注册表值
- 浏览器历史
- 日志文件碎片
- 内存字符串
WMI 持久化分析
模式(Backchimney): 恶意软件使用 WMI 事件订阅实现持久化(MITRE T1546.003)。
python PyWMIPersistenceFinder.py OBJECTS.DATA
- 查找带有 CommandLineEventConsumer 的 FilterToConsumerBindings
- 消费者命令中的 Base64 编码 PowerShell
- 事件过滤器触发系统事件(登录、定时器)
WMI 存储库分析详情请参见 windows.md。
网络取证快速参考
- TFTP netascii: 二进制传输会损坏;用
data.replace(b'\r\n', b'\n').replace(b'\r\x00', b'\r') 修复
- TLS keylog 解密: 将 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 包切换大写锁定 LED,时序编码摩尔斯码。详见 peripheral-capture.md。
SMB3 解密、凭证提取请参见 network.md,完整 TLS/TFTP/USB 工作流请参见 linux-forensics.md。
浏览器取证
- Chrome/Edge: 使用 DPAPI 主密钥解密
Login Data SQLite,AES-GCM 加密
- Firefox: 查询
places.sqlite -- SELECT url FROM moz_places WHERE url LIKE '%flag%'
完整浏览器凭证解密代码请参见 linux-forensics.md。
其他技术快速参考
- Docker 镜像取证: 配置 JSON 保留所有
RUN 命令,即使清理后仍然存在。tar xf app.tar 后检查配置 blob。详见 linux-forensics.md。
- Linux 攻击链: 检查
auth.log、.bash_history、最近的二进制文件、PCAP。详见 linux-forensics.md。
- RAID 5 XOR 恢复: 三盘 RAID 5 中两盘 → 字节异或恢复第三盘:
bytes(a ^ b for a, b in zip(disk1, disk3))。详见 disk-advanced.md。
- GIMP 原始内存转储可视化检查: Volatility 失败时,将
.dmp 以原始 RGB 数据打开,宽度约为显示器宽度(~1920);滚动查找用户桌面帧缓冲截图。详见 disk-and-memory.md。
- Kyoto Cabinet 哈希数据库取证: 通过插入顺序探针键并二进制差异比较,恢复零键的键排序,找出每个哈希槽被覆盖的键。详见 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(二进制 JSON)文档;使用 Python
bson 库解析。详见 disk-and-memory.md。
- TrueCrypt 挂载: 使用已知密码挂载 TrueCrypt/VeraCrypt 卷,命令 或 。详见 。
通过 LSARPC 的 SMB RID 重用(Midnight 2026)
通过分析带有连续 RID 的 LSARPC LsaLookupSids 调用,从 PCAP 中枚举 AD 账户,前提是经过 Guest 认证。过滤条件: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 进行破解。
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 字符串以及渗漏的文件(带有 flag 文本的图片)。详见 network.md。
常见编码
echo "base64string" | base64 -d
echo "hexstring" | xxd -r -p
ROT18: 对字母执行 ROT13,对数字执行 ROT5。多阶段取证中常见的最终编码层。实现方法请参见 linux-forensics.md。