恶意行为分析

SkillDev tools

恶意行为分析:持久化、注入、进程树、文件/注册表、ATT&CK 映射。 触发词:行为分析、持久化、注册表、进程注入、它在干什么

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the 恶意行为分析 skill

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 --versionsysdig -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 --versionsudo bpftrace -e 'tracepoint:syscalls:sys_enter_execve { print(comm) }' 能打印
  • 用途: 文件写、进程启动、网络连接等高频事件,比用户态监控轻量

MITRE ATT&CK 导航

Windows/Linux 内置命令(持久化/网络检查,零安装)

  • Windows: reg querysc queryschtasks /query /fo csvnetstat -anoGet-CimInstance Win32_StartupCommand
  • Linux: ps -ef --forestss -tnpcat /etc/crontabsystemctl list-unit-files --state=enabled
  • 验证: 各命令能正常输出

操作步骤

按顺序执行,每步记下结果并保存证据(路径 + sha256)。

  1. 进程树与注入识别

    • 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
  2. 持久化清单(计划任务/WMI 常被忽略,见坑 3):

    • Windows:
      reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
      reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Run"
      sc query state= all
      schtasks /query /fo csv
      
      WMI 持久化(隐藏最深): Get-CimInstance -Namespace root\subscription -ClassName __EventConsumer(ActiveScriptEventConsumer / CommandLineEventConsumer 是恶意常见点)
    • Linux: cat /etc/crontabls /etc/cron.d /etc/cron.dailysystemctl list-unit-files --state=enabled/etc/rc.local/etc/profile.d/*~/.bashrc
    • 逐项记录:位置、命令/路径、是否与样本相关
  3. 文件与注册表操作

    • 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]] 使用
  4. 网络连接与 C2 特征

    • Windows: netstat -ano 对照 procmon 网络事件;沙箱 DNS 已指向 INetSim([[re-sandbox]] 步骤 2)——INetSim 日志里的 DNS 查询就是 C2 域名的直接证据
    • Linux: ss -tnpsysdig 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]])
  5. 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
57
Forks
8
Last commit
Sep 2026

ahel review

  • K1binfo
    installs-packages

Automated review, not a security audit. Ruleset v1+k2.

Advanced
Catalog kind
skill
Gateway key
re-behavior
Source
github.com/dslsdzc/rev-skills