mcpField
C
ctf-malware

ctf-malware

github.com/ljagiello安全3.6k8.8k 次安装2 天前更新
代码仓库

关于 ctf-malware

ctf-malware 是面向恶意软件分析类 CTF 题目的速查技能,供分析脚本、二进制文件、内存和网络捕获数据的参赛者使用,并提供详细笔记及可选 MCP 服务参考。

主要功能

  1. 01脚本反混淆技巧
  2. 02PE 与 .NET 恶意软件分析
  3. 03C2 协议与 PCAP 分析
  4. 04YARA 规则和 Shellcode 分析
  5. 05内存取证指南

适用场景

  1. 01解码混淆的 JavaScript 或 PowerShell
  2. 02从二进制文件提取恶意软件配置
  3. 03调查数据包捕获中的 C2 流量

MCP 相关

README 将 IDA Pro MCP、Ghidra MCP、WinDbg MCP 和 JADX MCP 列为可选工具,分别用于解包、配置提取、动态调试和 Android 恶意软件分析。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/ljagiello/ctf-skills --skill ctf-malware

安装后在 Claude Code 中输入/ctf-malware确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

c2-and-protocols.md
pe-and-dotnet.md
scripts-and-obfuscation.md
tools-mcp.md

详细介绍

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)

MCP 服务(可选): IDA Pro MCP / Ghidra MCP(脱壳、配置提取)、用于动态分析的 WinDbg MCP(svnscha/mcp-windbg)、用于 Android 的 JADX MCP — 参阅 tools-mcp.md。仅在隔离、一次性使用的 VM 中运行恶意软件。

其他资源

  • 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、加密 ID、Telegram Bot 恢复、Poison Ivy RAT Camellia 解密
  • pe-and-dotnet.md - PE 分析(peframe、pe-sieve、pestudio)、.NET 分析(dnSpy、AsmResolver)、LimeRAT 提取、沙箱规避、恶意软件配置提取、PyInstaller+PyArmor
  • tools-mcp.md - 恶意软件分析的 MCP 服务集成:用于脱壳和配置/解密器提取的 IDA/Ghidra MCP、用于动态调试的 WinDbg MCP(RWX 区域搜索、内存中的 C2 字符串、实时 VirtualAlloc/CreateRemoteThread 断点、使用 .writemem 转储载荷以跳过加壳程序)、用于 Android 恶意软件的 JADX MCP — 以伪代码为先,并附有隔离 VM 安全提示

何时切换方向

  • 如果样本实际上只是普通的 crackme、加壳挑战二进制文件,或没有恶意软件行为的自定义 VM,请切换到 /ctf-reverse。
  • 如果主要任务是网络重建、磁盘雕刻或主机痕迹恢复,请切换到 /ctf-forensics。
  • 如果挑战转为公开归因或基础设施追踪,请切换到 /ctf-osint。

快速入门命令

# Static analysis
file suspicious_file
strings -n 8 suspicious_file | head -50
xxd suspicious_file | head -20

# PE analysis
python3 -c "import pefile; pe=pefile.PE('mal.exe'); print(pe.dump_info())" | head
peframe mal.exe

# Dynamic analysis (sandboxed!)
strace -f -s 200 ./suspicious 2>&1 | head -100
ltrace ./suspicious 2>&1 | head -50

# Network indicators
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 scan
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:解码 -enc base64,将 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:0x637c777b S 盒;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      # Quick triage
pe-sieve                 # Runtime analysis
pestudio                 # Static analysis (Windows)

参见 pe-and-dotnet.md。

.NET 恶意软件分析

  • 使用 dnSpy/ILSpy 进行反编译;使用 AsmResolver 进行程序化分析。LimeRAT C2:使用 MD5 派生密钥的 AES-256-ECB。参见 pe-and-dotnet.md。

恶意软件配置提取

  • 检查 .data 节、PE/.NET 资源、注册表项和加密配置文件。参见 pe-and-dotnet.md。

沙箱规避检查

  • 虚拟机检测、调试器检测、计时检查、环境检查、分析工具检测。参见 pe-and-dotnet.md。

反分析技术

虚拟机检测(CPUID、MAC 前缀、注册表、磁盘大小)、计时规避(sleep/RDTSC 沙箱检测)、API 哈希(ROR13/DJB2/CRC32 + hashdb 查询)、进程注入(进程空洞化、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 Bot 证据恢复

  • 使用恶意软件源代码中的 bot token 调用 getUpdates 和 getFile API。参见 c2-and-protocols.md。

Debian 软件包分析

ar -x package.deb && tar -xf control.tar.xz  # Check postinst scripts

参见 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 进行模拟(安全地挂钩系统调用),或使用 Capstone 进行程序化反汇编。留意 XOR 解码桩代码。参见 scripts-and-obfuscation.md。

恶意软件内存取证

vol windows.malfind 可检测注入的代码(没有映射文件的 PAGE_EXECUTE_READWRITE)。windows.pstree 可揭示可疑的父子进程关系。使用 windows.vadyarascan.VadYaraScan 扫描内存中的 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

评论

支持 Markdown