Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
MacPersistenceChecker — macOS 持久化机制扫描器,具备代码签名验证和时间线追踪功能。 | Kitploit
工具/GitHubGitHub/pinperepette/macpersistencechecker
OSINT (开源情报)持久化机制漏洞分析取证分析恶意软件分析数字取证威胁情报学习与教育事件响应AI 安全
GitHubpinperepette/macpersistencechecker

MacPersistenceChecker

macOS 持久化机制扫描器,具备代码签名验证和时间线追踪功能。

268131个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库

MacPersistenceChecker

查看 Mac 上运行的所有内容。 了解为什么运行。 决定什么保留。

Main UI

How It Works

TL;DR

MacPersistenceChecker 向您展示Mac 上自动运行的所有内容,解释为什么重要,并帮助您决定保留或删除什么。

→ 发现恶意软件 → 检测隐藏的持久化 → 几分钟内了解您的系统

下载

下载 MacPersistenceChecker v2.0.0 (DMG)

→ 在 30 秒内扫描您的 Mac → 无需安装向导,直接打开运行 → 原生 macOS,通用(Apple Silicon 和 Intel),macOS 13+

如果 macOS 提示应用已损坏:xattr -cr /Applications/MacPersistenceChecker.app

实际使用场景

  • "为什么我的 Mac 变慢了?" → 查找隐藏的自动启动应用和登录项
  • "我感染了吗?" → 检测可疑的持久化、已签名但危险的二进制文件
  • "这个安装程序添加了什么?" → 安装前后的快照差异,附带 AI 解释
  • "登录时运行了什么?" → 全面查看 22 种以上的持久化机制
  • "这安全吗?" → AI 用通俗语言解释,并映射 MITRE ATT&CK

为什么不是 Autoruns(或其他工具)?

  • 专为 macOS 构建 — 不是 Windows 移植版。了解 LaunchAgents、TCC、内核扩展、dylib 劫持、BTM、MDM 配置文件等。
  • AI 辅助分类(可选)— Claude 可在数秒内分类数千个项目,并随着时间的推移了解您的环境
  • 知识图谱代替平面列表 — 每个概念只需决定一次,判定结果会传播到所有相关项目
  • 行为 + 上下文感知 — 风险评分结合签名、行为、意图不匹配、年龄异常、LOLBins 等
  • 无遥测、无云同步 — 所有分析在本地进行。AI 是可选功能,用户通过自己的 Anthropic 密钥付费

隐私与安全

  • 您的数据不会离开您的机器,除非您选择使用 AI 功能
  • 所有扫描、风险评分和图推理均在本地运行
  • AI 调用直接通过您自己的 API 密钥发送到 Anthropic — 无代理、无日志记录
  • API 密钥存储在 macOS 钥匙串中
  • 开源代码:查看其发送内容和方式

AI 驱动的分析

该应用学习您的系统并自动分类数千个项目。

  • 🧠 将相似项目分组为概念集群(6800 个项目 → 约 280 个集群)
  • 📚 了解您信任的内容 — 判定结果会传播到相关项目,包括未来的项目
  • 🔇 随着时间的推移减少噪音 — 首次分类工作量最大,之后保持安静
  • 🎯 五个 AI 工具:逐项分析、批量集群分类、完整系统报告、威胁狩猎问答、快照差异解释

快速开始:

  1. 设置 → AI → 粘贴您的 Anthropic API 密钥(保存在 macOS 钥匙串中)
  2. 设置 → 监控 → 打开使用 AI 开关
  3. 工具栏 → 分类 批量分类集群,或狩猎 提出自然语言问题

实际成本:活跃使用每月低于 1 美元,稳定状态为 0 美元。

工作原理(技术细节)

该应用为 Mac 上的每个持久化项目构建一个知识图谱,并使用 Claude (Anthropic) 进行推理。快速分类数千个项目,仅升级真正重要的内容,并学习您的系统,以便无需进一步调用 AI 即可回答大多数问题。

