--- name: ctf-malware description: 提供 CTF 挑战中恶意软件分析和网络流量技术。适用于分析混淆脚本、恶意包、自定义加密协议、C2 流量、PE/.NET 二进制文件、RC4/AES 加密通信、YARA 规则、Shellcode 分析、恶意软件内存取证(Volatility malfind、进程注入检测)、反分析技术(VM/沙箱检测、时间逃逸、API 哈希、进程注入、环境检查)或提取恶意软件配置和入侵指标。 license: MIT compatibility: 需要基于文件系统的 Agent(Claude Code 或类似工具),以及 bash、Python 3 和安装工具所需的网络访问。 allowed-tools: Bash Read Write Edit Glob Grep Task WebFetch WebSearch metadata: user-invocable: "false" --- # CTF 恶意软件与网络分析 恶意软件分析 CTF 挑战的快速参考。每个技术在此仅有一行摘要,详细代码请参阅支撑文件。 ## 前置条件 **Python 包(所有平台):** ```bash pip install yara-python pefile capstone oletools unicorn pycryptodome \ volatility3 dissect.cobaltstrike ``` **Linux(apt):** ```bash apt install strace ltrace tshark binwalk binutils ``` **macOS(Homebrew):** ```bash brew install wireshark binwalk binutils ghidra ``` **手动安装:** - dnSpy — [GitHub](https://github.com/dnSpy/dnSpy),.NET 反编译器(Windows) ## 附加资源 - [scripts-and-obfuscation.md](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-and-protocols.md) — C2 流量模式、自定义加密协议、RC4 WebSocket、基于 DNS 的 C2、网络指标、PCAP 分析、AES-CBC、加密识别、Telegram 机器人恢复、Poison Ivy RAT Camellia 解密 - [pe-and-dotnet.md](pe-and-dotnet.md) — PE 分析(peframe、pe-sieve、pestudio)、.NET 分析(dnSpy、AsmResolver)、LimeRAT 提取、沙箱逃逸、恶意软件配置提取、PyInstaller+PyArmor --- ## 何时切换方向 - 如果样本实际上只是普通的 crackme、加壳挑战二进制文件或没有恶意行为的自定义 VM,切换到 `/ctf-reverse`。 - 如果主要任务是网络重建、磁盘雕刻或主机痕迹恢复,切换到 `/ctf-forensics`。 - 如果挑战变成公开归因或基础设施追踪,切换到 `/ctf-osint`。 ## 快速入门命令 ```bash # 静态分析 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 blob 并用 `file` 分析。参见 [scripts-and-obfuscation.md](scripts-and-obfuscation.md)。 ## JavaScript 和 PowerShell 反混淆 - JS:将 `eval` 替换为 `console.log`,解码 `unescape()`、`atob()`、`String.fromCharCode()`。 - PowerShell:解码 `-enc` base64,将 `IEX` 替换为输出。参见 [scripts-and-obfuscation.md](scripts-and-obfuscation.md)。 ## 垃圾代码检测 - NOP 滑板、push/pop 对、死写入、跳转到下一条指令的无条件跳转。过滤以提取真实的 `call` 目标。参见 [scripts-and-obfuscation.md](scripts-and-obfuscation.md)。 ## PCAP 和网络分析 ```bash tshark -r file.pcap -Y "tcp.stream eq X" -T fields -e tcp.payload ``` 寻找异常端口上的 C2。使用 `strings | grep` 提取 IP/域名。参见 [c2-and-protocols.md](c2-and-protocols.md)。 ## 自定义加密协议 - 流密码为双向共享密钥流状态;按时间顺序拼接所有载荷。 - ChaCha20 密钥流提取:发送空字节(0 XOR 任何值 = 任何值)。参见 [c2-and-protocols.md](c2-and-protocols.md)。 ## C2 流量模式 - 信标、DGA、DNS 隧道、带自定义头的 HTTP(S)、编码载荷。参见 [c2-and-protocols.md](c2-and-protocols.md)。 ## RC4 加密 WebSocket C2 - 使用 `tcprewrite` 重映射端口,添加 RSA 密钥进行 TLS 解密,在二进制文件中查找 RC4 密钥。参见 [c2-and-protocols.md](c2-and-protocols.md)。 ## 识别加密算法 - AES:`0x637c777b` S 盒;ChaCha20:`expand 32-byte k`;TEA/XTEA:`0x9E3779B9`;RC4:顺序 S 盒初始化。参见 [c2-and-protocols.md](c2-and-protocols.md)。 ## 恶意软件中的 AES-CBC - 密钥 = 硬编码字符串的 MD5/SHA256;IV = 密文的前 16 字节。参见 [c2-and-protocols.md](c2-and-protocols.md)。 ## PE 分析 ```bash peframe malware.exe # 快速分类 pe-sieve # 运行时分析 pestudio # 静态分析(Windows) ``` 参见 [pe-and-dotnet.md](pe-and-dotnet.md)。 ## .NET 恶意软件分析 - 使用 dnSpy/ILSpy 反编译;AsmResolver 进行程序化分析。LimeRAT C2:AES-256-ECB,MD5 派生密钥。参见 [pe-and-dotnet.md](pe-and-dotnet.md)。 ## 恶意软件配置提取 - 检查 .data 节、PE/.NET 资源、注册表键、加密配置文件。参见 [pe-and-dotnet.md](pe-and-dotnet.md)。 ## 沙箱逃逸检查 - VM 检测、调试器检测、时间检查、环境检查、分析工具检测。参见 [pe-and-dotnet.md](pe-and-dotnet.md)。 ## 反分析技术 VM 检测(CPUID、MAC 前缀、注册表、磁盘大小)、时间逃逸(sleep/RDTSC 沙箱检测)、API 哈希(ROR13/DJB2/CRC32 + hashdb 查询)、进程注入(hollowing、APC、CreateRemoteThread)、环境检查。参见 [scripts-and-obfuscation.md](scripts-and-obfuscation.md#anti-analysis-techniques)。 ## 木马化插件分析 将恶意插件与官方发布版本进行 diff,查找 try/except 块中注入的代码。自定义字母表旋转(`C[(C.index(ch) - offset) % len(C)]`)解码 C2 域名,XOR 解码端点路径。参见 [scripts-and-obfuscation.md](scripts-and-obfuscation.md#trojanized-plugin-analysis-with-custom-alphabet-c2-decoding-inshack-2018)。 ## PyInstaller + PyArmor 脱壳 - `pyinstxtractor.py` 提取,PyArmor-Unpacker 处理保护代码。参见 [pe-and-dotnet.md](pe-and-dotnet.md)。 ## Telegram 机器人证据恢复 - 使用恶意软件源码中的机器人令牌调用 `getUpdates` 和 `getFile` API。参见 [c2-and-protocols.md](c2-and-protocols.md)。 ## Debian 包分析 ```bash ar -x package.deb && tar -xf control.tar.xz # 检查 postinst 脚本 ``` 参见 [scripts-and-obfuscation.md](scripts-and-obfuscation.md)。 ## YARA 恶意软件检测规则 编写 YARA 规则来匹配文件或内存转储中的字节模式、字符串和正则表达式。检测 XOR 循环(`{31 ?? 80 ?? ?? 4? 75}`)、base64 blob、编码的 PowerShell。使用 `yarac` 编译以加快扫描。参见 [scripts-and-obfuscation.md](scripts-and-obfuscation.md#yara-rules-for-malware-detection)。 ## Shellcode 分析 使用 `objdump -b binary -m i386:x86-64` 反汇编,使用 Unicorn Engine 模拟(安全地 hook 系统调用),或使用 Capstone 进行程序化反汇编。查找 XOR 解码桩。参见 [scripts-and-obfuscation.md](scripts-and-obfuscation.md#shellcode-analysis)。 ## 恶意软件内存取证 `vol3 windows.malfind` 检测注入代码(没有映射文件的 PAGE_EXECUTE_READWRITE)。`windows.pstree` 揭示可疑的父子关系。使用 `yarascan.YaraScan` 对内存进行 YARA 扫描。参见 [scripts-and-obfuscation.md](scripts-and-obfuscation.md#memory-forensics-for-malware)。 ## 网络指标快速参考 ```bash 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 ```