Skip to content

dogadmin/ProcIR

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ProcIR - Windows 应急响应进程排查工具

GitHub Release GitHub Stars

中文 | English

面向安全工程师的一键式应急响应工具,快速定位木马、后门、持久化、白加黑、内存注入等威胁。


工具定位

ProcIR 是一个非常驻、非 Agent、纯本地的 Windows 应急响应排查工具。

设计场景:你接到应急响应任务,上机后需要在最短时间内搞清楚:

  • 哪些进程可疑?
  • 有没有持久化后门?
  • 有没有白加黑 / DLL 劫持?
  • 有没有历史执行痕迹?
  • 攻击链是怎样的?

传统做法是手动跑一堆命令(tasklist、netstat、autoruns、schtasks...),逐个比对,费时费力。ProcIR 把这些全自动化了,一次扫描,全维度分析,按风险排序,直接告诉你该看哪个。

核心理念:不是杀软,不做查杀,只做发现和研判辅助。


特性

  • 单文件运行,无需安装,无外部依赖,11MB
  • 纯 Go 实现,无 CGO,拷贝即用
  • 非常驻,扫描完就退,不影响业务
  • 不联网,所有分析纯本地完成(AI 分析功能除外,需联网调用 API)
  • 双模式运行:内嵌 Web UI(GUI)+ 纯命令行模式(CLI),支持 JSON/CSV 导出
  • 13 个分析视图,覆盖从进程到内存的完整攻击面
  • AI 智能分析,中文 MiniMax / 英文 Claude,一键将扫描结果交给 AI 研判
  • 中英文全量双语,UI + 后端 400+ 条检测规则/风险原因全部支持中英文切换

快速开始

GUI 模式(默认)

# 直接运行,自动打开浏览器
procir.exe

# 带 YARA 规则
procir.exe -yara rules.yar
procir.exe -yara C:\yara-rules\

运行后自动打开浏览器,点「开始扫描」,等待数秒即可看到结果。

CLI 模式(纯命令行)

无需 GUI,扫描完成后直接导出数据文件,适合自动化脚本、远程 SSH、无桌面环境等场景。

# 扫描并导出 JSON(默认格式)
procir.exe -cli -o result.json

# 扫描并导出 CSV
procir.exe -cli -o result.csv -format csv

# 加载 YARA 规则扫描,导出全量结果
procir.exe -cli -yara ./rules -o scan.json

# 仅导出 YARA 匹配结果
procir.exe -cli -yara ./rules -yara-export -o yara_hits.json

# 不指定 -o,自动生成带时间戳的文件名
procir.exe -cli

CLI 参数:

参数 说明
-cli 启用 CLI 模式(不启动 GUI)
-o <path> 指定导出文件路径
-format json|csv 导出格式,默认 json
-yara <path> YARA 规则文件或目录
-yara-export 仅导出 YARA 匹配结果

导出内容:

  • JSON 全量导出:ExecObjects、Processes、Triggers、Forensics、Events、Modules、Timeline、BehaviorChains、Indicators + Summary 统计
  • CSV 全量导出:ExecObjects 27 列关键字段(含 YARA 列)
  • YARA 专项导出:仅 YARA 命中对象,含规则名、标签、匹配分数

分析能力总览

ProcIR 从 9 个维度 分析系统状态,覆盖攻击生命周期的每个阶段:

┌──────────────────────────────────────────────────────────┐
│  Execution Plane(运行态)                                │
│  当前所有活跃进程 → 命令行/父子链/签名/网络/持久化          │
├──────────────────────────────────────────────────────────┤
│  Trigger Plane(触发态)                                  │
│  注册表Run → Startup → 计划任务 → 服务 → WMI → IFEO       │
├──────────────────────────────────────────────────────────┤
│  Forensic Plane(历史态)                                 │
│  Prefetch → 最近文件修改 → 事件日志 → DLL模块              │
├──────────────────────────────────────────────────────────┤
│  Event Plane(事件态)                                    │
│  Security → System → PowerShell → TaskScheduler → Sysmon │
├──────────────────────────────────────────────────────────┤
│  Module Plane(模块态)                                   │
│  DLL Sideload → 白加黑 → 系统DLL伪装 → 同目录加载         │
├──────────────────────────────────────────────────────────┤
│  YARA Plane(内容态)                                     │
│  纯Go YARA引擎 → 自定义规则 → 文件内容匹配                │
├──────────────────────────────────────────────────────────┤
│  Memory Plane(内存态)                                   │
│  指定PID → VirtualQueryEx → RWX/私有可执行/无文件注入      │
├──────────────────────────────────────────────────────────┤
│  IOC Monitor(动态监控)                                  │
│  IP IOC → TCP连接表轮询 → 实时命中 → 进程归因              │
├──────────────────────────────────────────────────────────┤
│  AI Analysis(智能分析)                                   │
│  MiniMax 大模型 → 扫描数据一键投喂 → 多轮对话研判          │
└──────────────────────────────────────────────────────────┘
                         ↓
              Fusion Engine(融合引擎)
              → ExecutionObject 统一模型
              → 多维叠加评分
              → 行为链识别
              → 时间线还原
              → IOC 自动提取

