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。
當日誌被清除時
如果攻擊者清除了事件紀錄,請使用以下替代來源:
- 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 # 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




