提供 CTF 挑戰中的惡意程式分析與網路流量技術。適用於分析混淆腳本、惡意套件、自訂加密協定、C2 流量、PE/.NET 二進位檔、RC4/AES 加密通訊、YARA 規則、shellcode 分析、記憶體取證(Volatility malfind、程序注入偵測)、反分析技術(VM/沙箱偵測、時間規避、API 雜湊、程序注入、環境檢查),或提取惡意程式配置與入侵指標。
CTF 惡意程式與網路分析
惡意程式分析 CTF 挑戰的快速參考。每個技術在此提供一行指令;詳細程式碼請參閱支援檔案。
前置需求
Python 套件(所有平台):
pip install yara-python pefile capstone oletools unicorn pycryptodome \
volatility3 dissect.cobaltstrike
Linux (apt):
apt install strace ltrace tshark binwalk binutils
macOS (Homebrew):
brew install wireshark binwalk binutils ghidra
手動安裝:
- dnSpy — GitHub,.NET 反編譯器(Windows)
其他資源
- scripts-and-obfuscation.md - JavaScript 反混淆、PowerShell 分析、eval/base64 解碼、垃圾程式碼偵測、十六進位酬載、Debian 套件分析、動態分析技術(strace/ltrace、網路監控、記憶體字串提取、自動化沙箱執行)、YARA 規則用於惡意程式偵測、shellcode 分析(Unicorn Engine、Capstone)、記憶體取證(Volatility 3 malfind、程序注入偵測)、反分析技術(VM 偵測、時間規避、API 雜湊、程序注入)、木馬化外掛分析與自訂字母 C2 解碼
- c2-and-protocols.md - C2 流量模式、自訂加密協定、RC4 WebSocket、DNS 型 C2、網路指標、PCAP 分析、AES-CBC、加密識別、Telegram 機器人復原、Poison Ivy RAT Camellia 解密
- pe-and-dotnet.md - PE 分析(peframe、pe-sieve、pestudio)、.NET 分析(dnSpy、AsmResolver)、LimeRAT 提取、沙箱規避、惡意程式配置提取、PyInstaller+PyArmor
何時切換
- 如果樣本其實只是普通的 crackme、加殼挑戰二進位檔或自訂 VM,且無惡意行為,請切換至
/ctf-reverse。 - 如果主要工作是網路重建、磁碟 carving 或主機遺留物復原,請切換至
/ctf-forensics。 - 如果挑戰轉為公開歸因或基礎設施追蹤,請切換至
/ctf-osint。
快速入門指令
# 靜態分析
file suspicious_file
strings -n 8 suspicious_file | head -50
xxd suspicious_file | head -20
# PE 分析
python3 -c "import pefile; pe=pefile.PE('mal.exe'); print(pe.dump_info())" | head
peframe mal.exe
# 動態分析(沙箱內!)
strace -f -s 200 ./suspicious 2>&1 | head -100
ltrace ./suspicious 2>&1 | head -50
# 網路指標
strings suspicious_file | grep -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'
strings suspicious_file | grep -iE 'http|ftp|ws://'
# YARA 掃描
yara -r rules.yar suspicious_file
混淆腳本
- 將
eval/bash替換為echo以輸出底層程式碼;提取 base64/hex 區塊並用file分析。詳見 scripts-and-obfuscation.md。
JavaScript 與 PowerShell 反混淆
- JS:將
eval替換為console.log,解碼unescape()、atob()、String.fromCharCode()。 - PowerShell:解碼
-encbase64,將IEX替換為輸出。詳見 scripts-and-obfuscation.md。
垃圾程式碼偵測
- NOP sled、push/pop 配對、無效寫入、無條件跳轉至下一指令。過濾以提取真實的
call目標。詳見 scripts-and-obfuscation.md。
PCAP 與網路分析
tshark -r file.pcap -Y "tcp.stream eq X" -T fields -e tcp.payload
在非標準連接埠上尋找 C2。使用 strings | grep 提取 IP/網域。詳見 c2-and-protocols.md。
自訂加密協定
- 串流加密器雙向共用金鑰串流狀態;按時間順序串接所有酬載。
- ChaCha20 金鑰串流提取:發送 null 位元組(0 XOR 任何值 = 任何值)。詳見 c2-and-protocols.md。
C2 流量模式
- Beaconing、DGA、DNS 隧道、HTTP(S) 搭配自訂標頭、編碼酬載。詳見 c2-and-protocols.md。
RC4 加密 WebSocket C2
- 使用
tcprewrite重新對應連接埠,加入 RSA 金鑰進行 TLS 解密,在二進位檔中尋找 RC4 金鑰。詳見 c2-and-protocols.md。
識別加密演算法
- AES:
0x637c777bS-box;ChaCha20:expand 32-byte k;TEA/XTEA:0x9E3779B9;RC4:循序 S-box 初始化。詳見 c2-and-protocols.md。
惡意程式中的 AES-CBC
- 金鑰 = 硬編碼字串的 MD5/SHA256;IV = 密文的前 16 個位元組。詳見 c2-and-protocols.md。
PE 分析
peframe malware.exe # 快速分類
pe-sieve # 執行時期分析
pestudio # 靜態分析(Windows)
詳見 pe-and-dotnet.md。
.NET 惡意程式分析
- 使用 dnSpy/ILSpy 進行反編譯;AsmResolver 進行程式化分析。LimeRAT C2:AES-256-ECB 搭配 MD5 衍生金鑰。詳見 pe-and-dotnet.md。
惡意程式配置提取
- 檢查 .data 區段、PE/.NET 資源、登錄機碼、加密設定檔。詳見 pe-and-dotnet.md。
沙箱規避檢查
- VM 偵測、除錯器偵測、時間檢查、環境檢查、分析工具偵測。詳見 pe-and-dotnet.md。
反分析技術
VM 偵測(CPUID、MAC 前綴、登錄檔、磁碟大小)、時間規避(sleep/RDTSC 沙箱偵測)、API 雜湊(ROR13/DJB2/CRC32 + hashdb 查詢)、程序注入(hollowing、APC、CreateRemoteThread)、環境檢查。詳見 scripts-and-obfuscation.md。
木馬化外掛分析
將惡意外掛與官方版本比對,找出 try/except 區塊中的注入程式碼。自訂字母旋轉(C[(C.index(ch) - offset) % len(C)])解碼 C2 網域,XOR 解碼端點路徑。詳見 scripts-and-obfuscation.md。
PyInstaller + PyArmor 解包
- 使用
pyinstxtractor.py提取,PyArmor-Unpacker 用於受保護程式碼。詳見 pe-and-dotnet.md。
Telegram 機器人證據復原
- 使用惡意程式原始碼中的機器人 token 呼叫
getUpdates和getFileAPI。詳見 c2-and-protocols.md。
Debian 套件分析
ar -x package.deb && tar -xf control.tar.xz # 檢查 postinst 腳本
詳見 scripts-and-obfuscation.md。
YARA 規則用於惡意程式偵測
撰寫 YARA 規則以比對檔案或記憶體傾印中的位元組模式、字串和正規表示式。偵測 XOR 迴圈({31 ?? 80 ?? ?? 4? 75})、base64 區塊、編碼 PowerShell。使用 yarac 編譯以加快掃描速度。詳見 scripts-and-obfuscation.md。
Shellcode 分析
使用 objdump -b binary -m i386:x86-64 反組譯,使用 Unicorn Engine 模擬(安全地 hook 系統呼叫),或使用 Capstone 進行程式化反組譯。尋找 XOR 解碼器 stub。詳見 scripts-and-obfuscation.md。
記憶體取證用於惡意程式
vol3 windows.malfind 偵測注入的程式碼(PAGE_EXECUTE_READWRITE 且無對應檔案)。windows.pstree 揭示可疑的父子關係。使用 yarascan.YaraScan 對記憶體進行 YARA 掃描。詳見 scripts-and-obfuscation.md。
網路指標快速參考
strings malware | grep -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'
tshark -r capture.pcap -Y "dns.qry.name" -T fields -e dns.qry.name | sort -u




