恶意行为分析
SkillFiles & storageLets your agent analyze suspicious software behavior like persistence, injection, and file changes, mapped to ATT&CK.
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; ahel provides instructions and does not run this skill.
Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
Then ask your AI: use the 恶意行为分析 skill
About this skill
Malicious behavior analysis: persistence, injection, process trees, files/registry, ATT&CK mapping. Trigger words: behavior analysis, persistence, registry, process injection, what is it doing
What this skill tells your AI
The instructions your AI receives, as published by dslsdzc/rev-skills in .claude/skills/re-behavior/SKILL.md and read by ahel’s review.
何时使用 / 何时不用
- 用:判定样本"在干什么"——运行后的进程/文件/注册表/网络行为;识别持久化与注入;ATT&CK 战术映射
- 用:动态分析的证据收集环节(与 [[re-tracing]] 互补)
- 不用:样本还没在沙箱里跑过(先 [[re-sandbox]]——动态执行是强制前置,见 [[re-analyze/platform-tips]] 最高原则)
- 不用:只需静态结论(走 [[re-triage]] / [[re-binary-core]] 域);只需内存内容(走 [[re-memdump]])
工具准备
本技能分析的是沙箱运行产物——运行环境先由 [[re-sandbox]] 建立(默认沙箱最高原则,见 [[re-analyze/platform-tips]])。
沙箱产物(运行环境前置)
- 由 [[re-sandbox]] 建立:VM 快照 / 容器 / firejail + 网络隔离(INetSim / fake DNS / 断网)
- 产物包括:行为日志、进程快照、INetSim 网络记录、内存转储([[re-memdump]])
- 验证: 沙箱内样本已按 [[re-sandbox]] 步骤跑完并产出日志
procmon / Process Monitor(Windows 行为记录主力)
- Windows: Microsoft Sysinternals ——
choco install sysinternals,或微软官网下载 Procmon64.exe - Linux/macOS: 不适用(用 sysdig / bpftrace;函数级记录见 [[re-tracing]])
- 验证: 管理员运行 Procmon64.exe,出现捕获窗口并能记录事件
- 附加: Process Explorer(同套件)看进程树与句柄
sysdig(Linux 系统行为追踪)
- Linux:
apt install sysdig/dnf install sysdig/pacman -S sysdig - macOS/Windows: 不支持(Linux 专用);WSL 内可用 Linux 版(需 root)
- 验证:
sysdig --version;sysdig -c topprocs_cpu能输出 - 常用:
sysdig proc.name=target -w out.scap录制,事后sysdig -r out.scap回放
bpftrace(Linux 内核级追踪,低开销)
- Linux:
apt install bpftrace/dnf install bpftrace/pacman -S bpftrace - 需要内核 BTF/追踪支持;macOS/Windows 不支持
- 验证:
bpftrace --version;sudo bpftrace -e 'tracepoint:syscalls:sys_enter_execve { print(comm) }'能打印 - 用途: 文件写、进程启动、网络连接等高频事件,比用户态监控轻量
MITRE ATT&CK 导航
- 无需安装: 浏览器开 https://attack.mitre.org/matrices/enterprise/ 或 Navigator(https://mitre-attack.github.io/attack-navigator/)
- 本地部署(可选):
git clone https://github.com/mitre-attack/attack-navigator,静态页面直接打开 - 验证: 页面能按战术/技术检索
Windows/Linux 内置命令(持久化/网络检查,零安装)
- Windows:
reg query、sc query、schtasks /query /fo csv、netstat -ano、Get-CimInstance Win32_StartupCommand - Linux:
ps -ef --forest、ss -tnp、cat /etc/crontab、systemctl list-unit-files --state=enabled - 验证: 各命令能正常输出
操作步骤
按顺序执行,每步记下结果并保存证据(路径 + sha256)。
-
进程树与注入识别:
- Windows(沙箱内 procmon 录制中跑样本): 过滤 Process Name = 样本,用 Process Explorer 的 Tree 视图看进程树——子进程、落盘后新起的进程(dropper → payload 两段)
- 注入特征序列(procmon / sysdig 过滤 API):
- DLL 注入: OpenProcess → VirtualAllocEx → WriteProcessMemory → CreateRemoteThread(目标进程被写 + 新线程)
- 进程空洞: CreateProcess(SUSPENDED) → NtUnmapViewOfSection → WriteProcessMemory → SetThreadContext → ResumeThread
- APC 注入: OpenThread → QueueUserAPC → ResumeThread
- Linux:
sysdig proc.name=target看 execve/clone 序列;ps -ef --forest看进程树 - 结论记录:注入目标、注入手法、被注入进程 PID
-
持久化清单(计划任务/WMI 常被忽略,见坑 3):
- Windows:
WMI 持久化(隐藏最深):reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" sc query state= all schtasks /query /fo csvGet-CimInstance -Namespace root\subscription -ClassName __EventConsumer(ActiveScriptEventConsumer / CommandLineEventConsumer 是恶意常见点) - Linux:
cat /etc/crontab、ls /etc/cron.d /etc/cron.daily、systemctl list-unit-files --state=enabled、/etc/rc.local、/etc/profile.d/*、~/.bashrc - 逐项记录:位置、命令/路径、是否与样本相关
- Windows:
-
文件与注册表操作:
- Windows: procmon 过滤 Operation = CreateFile / WriteFile / RegSetValue / RegCreateKey,进程 = 样本;重点看 %APPDATA%、%TEMP%、%ProgramData%、Startup 文件夹
- Linux:
sysdig -c spy_file proc.name=target(文件读写);函数级调用用 [[re-tracing]] 的 strace 补 - 记录的每项都算潜在 IOC(配置落地路径、下载的文件)——供 [[re-ioc]] 使用
-
网络连接与 C2 特征:
- Windows:
netstat -ano对照 procmon 网络事件;沙箱 DNS 已指向 INetSim([[re-sandbox]] 步骤 2)——INetSim 日志里的 DNS 查询就是 C2 域名的直接证据 - Linux:
ss -tnp、sysdig fd.type=ipv4 proc.name=target - C2 特征清单:非常规端口(>1024 或 443/53 伪装)、周期心跳(固定间隔短连接)、DNS 隧道(长随机子域名)、异常 User-Agent、HTTPS 到未知 IP 且证书不匹配
- 发现 C2 → 流量细节转 [[re-protocol]]([[re-netcap]] / [[re-proto-rev]] / [[re-crypto-id]] / [[re-crypto-keys]] / [[re-crypto-decrypt]])
- Windows:
-
ATT&CK 战术映射:
- 把步骤 1-4 的行为按 ATT&CK 战术归类:初始访问、执行、持久化(T1547 / T1053 / T1543)、防御规避(T1055 注入)、命令与控制(T1071 / T1568)…
- 每个行为写「行为 → 战术:技术 (ATT&CK ID) → 证据路径」一行,汇总成映射表进报告(供 [[re-ioc]] 报告结构使用)
行为监控工具链(Windows)
Windows 侧行为采集四件套:ProcMon(全系统文件/注册表/网络/进程)、API Monitor(API 级 hook)、ETW(内核侧事件)、Process Explorer(实时进程视图)。前二者为用户态采集,ETW 在内核侧;本节是采集侧视角,与 [[re-evasion]] 的绕过侧互补。除注明外均为仅 Windows 工具,Linux/macOS 对应走 [[re-tracing]](strace/ltrace/dtruss)与本文件「工具准备」的 sysdig/bpftrace。
ProcMon:过滤 → 标注 → CSV 导出
- 过滤(Filter 对话框,Ctrl+L): 规则 = 列 + 关系 + 值,多条件叠加;列可选 Process Name / Operation / Path / Result / PID 等;关系支持如 is / is not / contains / does not contain / begins with / ends with / less than / more than / excludes(数值列用大小比较);右键事件可快速生成规则(Add to Include filter / Add process and children to Include filter)
- 过滤是非破坏性的: 不匹配事件仍入库只是不显示;勾选 Drop Filtered Events 才真正丢弃(超高频捕获控体积用,不可恢复——需要完整证据链时别勾)
- 标注: Include 规则把关注事件黄色高亮,Highlight(Ctrl+H)自定义高亮颜色,Exclude 灰显排除——「高亮=重点、灰显=噪音」的分层阅读
- CSV 导出: File → Save(Ctrl+S)对话框格式选 CSV,范围选 Events displayed using current filter(先过滤再导出,控制体量);批量转换用命令行
Procmon64.exe /OpenLog trace.pml /SaveAs out.csv;原生 PML 保留全部字段与线程栈,可换机复盘 - 时间线关联: 按 Time of Day 排序,把 Process Create / CreateFile / WriteFile / RegSetValue / TCP-UDP Send-Receive 对齐成「进程 → 文件 → 注册表 → 网络」证据链(对应操作步骤 1-4);Process Tree 工具(Ctrl+T)看进程父子与注入脉络
- 事件属性 Stack 标签页给线程调用栈(可配符号服务器),核对注入/持久化 API 序列(步骤 1 与坑 5-7 的实证)
API Monitor:API 级 hook 链
- 定位: 以导入表 hook 挂接进程内 API 调用,逐调用记录参数(字符串已解码)与返回值,调用树展示嵌套层级——Windows 侧对应 [[re-tracing]] 的 strace/ltrace
- 用法: 管理员运行 → 选择目标进程 → 勾选 API 类(File / Network / Registry / Process / Thread)→ 附加;调用树展开到关键 API(CreateProcess / WriteProcessMemory / RegSetValue / NtWriteFile)看参数实况
- 位宽限制(常见坑): 32 位版只能监控 32 位进程、64 位版只能监控 64 位进程——按样本位宽选 apimonitor-x86.exe / apimonitor-x64.exe
- 安装: 官方渠道 rohitab.com(免费软件,v2 alpha,zip 解压即用);站点偶发不可达,拿到压缩包先核对校验值
- 验证: 附加目标进程后能列出调用树并记录参数与返回值
ETW:内核侧事件采集(logman / wevtutil)
-
定位: Windows 内置事件框架,会话创建与事件解析用系统自带命令(logman / wevtutil / tracerpt),零安装;内核侧采集不受用户态 hook 影响——直通 syscall 的注入(坑 8)只能靠内核侧事件兜底
-
建会话(需管理员):
logman create trace bhev -p Microsoft-Windows-Kernel-Process 0x10 -o bhev.etl -ets logman stop bhev -ets logman delete bhev -ets-p指定 provider(名称或 GUID),可带关键字与级别(如-p Microsoft-Windows-Sysmon 0xFF 5);内核 provider 必须显式给关键字——Kernel-Process 的 0x10 为进程关键字,0x20/0x40 为线程/镜像关键字,缺省可能静默采零事件;logman query -ets看活动会话;logman query providers枚举已注册 provider(管道findstr筛目标) -
常用 provider: Microsoft-Windows-Kernel-Process(进程创建/退出)、Microsoft-Windows-PowerShell(脚本块)、Microsoft-Windows-Sysmon(装有 Sysmon 时直接复用其事件)
-
事件解析: .etl 转 CSV 用
tracerpt bhev.etl -o out.csv -of csv;事件日志用 wevtutil:wevtutil qe Security /q:"*[System[(EventID=4688)]]" /c:10 /rd:true /f:text wevtutil el wevtutil epl Security C:\secevt.evtx/q为 XPath 过滤,/c条数上限,/rd:true最新在前,/f:xml|text输出格式 -
与 re-evasion 互补: 本节是采集侧;绕过侧(ETW 禁用与检测)见 [[re-evasion]]
Process Explorer:实时进程视图
- 进程树: View → Show Process Tree(Ctrl+T)——父子关系、退出进程灰显保留;与 ProcMon 的 Process Tree 工具互补(PE 看实时、ProcMon 复盘录制)
- 底窗: Handles(Ctrl+H)看进程打开的句柄(文件/注册表/网络对象),DLLs(Ctrl+D)看已加载模块与映射——查注入 DLL 是否落位、哪个进程握着被删文件;Hide Lower Pane(Ctrl+L)收起
- Find Handle or DLL(Ctrl+F): 按文件/路径/键反查持有进程——找谁在读写某路径
- 签名验证: Options → Verify Image Signatures 开启后进程列表出现 Verified Signer 列;进程属性 Image 页 Verify 按钮单查——快速区分系统合法模块与可疑注入模块(签名缺失/失效即告警,配合步骤 1)
跨 OS 约束
- 以上工具(ProcMon / API Monitor / Process Explorer / logman-wevtutil)均为 Windows 内置或 Windows-only;Linux/macOS 对应走 [[re-tracing]](strace/ltrace/dtruss)与「工具准备」的 sysdig / bpftrace
- 例外注明: ProcMon 有微软官方 Linux 重实现(ProcMon-for-Linux,GitHub microsoft 仓库,preview、系统调用级,eBPF 系),实验性,正式分析仍以 sysdig/bpftrace 为主
跨域联合
- [[re-malware]]:工作流第 3 步——行为分析是恶意样本判定的核心环节
- [[re-sandbox]]:本技能全部运行与复跑必须在沙箱内(强制前置)
- [[re-protocol]]:步骤 4 发现 C2 → 转流量捕获 / 协议重建
- [[re-anti-analysis]]:行为异常(延迟/交互检查、检测沙箱后退出)→ 转反分析对抗域
- [[re-tracing]]:Linux 下用 strace 系列补充 sysdig/bpftrace 的函数级调用记录
- [[re-evasion]]:ETW 采集侧(「行为监控工具链」一节)与绕过侧互补——事件流中断即禁用证据
- [[re-ioc]]:步骤 3/4 产出的行为证据是 IOC 提取与报告的原料
常见坑与陷阱
- 行为被沙箱检测绕过:现象——样本在沙箱里只做无害行为或什么都不做,换真实机才发作;原因——沙箱检测(VM 特征、交互检查、延迟触发,见 [[re-sandbox]] 坑 4 与 [[re-anti-analysis]] 域);对策——延长观察窗口(数小时~数天)、伪造交互(输入/鼠标事件)、配合 [[re-sandbox]] 的 INetSim 完整网络、必要时用 [[re-anti-analysis]] 静态还原触发条件
- 只看进程树漏注入:现象——进程树里只有样本自身,但恶意行为发生在别的进程里;原因——注入型样本自进程表现无害,恶意逻辑在宿主进程执行;对策——必须查注入特征序列(步骤 1 的 API 序列),行为证据以被注入目标进程的内存与模块为准
- 持久化藏于计划任务/WMI 常被忽略:现象——重启后样本复活,Run 键/服务里查不到;原因——攻击者优先用计划任务(schtasks)与 WMI 事件订阅做持久化,常规检查覆盖不到;对策——持久化清单必须包含
schtasks /query与 WMI __EventConsumer 查询(步骤 2),逐项核对创建时间与命令内容 - 隐藏的计划任务常规查询查不到:现象——
schtasks /query与任务计划 GUI 都看不到任务,重启后样本仍复活;原因——攻击者删除任务的安全描述符(SD)注册表值或篡改 Index 元数据,任务从常规查询中隐藏;对策——直接检查C:\Windows\System32\Tasks\*.xml与注册表HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache,SD 缺失即告警 - 注入检测看系统侧信号,不只盯 API 序列:现象——进程树无异常、API 序列未捕获,注入却已发生;原因——注入目标多为受信任系统进程,API 监控被绕过或覆盖不到;对策——配合 Sysmon 事件:8(CreateRemoteThread)、10(ProcessAccess 带 PROCESS_VM_WRITE/PROCESS_VM_OPERATION/PROCESS_CREATE_THREAD)、7(异常路径 ImageLoaded)、25(ProcessTampering,内存镜像与磁盘不一致=空洞化);空洞化样本用 PE-sieve/Hollows Hunter 扫描(内存 PE 头与磁盘不匹配)
- 持久化位置超出 Run 键/服务:现象——Run 键与服务清单干净,登录/启动后样本仍执行;原因——攻击者用 Winlogon Userinit、AppInit_DLLs、IFEO、COM 劫持、服务失败恢复"Run a Program"等位置(Autoruns 扫描 18+ 类 ASEP);对策——持久化清单补全上述位置(步骤 2),逐项核对路径、签名与创建时间
- KernelCallbackTable 注入(回调表重定向):现象——进程树正常、常规注入 API 序列(OpenProcess→VirtualAllocEx→WriteProcessMemory→CreateRemoteThread)一条都抓不到,注入却已发生;原因——攻击者克隆 PEB 的 KernelCallbackTable 并把某回调(如 __fnCOPYDATA)重定向到载荷,用窗口消息(WM_COPYDATA)触发,执行借合法进程身份隐藏(ATT&CK T1574.013,Lazarus/FinFisher 在用,有现成 Sigma 检测规则);对策——API 序列之外补查回调表指针指向与回调函数地址(
dt _PEB KernelCallbackTable)、Sysmon 10 对目标进程的写入事件,配合 T1574.013 Sigma 规则与内存扫描 - 直接/间接系统调用注入(直通 syscall):现象——procmon/API Monitor 等用户态 hook 监控不可见;Sysmon 10/25 等内核 ETW 事件仍可捕获,注入却已发生;原因——DirectSyscalls/IndirectSyscalls 不经 ntdll 用户态导出(或借合法模块做跳板)直发系统调用,绕掉安全产品的用户态 hook;对策——监控降级到内核侧(ETW、Sysmon 25 进程篡改、内核驱动级事件),别只依赖用户态 API 事件
- Linux 侧注入监控盲区:现象——Linux 样本
ps -ef --forest进程树正常、sysdig 无异常 execve,恶意代码已在目标进程里跑;原因——Linux 注入不落盘:process_vm_writev无痕写目标内存、攻击者读/proc/<pid>/syscall拿目标 RSP 后在栈上构造 ROP 调dlopen(DD 面向对象注入 PoC 公开于 2024)、LD_PRELOAD在监控启动前已注入;对策——审计/etc/ld.so.preload(auditd 规则盯其写入),audit 记录 process_vm_writev/process_vm_readv/ptrace 调用,对比磁盘文件与/proc/<pid>/maps映射来源一致性
Signals
- GitHub stars
- 109
- Forks
- 16
- Last commit
- Sep 2026
ahel review
K1binfo
installs-packages
Automated review, not a security audit. Ruleset v1+k2.
Advanced
- Item type
- skill
- Key
re-behavior- Source
- github.com/dslsdzc/rev-skills