推理流程```

root@kitploit:~
             ┌──────────────────────────┐
             │   Persistence scan       │
             │   (e.g. 6800 items)      │
             └─────────────┬────────────┘
                           ▼
        ┌────────────────────────────────────────┐
        │  Concept Extraction (deterministic)    │
        │  6 extractors → vendor / software /    │
        │  pathCategory / pattern / mechanism /  │
        │  filename. No AI calls here.           │
        └─────────────┬──────────────────────────┘
                      ▼
        ┌────────────────────────────────────────┐
        │  Knowledge Graph (SQLite)              │
        │  • concepts (~280 typically)           │
        │  • concept_links (subsumes / instance) │
        │  • item_concepts (m:n)                 │
        │  • concept_verdicts                    │
        └─────────────┬──────────────────────────┘
                      ▼
        ┌────────────────────────────────────────┐
        │  Concept Resolver                      │
        │  for every item, picks the strongest   │
        │  verdict via a deterministic ladder:   │
        │  severity → confidence → specificity   │
        │  → source → recency.                   │
        └─────────────┬──────────────────────────┘
                      │
          ┌───────────┴────────────┐
          ▼                        ▼
下载工具

┌──────────────────┐ ┌──────────────────────┐ │ Item is already │ │ Item is unresolved │ │ classified. │ │ → goes to a cluster. │ │ Filter hides it │ └──────────┬───────────┘ │ from "Suspicious"│ ▼ └──────────────────┘ ┌──────────────────────┐ │ Cluster Builder │ │ groups items by │ │ identical concept │ │ signature (sorted │ │ ids). 6800 items → │ │ ~280 clusters. │ └──────────┬───────────┘ ▼ ┌──────────────────────────────────────────┐ │ User decides per cluster (one click = │ │ N items decided), OR sends batch to AI: │ │ │ │ • Trust / Watch / Block (manual) │ │ • Send unresolved clusters to AI │ │ → Haiku batch (15 cluster per call) │ │ → AI returns verdicts attached to │ │ concepts (not items) — propagate │ │ to ALL items linked to those │ │ concepts, including future ones. │ └──────────────────────────────────────────┘

root@kitploit:~
### AI 工具

| 工具 | 位置 | 模型 | 每次调用成本 |
|---|---|---|---|
| 使用 AI 分析(单个项目) | 项目详情 → 知识图谱 | Haiku | ~$0.003 |
| 智能分类批次 | 工具栏 → 分类 | Haiku 批次 | ~$0.005(15个聚类) |
| 系统报告 | 工具栏 → 报告 | Sonnet | ~$0.05-0.10 |
| 威胁狩猎 | 工具栏 → 狩猎 | Haiku | ~$0.003 |
| 快照差异 | 历史 → 比较 → 使用 AI 分析 | Haiku | ~$0.003 |

每日调用上限(默认30)可在“设置 → AI”中配置。硬性上限,达到后AI自动禁用。

### 信任控制

用户定义的规则**始终优先于**AI提取的规则:

- **信任此项目** — 单个项目规则,您的判断覆盖AI观察列表
- **信任此模式** — 模式规则,包含TeamID/签名锚点(仅限已签名二进制文件)
- **移除信任** — 删除您误添加的用户定义规则
- **监视/阻止** — 对整个聚类应用观察列表/恶意判定(智能分类中)

</details>

---

## 持久性扫描

### 核心扫描器
- **启动守护进程** - 系统范围服务(`/Library/LaunchDaemons`, `/System/Library/LaunchDaemons`)
- **启动代理** - 用户级别代理(`~/Library/LaunchAgents`, `/Library/LaunchAgents`)
- **登录项** - 登录时启动的应用
- **内核扩展** - 传统kext
- **系统扩展** - 现代系统扩展(DriverKit, NetworkExtension, EndpointSecurity)
- **特权辅助工具** - 具有提升权限的XPC服务
- **定时任务** - 计划任务
- **配置描述文件** - MDM和配置描述文件
- **应用支持** - 后台应用和助手

### 扩展扫描器(可选)
- **定期脚本** - `/etc/periodic/` 中的每日、每周、每月脚本
- **Shell启动文件** - `.zshrc`, `.bashrc`, `/etc/profile`,带可疑模式检测
- **登录/注销钩子** - 通过 `com.apple.loginwindow` 的传统登录钩子
- **授权插件** - `/Library/Security/SecurityAgentPlugins` 中的安全代理插件
- **Spotlight导入器** - 自定义元数据导入器
- **Quick Look插件** - 可能被滥用的预览生成器
- **目录服务插件** - 认证插件
- **Finder同步扩展** - 通过 pluginkit 的 Finder 扩展
- **BTM数据库** - 后台任务管理条目(macOS 13+)
- **Dylib劫持** - 检测 `DYLD_INSERT_LIBRARIES` 和可疑的 dylib 注入
- **TCC/辅助功能** - TCC 数据库中具有辅助功能权限的应用

---

## 风险评估

每个持久性项目都会根据多种因素获得**风险评分(0-100)**:

- 无效或缺失的代码签名
- 缺少强化运行时保护
- 临时签名二进制文件
- 可疑的文件位置
- 持久性自动启动配置(RunAtLoad, KeepAlive)
- 已知恶意软件模式

**严重级别:** 低、中、高、紧急 - 项目按风险排序以便快速识别威胁。

### 启动频率异常检测
- **微重启** - StartInterval < 60秒(可能滥用看门狗)
- **激进看门狗** - KeepAlive + 低StartInterval组合
- **无节流限制** - 没有ThrottleInterval的KeepAlive(崩溃重启循环风险)

### 已签名但危险检测
- **危险权限** - 检测风险权限(`com.apple.security.cs.disable-library-validation` 等)
- **苹果冒充** - 试图冒充苹果的非苹果软件
- **隐藏位置** - 在可疑目录中的已签名应用
- **公证缺口** - 近期应用缺少公证
- **开发者证书分析** - 针对已知供应商的Team ID验证

### LOLBins检测(Living-off-the-Land二进制)
检测在持久性上下文中滥用合法macOS二进制文件的可疑使用。**组合至关重要:**

- **osascript + 持久性** = 带自动启动的AppleScript(GUI自动滥用)
- **curl/wget + RunAtLoad** = 下载并执行模式
- **python + 特权辅助工具** = 提升的脚本执行
- **security + KeepAlive** = 凭证窃取风险
- **launchctl + 自动启动** = 元持久性安装程序
- **netcat + 持久性** = 反向shell / C2通道

追踪40多个LOLBins,带有MITRE ATT&CK映射和上下文感知的严重性评分。

### 二进制信誉与行为分析
高级启发式规则,用于检测可疑行为模式:

- **隐藏持久性守卫** - 没有明显看门狗用途的KeepAlive代理
- **激进持久性** - 非服务项目上的RunAtLoad + KeepAlive
- **隐蔽自动启动** - 来自未知供应商的后台进程
- **孤儿持久性** - Plist指向不存在的可执行文件
- **可疑位置** - 可执行文件在 `/tmp/`、`/Users/Shared/` 或隐藏目录中
- **权限提升风险** - 尝试特权操作用户代理
- **联网持久性** - 具有网络能力的持久性
- **基于脚本的持久性** - 通过解释器的内联脚本
- **系统进程冒充** - 使用类似苹果命名的非苹果项目
- **频繁重启模式** - StartInterval < 60秒

### Plist与二进制意图不匹配
检测plist声明与二进制实际行为不匹配的情况 - 这正是现代dropper所做的:

- **无害Plist,重型二进制** - 简单配置但二进制具有危险权限
- **被动辅助工具带有网络** - 具有网络客户端/服务器访问的后台辅助工具
- **被动辅助工具带有Dylib加载** - 可加载未签名代码的辅助工具
- **最小配置,最大能力** - 最小plist但广泛权限
- **简单任务带有钥匙串访问** - 具有凭证访问的简单任务

### 二进制年龄与持久性年龄
检测可疑的时间戳模式,表明安装后的恶意更新:

- **旧Plist,新二进制** - 经典的“安装后恶意更新”模式
- **静默二进制替换** - 二进制修改但plist未更改
- **时间戳篡改** - 修改日期早于创建日期(不可能)
- **可疑修改时间** - 二进制在凌晨2-5点被修改
- **安装后二进制被修改** - 非更新程序的二进制在初始安装后被更改

### 信任级别
- 🟢 **苹果** - 由苹果签名
- 🔵 **已知供应商** - 已验证的第三方软件
- 🟡 **已签名** - 有效签名但未公证
- ⚪ **未知** - 无可验证的可执行文件
- 🟠 **可疑** - 证书过期或路径可疑
- 🔴 **未签名** - 无有效签名

---

## 时间线与取证

每个持久性项目的全面取证时间线:

**发现**
- 首次发现 - 项目首次被发现的时间

**配置文件(Plist)**
- 创建 - 文件创建时间戳
- 修改 - 最后修改时间戳

**可执行文件(二进制)**
- 创建 - 二进制创建时间戳
- 修改 - 最后修改时间戳
- 最后执行 - 最后访问/执行时间

### 时间戳异常检测
- **时间戳篡改** - 创建日期晚于修改日期(反取证技术)
- **文件替换** - 文件在首次发现后被创建
- **二进制替换** - 最近修改的二进制文件带有旧plist(可能被篡改)
- **近期执行** - 二进制文件最近被访问但当前未加载

---

## MITRE ATT&CK集成

每个持久性机制映射到MITRE ATT&CK框架:

- **战术**:持久化、权限提升、防御规避、执行
- **技术**:T1543.001, T1543.004, T1547.001, T1547.015 等
- 直接链接到MITRE ATT&CK文档

---

## 应用侵入性报告

对已安装应用进行全面分析,评估其“侵入性”级别:

### 双重评分系统

**持久性分数(0-100)** - 评估持久性机制:
- 触发类型(RunAtLoad, KeepAlive)
- 权限级别(启动守护进程、内核扩展、特权辅助工具)
- 弹性(自动重启、更新程序)
- 冗余(同一供应商的多个项目)
- 信任级别(未签/可疑惩罚)

**安装分数(0-100)** - 评估“垃圾”占用:
- 文件分布在Library文件夹中
- 总磁盘使用量
- 孤立文件(持久性但没有匹配应用)
- 缓存膨胀
- 系统范围安装

### 等级系统
应用根据综合评分评定**A到F**等级,并详细列出所有评分因素。

---

## 可视化

### 统计仪表板
- **风险分布直方图** - 按风险带(低、中、高、紧急)显示项目
- **信任级别环形图** - 信任级别分布
- **类别分解图** - 每个持久性类别的项目
- **时间线可视化** - 项目生命周期事件(创建、修改、执行、发现)

### 交互式图表
- **完整系统图** - 所有持久性项目及关系的概览
- **聚焦项目图** - 单个项目分析的径向图
- **分析模式**:基础(信任/类别)或完整(包含dylib依赖、网络连接)
- **交互式画布** - 缩放、平移、探索关系
- **按信任级别着色** - 快速视觉威胁评估

### 安全概况雷达图
全面的雷达图显示信任、签名、安全性、稳定性、透明度和年龄维度,一目了然。

---

## 实时监控

持续监控持久性变化,具有两种分析模式。

### 监控模式

**标准模式**
- 基于FSEvents的实时文件系统监控
- 智能噪声抑制,可配置去抖
- 相关性评分以过滤无关紧要的变化
- 对高相关性变化立即通知

**AI模式**(需要Claude API密钥)
- Claude AI分析每个检测到的变化
- 向AI发送完整上下文:签名信息、LOLBins、行为异常、风险评分
- AI根据实际威胁级别决定是否应通知
- 可配置检查间隔(30秒到1小时)
- 严重性阈值过滤(信息、低、中、高、紧急)

### 菜单栏集成
- 实时监控状态指示器
- 显示“AI”或“Std”的模式徽章
- 快速控制(启动/停止监控、触发扫描)
- 设置访问
- 未确认变化的徽章计数
- 上次检测到的变化预览

### 通知去重
- 相同项目在冷却期内不会触发重复通知
- 可配置冷却时间(1-24小时,默认2小时)
- 防止频繁变化项目导致通知疲劳

### 启动通知
当监控启动时,您会收到一个通知确认:
- 活动模式(AI模式或标准模式)
- 检查间隔(AI)或“实时”(标准)
- 通知阈值设置

### 变化检测
- **已添加** - 新的持久性项目
- **已移除** - 已删除项目
- **已修改** - 配置更改(启用/禁用、路径更改等)
- **已启用/已禁用** - 状态更改

### AI分析详情
当AI模式激活时,每次更改将完整的项目数据发送给Claude:
- 基本信息(名称、类别、路径、plist内容)
- 签名详情(已签名、苹果、已公证、Team ID、证书状态)
- 风险评估(分数、详细分解)
- LOLBins检测及MITRE映射
- 行为异常
- 意图不匹配(plist与二进制)
- 年龄异常(时间戳分析)
- 已签名但危险标志

Claude响应:
- `shouldNotify` - 是否提醒用户
- `severity` - 威胁级别评估
- `title` - 通知标题
- `explanation` - 为什么可疑或不可疑
- `recommendation` - 建议的操作
- `mitreTechniques` - 相关的ATT&CK技术

### AI自定义

通过**设置 → AI**控制AI分析变化的方式:

**结构化选项**
| 选项 | 默认 | 效果 |
|------|------|------|
| 忽略苹果签名 | 开 | 降低苹果签名项目(com.apple.*)的优先级 |
| 忽略系统路径 | 开 | 降低/System和/Library路径的优先级 |
| 优先处理未签名 | 开 | 额外关注未签名可执行文件 |
| 聚焦LOLBins | 开 | 优先检测Living-off-the-Land二进制 |
| 最低风险分数 | 0 | 仅分析风险 >= 阈值的项目 |
| 忽略路径 | - | 要跳过的自定义路径(逗号分隔) |

**通知阈值**
- `信息` - 通知所有内容
- `低` - 通知低严重性及以上
- `中` - 通知中及以上(默认)
- `高` - 仅高和紧急
- `紧急` - 仅紧急威胁

**自定义提示**
添加您自己的指令,这些指令会附加到AI提示中。示例:```
Always notify me if an item uses python or osascript.
Ignore anything from Microsoft.
Be more aggressive with unsigned items from ~/Downloads.

