提供针对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、打包的挑战二进制文件或自定义虚拟机,没有恶意行为,请切换到
/ctf-reverse。 - 如果主要任务是网络重建、磁盘雕刻或主机痕迹恢复,请切换到
/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滑板、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密钥流提取:发送空字节(0 XOR 任何值 = 任何值)。参见c2-and-protocols.md。
C2流量模式
- 信标、DGA、DNS隧道、带自定义头部的HTTP(S)、编码载荷。参见c2-and-protocols.md。
RC4加密WebSocket C2
- 使用
tcprewrite重新映射端口,添加RSA密钥进行TLS解密,在二进制文件中找到RC4密钥。参见c2-and-protocols.md。
识别加密算法
- AES:
0x637c777bS盒;ChaCha20:expand 32-byte k;TEA/XTEA:0x9E3779B9;RC4:顺序S盒初始化。参见c2-and-protocols.md。
恶意软件中的AES-CBC
- 密钥 = 硬编码字符串的MD5/SHA256;IV = 密文的前16字节。参见c2-and-protocols.md。
PE分析
peframe malware.exe # 快速分类
pe-sieve # 运行时分析
pestudio # 静态分析(Windows)
.NET恶意软件分析
- 使用dnSpy/ILSpy进行反编译;AsmResolver用于程序化分析。LimeRAT C2:使用MD5派生密钥的AES-256-ECB。参见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机器人证据恢复
- 使用恶意软件源码中的机器人令牌调用
getUpdates和getFileAPI。参见c2-and-protocols.md。
Debian包分析
ar -x package.deb && tar -xf control.tar.xz # 检查postinst脚本
恶意软件检测的YARA规则
编写YARA规则以匹配文件或内存转储中的字节模式、字符串和正则表达式。检测XOR循环({31 ?? 80 ?? ?? 4? 75})、base64数据块、编码的PowerShell。使用yarac编译以加快扫描速度。参见scripts-and-obfuscation.md。
Shellcode分析
使用objdump -b binary -m i386:x86-64反汇编,使用Unicorn Engine模拟(安全地钩住系统调用),或使用Capstone进行程序化反汇编。查找XOR解码存根。参见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






