用途:面向 macOS 的进程注入技术参考手册,用于在运行中或启动时的进程中注入代码,并给出各向量的前提条件与限制。
主要能力:
- DYLD_INSERT_LIBRARIES 注入:通过环境变量强制动态链接器预加载 dylib。仅对非加固运行时、或带 com.apple.security.cs.allow-dyld-environment-variables 权限的二进制有效;加固运行时、SIP 保护的系统二进制、SUID/SGID 及启用 App Sandbox 的目标会剥离该环境变量。
- dylib 劫持:利用加载顺序,包括 LC_LOAD_WEAK_DYLIB 缺失库、@rpath 可写目录、以及用代理 dylib 转发导出符号。可用 otool -L / -l、nm -gU 枚举依赖与导出。
- XPC 利用:发现 .xpc 服务与 LaunchDaemons 的 MachServices;针对仅按 PID 校验的服务存在 PID 重用竞态;审计令牌、代码签名、权限校验则不可用此方式。
- Mach 端口:task_for_pid 需 root 且目标非 SIP 保护,可获得内存读写与线程注入;另有端口命名空间与 bootstrap 服务名抢占。
- MIG 滥用:分析 _subsystem 与分发例程,关注缺失审计令牌校验、类型混淆、端口生命周期与 OOL 内存问题。
- Electron/Chromium:ELECTRON_RUN_AS_NODE、--inspect/--inspect-brk、NODE_OPTIONS 预加载;现代应用可用 fuses(RunAsNode、EnableNodeCliInspectArguments、EnableNodeOptionsEnvironmentVariable、OnlyLoadAppFromAsar)关闭这些面,可用 npx @electron/fuses read 检查。
- Apple Events:在具备自动化权限时用 osascript 或 JXA 注入。
使用方式:按决策树选择向量,先判断目标是否 Electron、是否具备 dylib 环境变量权限、是否存在缺失/弱 dylib、是否暴露 XPC、是否有 root、是否可用 Apple Events。
限制:多数向量受加固运行时、SIP、沙箱与权限约束;SIP 保护目标需先绕过 SIP。检测面包括进程环境、vmmap/DYLD_PRINT_LIBRARIES、Endpoint Security XPC 事件、lsof -i :9229、统一日志与 codesign 校验。