AI 使用这些偏好设置来做出更智能的决策。例如:

  • 来自 /tmp/ 的未签名 LaunchAgent → 严重通知
  • 已签名的 Dropbox 更新 → 无通知(信息)
  • 带有 RunAtLoad 的 osascript → 高通知

MCP 服务器(Claude Code 集成)

MacPersistenceChecker 包含一个 MCP(模型上下文协议)服务器,允许 Claude Code、Claude Desktop 和其他兼容 MCP 的客户端查询持久性数据。

构建 MCP 服务器```bash

swift build --target MPCServer

root@kitploit:~
二进制文件创建于 `.build/debug/mpc-server`。

### 可用的 MCP 工具

| 工具 | 描述 |
|------|-------------|
| `get_current_state` | 获取所有当前持久化项目,可带可选过滤器 |
| `get_diff` | 获取与基线或特定快照之间的变化 |
| `get_summary` | 简洁概览,包含计数和主要威胁 |
| `get_item_details` | 通过标识符获取特定项目的完整详情 |
| `get_risk_analysis` | 汇总风险分析和建议 |
| `get_snapshots` | 列出可用快照及其元数据 |
| `compare_snapshots` | 比较两个快照的变化 |

### Claude Code 配置

添加到您的 Claude Code MCP 设置中(`~/.claude/claude_desktop_config.json` 或类似文件):```json
{
  "mcpServers": {
    "macpersistence": {
      "command": "/path/to/mpc-server",
      "args": []
    }
  }
}

