1. 项目概述最近在分析一起针对乌克兰计算机应急响应小组(CERT-UA)的仿冒钓鱼攻击时发现攻击者使用了一种名为AGEWHEEZE的新型远程控制木马。这个木马最特别的地方在于它完全使用Go语言编写并通过WebSocket协议进行通信这使得它具有很强的隐蔽性和跨平台特性。作为一名长期从事恶意软件分析的安全研究员我发现AGEWHEEZE木马在技术实现上有很多值得研究的点。它不仅采用了现代编程语言和通信协议还在持久化、反检测等方面运用了不少新颖技巧。本文将详细剖析这个木马的工作原理并分享一些实用的防御建议。2. 攻击链分析2.1 钓鱼邮件投递攻击者首先会发送伪装成CERT-UA官方通知的钓鱼邮件。这些邮件通常会包含一个看似合法的附件或链接声称是安全警报或漏洞修复程序。邮件内容经过精心设计使用了正确的logo和格式甚至包含真实的CERT-UA联系信息具有很强的迷惑性。重要提示CERT-UA等安全机构通常不会通过邮件发送可执行文件或要求立即执行某些操作。遇到此类邮件时应先通过官方渠道核实。2.2 恶意载荷释放当受害者打开附件或点击链接后会下载一个看似无害的文件如PDF或Word文档。这个文件实际上包含恶意宏代码或利用漏洞的脚本最终会在系统上释放并执行AGEWHEEZE木马。木马通常会被放置在以下位置之一%AppData%\Microsoft\Windows\Start Menu\Programs\Startup%ProgramData%\Microsoft\Windows\Start Menu\Programs\Startup系统服务目录3. 木马技术细节3.1 通信机制AGEWHEEZE最显著的特点是使用WebSocket协议与C2服务器通信。相比传统的HTTP协议WebSocket具有以下优势保持长连接减少网络痕迹可以双向实时通信流量更容易伪装成正常Web通信能够穿透部分防火墙限制木马会首先尝试连接硬编码在二进制文件中的C2地址典型的URL格式如下wss://[恶意域名]/api/v1/ws连接建立后木马会发送系统信息并等待指令。所有通信数据都经过AES加密密钥硬编码在木马中。3.2 功能模块AGEWHEEZE实现了完整的远程控制功能主要包括文件管理上传、下载、删除、执行文件屏幕截图定期或按需截取屏幕键盘记录记录所有键盘输入进程管理枚举、终止进程命令执行执行任意系统命令持久化通过多种方式确保长期驻留3.3 反检测技术木马采用了多种反检测和反分析技术代码混淆使用garble等工具对Go代码进行混淆无文件执行部分版本会在内存中加载执行环境检测检查是否运行在虚拟机或沙箱中延迟执行首次运行后会休眠随机时间流量伪装WebSocket流量伪装成正常API通信4. 防御措施4.1 技术防护网络层防护部署能够解析WebSocket流量的IDS/IPS监控异常WebSocket连接特别是到不常见域名的连接限制出站WebSocket连接仅允许业务需要的域名终端防护启用应用程序白名单监控Go语言编译的可执行文件行为定期扫描启动项和服务邮件安全实施严格的邮件过滤策略对包含可执行文件的邮件进行标记或隔离培训员工识别钓鱼邮件4.2 检测方法可以通过以下指标检测AGEWHEEZE木马系统中出现异常的Go语言编译的可执行文件网络流量中出现异常的WebSocket连接进程行为符合远程控制木马特征如频繁截图、键盘记录等系统日志中出现可疑的持久化尝试5. 分析与清除5.1 样本分析分析AGEWHEEZE样本时可以采取以下步骤静态分析使用strings查看可打印字符串分析导入表识别使用的Go语言库查找硬编码的C2地址和加密密钥动态分析在受控环境中运行样本监控网络活动特别是WebSocket连接记录文件系统和注册表变更代码分析使用Ghidra或IDA Pro逆向分析重点关注网络通信和持久化逻辑5.2 清除步骤如果系统已经感染建议按以下步骤清除断开网络连接终止可疑进程删除持久化项启动项、服务等删除恶意文件检查系统关键位置是否被修改更改所有可能泄露的凭据6. 总结与建议AGEWHEEZE木马展示了现代恶意软件的几个发展趋势使用新兴编程语言如Go提高跨平台能力采用现代协议如WebSocket增强隐蔽性结合多种反检测技术延长驻留时间对于防御方来说需要加强对非传统语言编写的恶意软件的检测能力深入理解现代协议在恶意软件中的应用建立多层次的防御体系定期进行安全意识培训最后分享一个实用技巧在分析Go语言编写的恶意软件时可以重点关注runtime.main和runtime.main_main函数这通常是程序的主要逻辑入口点。