13 个分析视图

视图 功能
活跃进程 所有运行进程,按风险评分排序,命令行/签名/网络/持久化一目了然
触发器 所有持久化入口(Run/Task/Service/WMI/IFEO/Winlogon),独立评分
执行对象 核心视图:进程+触发器+取证+事件+模块+YARA 多维融合,统一评分
历史取证 Prefetch 执行记录、最近文件修改、事件日志、可疑模块
事件日志 Security/System/PowerShell/TaskScheduler/WMI/Sysmon 高价值事件
模块分析 DLL 劫持检测:白加黑/同目录侧加载/系统DLL名伪装
时间线 全部事件按时间排序,还原攻击路径
行为链 自动识别攻击模式:宏攻击链/浏览器利用链/WMI后门链/下载执行链
IOC 自动从命令行/触发器/事件中提取 URL/IP/域名/Base64
YARA 独立页面:上传规则 → 全量扫描 → 命中结果 → 规则详情
内存分析 指定 PID 深度分析:RWX 内存/私有可执行/无映像执行
IOC 监控 输入 IP/域名列表 → 实时监控 TCP 连接 → 命中告警+进程归因
AI 分析 集成 MiniMax 大模型,一键发送扫描数据,多轮对话智能研判

评分模型

ProcIR 的评分不是简单规则匹配,而是一个多层融合模型

第一层:基础规则(每个维度独立打分)

进程评分 = 签名(±8) + 路径(±10~20) + 伪装(+30) + 父子链(+10~25)
         + 命令行(+20~30) + 网络(+10~20) + 持久化(+20~25)
         → 强规则Override → 组合加权Synergy → 白特征Anti-FP → 上下文权重(×1.2~1.5)

触发器评分 = 基础(+15~30) + 路径(+20) + 命令行(+20~30) + Task特征(+10) + Service特征(+10~25)

事件评分 = EventID权重(+5~30) + 命令行检测(+15~20) + LOLBin识别(+15)

模块评分 = 未签名(+20) + 用户目录(+25) + 系统DLL伪装(+30) + 白加黑(+40) + 同目录(+35) + 系统进程异常(+50)

YARA评分 = 每规则(+20) + 高危标签(+30) + 多规则(+15) + 外联联动(+20) + 持久化联动(+15)

第二层:融合评分

FinalScore = ExecutionScore + TriggerScore + ForensicScore + EventScore
           + DLLHijackScore + YaraScore
           + BehaviorChainScore + DirClusterScore
           + SynergyBonus - WhiteReduction

第三层:融合规则

规则 分值
未运行但触发器高危 至少 Medium(40)
触发器含 PowerShell 编码执行 至少 Critical(80)
用户目录 + 自启动 +20
运行中 + 外联 + 持久化 +20
3+ 种触发器指向同一对象 至少 Critical(80)
历史执行 + 持久化 +20
事件证据 + 持久化 +20
事件证据 + YARA 命中 +20
DLL 劫持 + 外联 +20

风险等级

分数 等级 含义
0-19 低危 基本正常,可忽略
20-39 可疑 需要留意
40-59 中危 建议重点排查
60-79 高危 优先处置
80+ 严重 立即响应

检测覆盖

