ctf-malware

ctf-malware

热门

提供针对CTF挑战的恶意软件分析和网络流量技术。用于分析混淆脚本、恶意软件包、自定义加密协议、C2流量、PE/.NET二进制文件、RC4/AES加密通信、YARA规则、shellcode分析、恶意软件内存取证(Volatility malfind、进程注入检测)、反分析技术(VM/沙箱检测、定时规避、API哈希、进程注入、环境检查),或提取恶意软件配置和入侵指标。

2725Star
329Fork
更新于 2026/7/10
SKILL.md
readonly只读
name
ctf-malware
description

提供针对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:解码-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      # 快速分类
pe-sieve                 # 运行时分析
pestudio                 # 静态分析(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

沙箱规避检查

  • 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机器人证据恢复

  • 使用恶意软件源码中的机器人令牌调用getUpdatesgetFile API。参见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模拟(安全地钩住系统调用),或使用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