Skip to content

持久化与启动链 IOC 提取 ​

1. 入口信号 ​

text
Procmon: RegSetValue / CreateFile / Process Create
strings: Software\Microsoft\Windows\CurrentVersion\Run
strings: schtasks /Create /SC /TN
imports: RegSetValueExW / CreateServiceW / StartServiceW
行为: 重启后进程恢复、服务多出、任务计划多出

目标是把“启动路径”拆成可查询 IOC:注册表键、服务名、任务名、文件落点、命令行和触发条件。

2. 静态打点 ​

powershell
python scripts/misc/ai_tool.py run triage_pe -- samples/app.exe --out exports/pe/app/triage.json
strings samples/app.exe | rg -i "Run\\|RunOnce|Services|schtasks|Startup|WMI|CurrentVersion|Image File Execution Options|AppInit_DLLs"

Ghidra 中优先追:

text
RegCreateKeyExW
RegSetValueExW
CreateServiceW
OpenSCManagerW
ShellExecuteW("schtasks")
IWbemServices::PutInstance
CopyFileW / MoveFileExW

3. Procmon 过滤器 ​

text
Process Name is sample.exe Include
Operation is RegSetValue Include
Operation is RegCreateKey Include
Operation is CreateFile Include
Operation is Process Create Include
Path contains \CurrentVersion\Run Include
Path contains \Services\ Include
Path contains \Startup Include
Path contains \Schedule\TaskCache Include

导出 CSV 后提取 IOC:

python
import csv
from pathlib import Path

rows = csv.DictReader(Path("exports/pe/app/procmon.csv").open(encoding="utf-8", errors="replace"))
for r in rows:
    path = r.get("Path", "")
    op = r.get("Operation", "")
    if any(x.lower() in path.lower() for x in ["currentversion\\run", "\\services\\", "\\startup", "taskcache"]):
        print(op, path, r.get("Detail", ""))

4. 常见路径表 ​

路径成功标志下一跳
HKCU/HKLM\...\Run值名 + 命令行落盘Sigma registry rule
CreateServiceW服务名、ImagePath、StartTypeservice IOC
schtasks /Create任务名、触发器、Actiontask XML
Startup folder.lnk 或 exe 落地file IOC
WMI EventFilterFilter/Consumer/BindingWMI IOC
IFEO Debugger目标进程 + Debugger 值hijack chain
AppInit_DLLsDLL 路径 + LoadAppInit_DLLsDLL load chain

5. 攻击链 / 工作流 ​

text
strings/imports/Procmon 出现启动项信号
  → 过滤 RegSetValue/CreateService/schtasks/CreateFile
  → 提取 key、value、service name、task name、file path
  → x64dbg 断对应 API 回溯 caller
  → Ghidra 命名 persistence 函数
  → 输出 IOC 表并生成 Sigma/YARA 草案

6. x64dbg 断点 ​

text
bp advapi32.RegSetValueExW
bp advapi32.CreateServiceW
bp kernel32.CreateFileW
bp kernel32.CopyFileW
bp shell32.ShellExecuteW
bp kernel32.CreateProcessW

命中时记录:

text
API:
caller VA:
key/path:
value name:
data/command:
return code:

7. Evidence ​

项记录内容
文件落点path、size、SHA256、创建 API
注册表hive、key、value、data、caller
服务service name、display name、ImagePath、StartType
任务计划task name、trigger、action、XML path
WMIFilter、Consumer、Binding
检测产物YARA/Sigma 草案路径

8. MCP 工具映射 ​

步骤MCP 工具用途
初筛triage_peimports/strings/节区线索
Procmonmake_procmon_filters生成行为过滤器
IOC 汇总extract_iocs_from_summary从摘要提取键值、路径和命令
Sigmamake_sigma_stub生成注册表/服务/任务规则草案
知识路由kb_router按 persistence、Run Key、service 查下一篇

GPL-3.0 · 仅供授权环境下的学习与防御性研究使用