威胁类型 检测手段
LOLBin 滥用 40+ LOLBin 列表 + 命令行深度匹配
白加黑 / DLL Sideload 签名进程+未签名DLL / 同目录加载 / 系统DLL名伪装
Office 宏攻击 父子进程链(Office→脚本引擎)
PowerShell 攻击 -enc/隐藏窗口/下载/IEX + 4104脚本日志
持久化后门 Run/RunOnce/Startup/计划任务/服务/WMI/IFEO/Winlogon
WMI 持久化 EventFilter + Consumer + Binding 完整链路
系统文件伪装 14 个系统进程名 + 合法路径比对
间歇执行/定时后门 Prefetch + 计划任务 + 事件日志交叉关联
已清理样本 Prefetch 残留 + 事件日志(4688/7045/4698)
内存注入 / Fileless VirtualQueryEx 枚举 RWX/私有可执行内存
C2 外联 TCP 连接表 + IOC 实时监控
横向移动痕迹 4624(网络登录)/4648(显式凭证)/4672(特权登录)
提权行为 7045(服务安装) + LOLBin 提权命令

行为链自动识别

ProcIR 不只做单点检测,还能自动识别完整攻击链:

攻击链 检测模式 评分
宏攻击链 Office → 脚本引擎 (+ -enc/download) +25~40
浏览器利用链 Browser → 系统工具 (排除 Native Messaging) +20
持久化执行链 文件落地 + RunKey/Task + Prefetch 执行记录 +15~20
WMI 后门链 WMI Consumer → 脚本引擎 → URL/编码 +30
DLL 侧加载链 进程加载用户目录未签名 DLL +25
下载执行链 cmd /c + curl/certutil + 执行 / PS download+IEX +25~30

YARA 集成

ProcIR 内置了一个纯 Go 实现的 YARA 兼容引擎(无需 CGO/GCC),支持:

  • 文本字符串匹配(nocase / wide / ascii / fullword)
  • 十六进制模式(含 ?? 通配符)
  • 正则表达式
  • 条件语法(any of them / all of them / N of / 布尔组合 / filesize)
  • meta / tags

使用方式:

  1. 切到「YARA」标签页
  2. 点「选择规则文件」上传单个 .yar 文件,或点「加载规则文件夹」选择整个规则目录(递归加载子目录),也可输入本地路径加载
  3. 点「开始扫描全部对象」
  4. 查看命中结果

只扫描可疑对象(高评分/用户目录/未签名/有触发器),自动跳过已签名系统文件。CLI 模式下通过 -yara 参数加载规则。


IOC 监控

实时监控本机是否与恶意 IP 通信:

  1. 切到「IOC 监控」标签页
  2. 输入 IOC 列表(一行一个 IP 或域名)
  3. 设置监控时长,点「开始监控」
  4. 命中时实时显示进程名/路径/用户/端口
# IOC 格式
1.2.3.4
evil.com
1.2.3.4,high,intel_feed,C2 server

域名 IOC 在加载时自动解析为 IP。监控期间仅读取内核 TCP 连接表,零网络影响


AI 智能分析

集成 MiniMax 大模型,实现扫描结果的 AI 辅助研判:

  1. 切到「AI 分析」标签页
  2. 输入 MiniMax API Key(可勾选「记住 Key」保存到本地)
  3. 选择模型(M2.5 / M2.5 高速 / M2.7 / M2.7 高速)
  4. 点「发送扫描数据」将完整扫描结果一键投喂给 AI,或点「发送摘要」发送精简版
  5. 也可以直接在输入框输入问题,进行多轮对话

功能特点:

  • 一键投喂:自动将高风险进程、可疑触发器、行为链、IOC、高危执行对象、可疑模块、历史取证、高危事件等全部扫描数据格式化后发送给 AI
  • 多轮对话:支持上下文连续对话,可追问细节
  • 专业 Prompt:内置 Windows 应急响应专家角色设定,AI 直接给结论和处置建议
  • Token 统计:实时显示每轮和累计 Token 消耗
  • API Key 本地保存:可选将 Key 存储在浏览器 localStorage

需要 MiniMax API Key,申请地址:platform.minimax.io


内存分析

对可疑进程进行内存级深度检测:

  1. 在「活跃进程」视图发现可疑进程
  2. 切到「内存分析」,输入 PID
  3. 查看 RWX 内存区域 / 私有可执行内存 / 非映像可执行区域

主要发现:

  • Shellcode 注入(RWX 内存)
  • Reflective DLL 加载(私有可执行)
  • 无文件攻击(非映像可执行)

技术实现

