Loading...
Loading...
Use when analyzing suspected malware through static, dynamic, and behavioral techniques, including IOC extraction, YARA or Sigma rules, sandboxing, and anti-analysis behavior.
npx skill4agent add zhaoxuya520/reverse-skill malware-analysisNOW../field-journal/precedent-reverse.mdNOWNEXT../tool-index.mdNEXTACTYARA / Sigma / Sandbox / IOC Extraction / Anti-Anti-Analysis | Static + Dynamic + Behavioral Combined Analysis
# 快速静态检测
file sample.exe # 文件类型
strings sample.exe | grep -i "http\|cmd\|powershell\|base64" # 快速 IOCs
rabin2 -zz sample.exe # 字符串提取 + 交叉引用
floss sample.exe # 去混淆字符串提取(FireEye)
# PE 头部分析
pecheck sample.exe # PE 结构验证
pescan sample.exe # 异常检测(节表、入口点)
diec sample.exe # Detect It Easy(壳/编译器识别)
# Hash 查询
sha256sum sample.exe
# → VirusTotal / MalwareBazaar / Triage 查询Triage MUST 清单(Issue #65):
□ 文件类型:EXE / DLL / SYS / .NET / 其他
□ 架构 x86/x64/ARM;查壳(DIE 等)与编译语言线索
□ DLL/SYS:导入表与导出表并列检查(见 Phase 2 硬门)
□ .NET:无传统 IAT → 走 dnSpy/IL/元数据等价锚点(见 Phase 2)□ 无壳 / .NET → 跳到 Phase 2
□ 有壳:尝试脱壳(授权隔离环境)→ 尝试修复 IAT
- x86:ImportREC(或等价);x64:Scylla(或等价)。禁止 64 位死磕 ImportREC
□ 【IAT 修复铁律】优先自动/半自动修复;若工具报错或修复后无法运行:
- 立即终止继续静态 IAT 修复
- MUST 记录 E-iat-repair-fail(命令、工具、现象)
- 转入 Phase 3 动态:API 断点(如 bp CreateFile)/ 硬件断点 / 内存搜索抓取导入
- 这不算跳过导入表:路径已尝试并记 Evidence
□ 【补丁 6】脱壳+修 IAT 后闪退/蓝屏(疑 CRC/大小自校验):
- 放弃继续静态修文件;记 E-self-check-crash 或并入 E-iat-repair-fail
- 转 Phase 3:对 CreateFile / GetFileSize / 哈希相关 API 下断
□ 用户指令可行性(§0.5):加壳时用户抢跑「先别脱壳先看导入表」→ 说明阻塞 + 请确认;强制则记 quality=unreadable/packed,禁止冒充完成有意义 IAT
□ 用户要求重做「IAT 修复 / 导入表检查」:MUST 重做被点名步骤(或经确认的前提协商结果),禁止换无关步骤冒充反汇编/反编译:
□ IDA Pro / Ghidra: 深度反编译
□ radare2: CLI 快速分析
□ x64dbg: Windows GUI 调试器
重点分析区域:
□ 入口点(Entry Point)→ 初始化逻辑
□ 导入表 → API 用途推断(CreateRemoteThread=注入, CryptEncrypt=勒索)
**MUST(硬门)**:执行 rabin2 -i / IDA imports / pecheck 等价命令,将导入表分类摘要写入 Evidence(E-imports)后才能进入 Phase 3(除非已记 E-iat-repair-fail 并走动态旁路,见 Phase 1b)
分类至少覆盖:网络 / 文件 / 加密 / 进程注入 / 注册表 / 其他可疑 API
解析失败或表为空:仍 MUST 记录失败输出,禁止静默跳过
**DLL/SYS**:MUST 并列记录导出表 Evidence(E-exports,`rabin2 -E` 或等价)
**.NET**:无传统 IAT 时 MUST 用 dnSpy/IL/元数据/程序集引用与敏感 API 摘要作为等价锚点,写入 E-imports / E-triage-imports 语义槽
**干净导入表**:仅基础 DLL、几乎无业务 API → MUST 注明动态加载嫌疑(LoadLibrary/GetProcAddress),SHOULD 转入 Phase 3 抓内存 API
用户要求「重做导入表检查」:MUST 重做本项(阻塞时先走可行性门闩协商),禁止改换其他步骤冒充完成
**高危 API 组合(补丁 8)**:表过长时优先输出恶意组合簇(如 FindWindow+WriteProcessMemory+CreateRemoteThread),过滤纯系统基础调用噪声
□ 资源段 → 嵌入 Payload(.rsrc 节)
□ 字符串表 → URL/C2/文件路径/Base64 blob
□ TLS 回调 → 调试器启动前执行自动化沙箱:
□ Joe Sandbox / ANY.RUN / Triage: 商业沙箱
□ CAPE Sandbox: 开源 + YARA 集成(推荐)
□ ASD Azul: 开源恶意软件分析平台(2026 新发布)
□ Cuckoo Sandbox: 经典开源(逐步被 CAPE 取代)
调试起手式(补丁 7+10 · MUST 顺序,用户态调试器):
□ ① TLS 回调断点 → ② 入口点 EP 断点 → ③ 敏感 API 断点 → ④ ExitProcess/退出路径保底断点
□ ExitProcess 触发时:不急着重启;立即 dump memory,路径写入 Evidence(补丁 10)
监控重点:
□ 进程创建: CreateProcess / ShellExecute
□ 文件操作: WriteFile → 勒索? DeleteFile → Wiper?
□ 注册表: Run/RunOnce 持久化
□ 网络: HTTP/DNS → C2 通信
□ 内存: VirtualAllocEx → 进程注入
□ 服务: CreateService → 持久化
□ IAT 修复失败 / 自校验闪退样本:敏感 API + CreateFile/GetFileSize 断点 / 硬件执行断点 / 内存搜索
无行为应急分支(MUST):
□ 沙箱无行为、秒退或无限休眠 → 检查反调试/反虚拟机(CPUID、计时、环境特征)
□ 尝试硬件断点绕过、补丁检测点、或换物理机/更高保真环境
□ 将「无行为 + 条件」写入 Evidence;禁止无条件写成「样本无害」
时间盒(补丁 9 · SHOULD 默认,可覆盖):
□ 静态深挖约 15 分钟无关键路径 → 强制转入本 Phase 动态
□ 动态单步约 200 条指令无恶意线索 → 强制回静态字符串/交叉引用重锚// 规则结构
rule MalwareFamily_Example {
meta:
description = "检测 Example 恶意软件家族"
author = "分析者"
date = "2026-05"
severity = "high"
hash = "d41d8cd98f00b204e9800998ecf8427e"
mitre_id = "T1055" // Process Injection
strings:
// 字符串匹配
$str1 = "C2_SERVER_URL" ascii wide
$str2 = "payload.dat" ascii
// 十六进制匹配
$hex1 = { 8B 45 ?? 50 FF 15 [4] 85 C0 }
// 操作码序列: mov eax, [ebp-?]; push eax; call [import]; test eax, eax
// 正则匹配
$re1 = /https?:\/\/[a-z0-9.-]+\/[a-z]{3,8}\.php/ ascii
condition:
// 组合条件
uint16(0) == 0x5A4D and // MZ 头
filesize < 500KB and
(2 of ($str*) or $hex1)
}# 行为检测规则
title: Suspicious Process Injection via CreateRemoteThread
id: 5a3d2c1b-1234-5678-9abc-def012345678
status: experimental
description: 检测使用 CreateRemoteThread 的进程注入行为
author: 分析者
date: 2026/05/25
tags:
- attack.t1055 # Process Injection
- attack.t1055.001 # DLL Injection
logsource:
category: process_creation
product: windows
detection:
selection:
Image|endswith: '\powershell.exe'
CommandLine|contains:
- 'CreateRemoteThread'
- 'VirtualAllocEx'
- 'WriteProcessMemory'
condition: selection
falsepositives:
- 合法的调试工具
level: highIOC 类型分类:
□ 网络 IOC:
- IP: C2 地址(注意时效性)
- Domain: DGA 算法生成的域名(rsnkfda.com, xpqmje.net)
- URL: Payload 托管地址
- User-Agent: 自定义 UA 字符串
□ 主机 IOC:
- 文件路径: %APPDATA%\Microsoft\Crypto\RSA\*.dat
- 注册表: HKCU\Software\Microsoft\Windows\CurrentVersion\Run\
- Mutex: Global\{GUID} 互斥体名称
- 服务名: 伪装成系统服务的名称
□ 行为 IOC:
- MITRE ATT&CK 技术 ID (T1055, T1003, T1571...)
- Sigma 规则 → SIEM 集成
- YARA 规则 → 端点检测
□ 静态 IOC:
- 编译时间戳(可伪造)
- PDB 路径(含开发者信息)
- 节名异常(非标准 .text/.data)
- 导入表异常组合(如勒索软件 CryptEncrypt + DeleteShadowCopies)| Technique | Detection Method | YARA Signature |
|---|---|---|
| Virtual Machine Detection | WMI Win32_BIOS/VideoController/Processor | |
| Sandbox Detection | Disk < 60GB, RAM < 2GB, Single-core CPU | GlobalMemoryStatusEx call pattern |
| Debugger Detection | IsDebuggerPresent, CheckRemoteDebuggerPresent | PEB.BeingDebugged offset access |
| Timed Escape | Sleep(300000) before executing malicious behavior | NtDelayExecution long parameter |
| Geolocation Detection | Check keyboard layout/timezone → Exclude CIS countries | GetKeyboardLayoutList call |
| Parent Process Detection | explorer.exe vs cmd.exe | Process name string comparison |
| Direct API Syscall | Bypass EDR hook | Syscall instruction + SSN parsing |
┌─────────────────────────────────────────────────┐
│ Hive Director │
│ (Claude Opus 编排 + 仲裁) │
└──────┬──────┬──────┬──────┬──────┬───────┘
│ │ │ │ │
┌───┘ ┌───┘ ┌───┘ ┌───┘ ┌───┘
▼ ▼ ▼ ▼ ▼ ▼
Triage RE Behav Intel Detect Remed
快速 反编译 行为 威胁 规则 修复
分诊 静态 动态 情报 YARA 方案
Sigma| Tool | Purpose | Acquisition |
|---|---|---|
| Ghidra / IDA Pro | In-depth decompilation | ghidra-sre.org |
| CAPE Sandbox | Open-source malware sandbox | GitHub: kevoreilly/CAPEv2 |
| ASD Azul | Large-scale automated analysis | GitHub: ASD |
| YARA | Pattern matching rule engine | |
| Sigma | SIEM behavior detection rules | GitHub: SigmaHQ/sigma |
| FLOSS | Deobfuscated string extraction | |
| Detect It Easy | Packer/compiler detection | GitHub: horsicq/Detect-It-Easy |
| pe-sieve | Process memory scanning | GitHub: hasherezade/pe-sieve |
| VirusTotal API | Multi-engine scanning | virustotal.com |
| MalwareBazaar | Malware sample library | bazaar.abuse.ch |
references/yara-sigma-rules.mdreferences/sandbox-orchestration.mdreferences/anti-analysis-techniques.md../reverse-engineering/references/re-agent-workflow.mdtool-index