示例查询

配置完成后,您可以向 Claude Code 询问:

  • "这台Mac上有哪些持久化项?"
  • "显示高风险得分的未签名项"
  • "自上次快照以来发生了什么变化?"
  • "分析 LaunchAgents 类别中项的风险"
  • "比较今天与昨天的快照"

MCP 服务器功能

  • 只读访问 MacPersistenceChecker 的 SQLite 数据库
  • 通过 stdio 使用 JSON-RPC 2.0 协议
  • 按类别、信任级别、风险评分、苹果签名状态过滤
  • 完整的快照和差异比较能力
  • 无需单独的 API 密钥(使用本地数据库)

快照与比较

  • 创建系统状态快照
  • 比较快照以检测随时间的变化
  • 追踪新增、移除或修改的持久化项
  • 识别可疑项何时被添加

取证 JSON 导出

面向安全管道的机器可读导出:

  • SIEM 集成 - 可被 Splunk、Elastic 等摄入
  • SOAR 兼容性 - 准备好用于自动化响应工作流
  • LLM 分析 - 用于 AI 驱动分析的结构化数据
  • IR 管道 - 兼容 OSINT 和事件响应工具

导出内容

  • 完整系统元数据(主机名、macOS 版本、硬件型号、序列号)
  • 所有持久化项及其完整分析
  • 风险评分、LOLBins、行为异常、意图不匹配、时效分析
  • MITRE ATT&CK 映射
  • 完整的取证时间线,包含 Unix 时间戳
  • 关键发现及建议

仅在扫描完成后按钮才可用。


隔离系统

安全地消除可疑的持久化项,无需永久删除:

隔离操作

  • 快速隔离 - 禁用持久化 + 阻止网络(推荐)
  • 仅禁用 - 从自动启动中移除,不阻止网络
  • 仅阻止网络 - 阻止网络访问,同时保持持久化激活

安全特性

  • 自动备份 - 在任何修改前保存原始 plist
  • 定时释放 - 在可配置的超时时间后自动恢复(默认 24 小时)
  • 手动释放 - 立即恢复被隔离的项
  • 操作日志 - 所有隔离操作的完整审计追踪

网络阻止

  • PF 防火墙规则阻止出站连接
  • 按可执行路径逐二进制阻止
  • 应用重启后仍生效

使用场景

  • 在调查期间隔离可疑项
  • 测试移除持久化是否会破坏功能
  • 临时禁用而不丢失配置

操作

  • 在 Finder 中显示 - 快速定位文件
  • 打开 Plist - 查看配置文件
  • 查看图形 - 每个项的图形可视化
  • 禁用/启用 - 安全禁用项(系统项需要管理员权限)
  • 隔离 - 隔离可疑项并自动备份
  • 导出 JSON - 导出用于 SIEM/SOAR/IR 的取证报告

截图

Main View

Item Details

Snapshot Comparison

Snapshot Comparison

Extended Scanners

Extended Scanners Settings

App Invasiveness

Menu Bar


从源码构建```bash

git clone https://github.com/Pinperepette/MacPersistenceChecker.git cd MacPersistenceChecker ./build.sh

root@kitploit:~
将 `MacPersistenceChecker.app` 复制到 `/Applications/`。

### 系统要求
- macOS 13.0+
- Xcode 15+ 或 Swift 5.9+

### 依赖项
- [GRDB.swift](https://github.com/groue/GRDB.swift) - SQLite 数据库

---

## 权限

需要 **完全磁盘访问权限** 才能扫描:
- `/Library/LaunchDaemons`
- 系统配置文件
- TCC 数据库
- Shell 启动文件

如果没有完全磁盘访问权限,部分项目可能不可见。

---

## 许可证

MIT 许可证 - 详见 [LICENSE](https://github.com/pinperepette/macpersistencechecker/blob/HEAD/LICENSE)。

## 作者

**pinperepette** - 2025

## Star 历史

<a href="https://www.star-history.com/?repos=Pinperepette%2FMacPersistenceChecker&type=date&legend=top-left">
 <picture>
   <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/chart?repos=Pinperepette/MacPersistenceChecker&type=date&theme=dark&legend=top-left" />
   <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/chart?repos=Pinperepette/MacPersistenceChecker&type=date&legend=top-left" />
   Star History Chart
 </picture>
</a>

---

*灵感来自 Mark Russinovich 开发的 Windows 版 [Autoruns](https://docs.microsoft.com/en-us/sysinternals/downloads/autoruns)*