模块 实现方式
进程枚举 CreateToolhelp32Snapshot + NtQueryInformationProcess(读取 PEB 命令行)
文件哈希 SHA256 + MD5,带线程安全缓存
数字签名 WinVerifyTrust + GetFileVersionInfo
网络连接 GetExtendedTcpTable / GetExtendedUdpTable(TCP/UDP IPv4/IPv6)
持久化 注册表 API + Scheduled Tasks XML 解析 + SCM API + WMI PowerShell 查询
事件日志 wevtutil(支持在线日志和离线 .evtx 文件)
DLL 模块 CreateToolhelp32Snapshot(TH32CS_SNAPMODULE) + WinVerifyTrust
内存分析 VirtualQueryEx
IOC 监控 GetExtendedTcpTable 轮询(1秒间隔)
YARA 纯 Go 实现的规则解析器 + 模式匹配引擎
AI 分析 MiniMax API 代理 + 多轮对话 + 扫描数据自动格式化
GUI 内嵌 HTTP 服务器 + HTML/CSS/JS 单页应用

项目结构

procir/
├── cmd/procir/main.go          # 入口
├── internal/
│   ├── process/                 # 进程枚举
│   ├── file/                    # 文件哈希
│   ├── signature/               # 数字签名
│   ├── context/                 # LOLBin/伪装/父子链
│   ├── network/                 # 网络连接
│   ├── persistence/             # 持久化(旧版,供进程关联)
│   ├── trigger/                 # 触发器采集(7种)
│   ├── forensic/                # 历史取证(4种)
│   ├── event/                   # 事件日志(8个来源)
│   ├── module/                  # DLL 白加黑检测
│   ├── memory/                  # 内存分析
│   ├── yara/                    # YARA 引擎
│   ├── iocmonitor/              # IOC 动态监控
│   ├── rules/                   # 进程评分引擎
│   ├── fusion/                  # 融合引擎
│   ├── scoring/                 # 扫描编排器
│   ├── export/                  # CLI 导出引擎(JSON/CSV)
│   ├── timeline/                # 时间线引擎
│   ├── behavior/                # 行为链识别
│   ├── indicator/               # IOC 提取
│   ├── proctree/                # 进程树 + 目录生态
│   ├── types/                   # 数据结构
│   └── gui/                     # Web UI
└── go.mod

55+ 个 Go 源文件,12,000+ 行代码,编译产物 11MB,外部依赖仅 golang.org/x/sys


运行环境

  • Windows Server 2016+ / Windows 10+
  • 建议以管理员权限运行(部分功能如内存分析、模块枚举需要提升权限)
  • 无需安装 Go 环境,直接运行编译好的 exe

使用建议

  1. 先看「执行对象」视图 — 这是融合了所有维度的核心视图,按评分从高到低排列
  2. 重点关注 Critical 和 High — 单一维度不会轻易到 High,能到说明多个维度叠加
  3. 善用右键菜单 — 复制 SHA256 → 去 VirusTotal 验证
  4. 双击查看详情 — 看评分构成,理解为什么这个对象被标记
  5. 用 YARA 做二次确认 — 对可疑文件跑自定义规则
  6. 用内存分析做深度检测 — 对高风险进程查看内存布局
  7. 用 IOC 监控做动态验证 — 输入威胁情报 IP,看是否有实时通信
  8. 用 AI 分析做智能研判 — 一键将扫描数据发送给 AI,获取专业分析结论和处置建议

Star History

Star History Chart


免责声明

  1. 本工具仅供合法的安全研究、渗透测试、应急响应和教育学习使用。 使用者必须确保已获得目标系统的合法授权,遵守当地法律法规。
  2. 本工具不提供任何形式的恶意软件查杀能力。 ProcIR 是一个辅助研判工具,所有检测结果仅为线索参考,最终判定需要安全工程师的专业分析。
  3. 误报与漏报。 基于规则的检测必然存在误报和漏报。高评分不代表一定是恶意软件,低评分也不代表一定安全。请结合实际环境综合研判。
  4. 使用风险。 本工具在运行过程中会读取进程信息、文件内容、注册表、事件日志、内存布局等系统数据。虽然所有操作均为只读且不修改系统状态,但在生产环境中使用时请评估潜在影响。
  5. 免责。 作者不对因使用本工具造成的任何直接或间接损失承担责任。使用本工具即表示您理解并接受以上条款。

License

本项目仅供学习和授权安全测试使用。


ProcIR — 让应急响应快一步。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages