ctf-forensics

ctf-forensics

熱門

提供用於 CTF 競賽的數位鑑識與訊號分析技術。適用於分析磁碟映像檔、記憶體傾印(memory dumps)、事件紀錄、網路封包擷取、加密貨幣交易、隱寫術、PDF 分析、Windows 登錄檔、Volatility、PCAP、Docker 映像檔、核心傾印(coredumps)、旁路功耗軌跡(side-channel power traces)、DTMF 音訊頻譜圖、封包時間分析、CD 音訊光碟映像檔,或復原已刪除的檔案與憑證。

2725星標
329分支
更新於 2026/7/10
SKILL.md
唯讀
名稱
ctf-forensics
描述

提供用於 CTF 競賽的數位鑑識與訊號分析技術。適用於分析磁碟映像檔、記憶體傾印(memory dumps)、事件紀錄、網路封包擷取、加密貨幣交易、隱寫術、PDF 分析、Windows 登錄檔、Volatility、PCAP、Docker 映像檔、核心傾印(coredumps)、旁路功耗軌跡(side-channel power traces)、DTMF 音訊頻譜圖、封包時間分析、CD 音訊光碟映像檔,或復原已刪除的檔案與憑證。

CTF 數位鑑識與區塊鏈

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、heatshrink)
  • windows.md - Windows 鑑識(登錄檔、SAM、事件紀錄、資源回收桶、NTFS 替代資料流、USN 日誌、PowerShell 歷史紀錄、Defender MPLog、WMI 持續性、Amcache)
  • network.md - 網路鑑識基礎(tcpdump、TLS/SSL Keylog 解密、從 coredump 擷取 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、磁碟掛載/檔案雕刻 carving、虛擬機器/OVA/VMDK、VMware 快照、GIMP 原始記憶體傾印視覺化檢視、核心傾印 coredumps、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 code)
  • stego-image.md - 影像專用隱寫術(JPEG 未使用 DQT 表 LSB、BMP 位元面 QR 碼擷取、影像拼圖重組、F5 JPEG DCT 比率偵測、PNG 未使用調色盤項目隱寫、QR 碼圖磚重構、基於種子的像素置換 + 多位元面 QR、JPEG 縮圖像素轉文字對映、帶像素過濾的條件式 LSB、JPEG Slack Space、最近鄰內插隱寫術、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、下載紀錄、區域儲存、分頁恢復)、透過位元組暴力破解修復損毀的 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 去交錯 + 螺旋繪製)、影片中大寫鎖定 LED 摩斯密碼、Linux input_event 側錄程式傾印剖析、來自 WAV 音訊的序列 UART、USB MIDI Launchpad 網格重構)

何時切換方向

  • 如果你復原了加密資料(encrypted blob),而後續難點轉為 RSA、AES 或格基密碼學(lattice),請切換至 /ctf-crypto
  • 如果跡證指向惡意程式中繼佈署(malware staging)、信標(beacon)組態擷取或加殼範例,請切換至 /ctf-malware
  • 如果數位跡證是 Web 應用程式備份或 API 傾印檔,且剩餘問題屬於應用程式邏輯,請切換至 /ctf-web
  • 如果鑑識跡證本質上是編碼謎題、隱寫術技巧或冷門格式,而非真正鑑識,請切換至 /ctf-misc
  • 如果你需要根據鑑識結果追蹤基礎設施、進行威脅來源歸因(attribution)或調查公開紀錄,請切換至 /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            # 雕刻已刪除檔案

# 記憶體鑑識 (Volatility 3)
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     # Flag 碎片
grep "FLAGPART" server.log | sed 's/.*FLAGPART: //' | uniq | tr -d '\n'  # 重構 Flag
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

當日誌被清除時

如果攻擊者清除了事件紀錄,請使用以下替代來源:

  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
zsteg image.png              # PNG/BMP 分析
stegsolve                    # 視覺化分析
  • 二進位邊框隱寫: 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 屬性透過填滿色彩交替來編碼二進位/摩斯密碼
  • 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](stego-image.md#avi-frame-differential-pixel