被遗忘的EQUATION GROUP SUAVEEYEFUL FreeBSD软件植入工具
我在检查2017年ShadowBrokers泄露数据时注意到,当时泄露的EQUATION GROUP工具中有一个没有公开的参考资料/分析(至少据我所知)。因此,这里介绍了这个软件植入工具的功能和工作原理。该工具位于名为suaveeyeful_i386-unknown-mirapoint3.4.3
的目录中,揭示了许多有趣的细节。总结如下:
- SUAVEEYEFUL是一个针对FreeBSD和Linux的CGI软件植入工具
- SUAVEEYEFUL至少自2000年代初以来被用于监视中国外交部和日本早稻田研究大学的邮件流量
- 泄露的文件/操作针对MiraPoint邮件产品
- SUAVEEYEFUL在当时具有一些创新的TTP,如数据加密和无文件恶意软件
泄露的文件
在该目录中有几个不同的文件。它们是:
- bdes:FreeBSD bdes(使用DES加密/解密的命令行工具)的副本,基于FreeBSD bdes版本1.3.2.1(来自2000年9月22日),但于2003年在Linux上编译。
- decode-base64:使用MIME::Base64的简单Perl解码脚本。
- implant:SUAVEEYEFUL的ELF二进制软件植入组件,为FreeBSD版本4.3的i386构建(该版本于2001年4月发布)。
- implant.mg1.waseda.ac.jp:SUAVEEYEFUL的ELF二进制软件植入组件,用于针对日本早稻田研究大学的邮件网关(implant文件的变体)。
- opscript.se:用于在日本早稻田研究大学安装SUAVEEYEFUL(缩写为SE)软件植入工具的命令。
- se:SUAVEEYEFUL软件植入工具的客户端组件,用Bash编写。此副本硬编码了日本早稻田研究大学的目标。
- se.old:SUAVEEYEFUL软件植入工具客户端的先前版本,用Bash编写。此副本硬编码了中国外交部邮件网关的目标。
- uriescape:使用URI::Escape的简单Perl脚本。
实用程序(bdes、decode-base64和uriescape)与SUAVEEYEFUL捆绑在一起,因为它们内部使用。这确保了软件植入工具不依赖任何外部依赖(除了当时默认的核心系统实用程序,如ls、cat、telnet等)。
Shadow Brokers在suaveeyeful_i386-unknown-mirapoint3.4.3
目录下泄露的文件列表
目标
se.old客户端可能是操作员为其新目标调整的版本。这是由于内容不一致,使其看起来像是旧操作的草稿/编辑版本。一个残留的注释将mail.mfa.gov.cn(202.99.26.6)标识为其配置的SUAVEEYEFUL目标。
这是中国外交部(MFA)的邮件网关。即使到今天,这个IP地址(202.99.26.6)仍然指向中国外交部的邮件服务器。很难确定EQUATION GROUP何时使用SUAVEEYEFUL软件植入工具入侵此邮件服务器。完全基于构建时间,我们可以评估至少自2000年代初以来。
托管在mail.mfa.gov.cn上的当前网站
泄露目录中包含的大多数文件都是为另一个目标设计的。早稻田研究大学的邮件网关,根据其官方网站,“致力于进行解决世界问题并为社会更大利益做出贡献的前沿研究。非正统思维和智力好奇心是驱动早稻田研究的力量。”
se客户端配置了两个被入侵的早稻田邮件网关,两者都通过其内部IP地址从另一个被入侵的主机访问,仅通过其IP地址引用。因此,至少自2003年以来,早稻田基础设施中的至少3个系统被EQUATION GROUP入侵。
- mp450(10.1.2.208)
- mg1.waseda.ac.jp(10.9.4.15)
- 10.1.2.150 – 另一个被入侵的主机
顶级主机(mp450)是大学的MiraPoint 450(后来更名为RazorGate 450),一个电子邮件安全设备。另一个主机(mg1.waseda.ac.jp)是MiraPoint邮件网关。第三个主机仍然未知,但基于其IP范围(类似于mp450),我们可以推断它可能是位于大学DMZ网络段的系统。
SUAVEEYEFUL安装过程的简化可视化
在早稻田的MiraPoint服务器上安装SUAVEEYEFUL
这在opscript.se文件中有清晰描述,我们可以假设这是EQUATION GROUP操作员安装SUAVEEYEFUL软件植入工具的首批操作任务之一。以下是该过程:
- 将implant复制到
/var/www/data/help/apps/locale/ja_JP.utf-8/utilities/nph-help.cgi
文件 - 将nph-help.cgi的文件权限更改为555
- 将nph-help.cgi的所有权更改为“root”,组为“nobody”
- 使用touch -r确保文件nph-help.cgi以及
/var/www/data/help/apps/locale/ja_JP.utf-8/utilities/
目录下的任何内容都具有与合法的/var/www/data/help/apps/locale/ja_JP.utf-8/utilities/publish.html
MiraPoint web服务相同的时间戳 - 使用netcat开始在端口444上监听,使用Base64解码接收到的数据,并使用bdes使用硬编码密钥(在这种情况下为0x4790cae5ec154ccc)解密它们
- 从mp450的SUAVEEYEFUL植入工具连接回监听4444端口,并提供一些基本的系统信息(谁登录,列出文件/目录等)
SUAVEEYEFUL软件植入工具
SUAVEEYEFUL(或SE)有两个组件,客户端和服务器。服务器组件是一个非常简单的CGI程序,用C为FreeBSD编写,并在其帮助端点寻找输入。任何接收到的命令都将使用system()库调用执行(具有root权限,如前一节所示),只要它们匹配定义的格式(在本文后面描述)。
客户端确保所有请求都被正确请求、编码(使用Base64)和加密(使用DES)。客户端支持4个选项:
- -h:显示帮助消息
- -c:执行命令
- -i:输入目标(例如运行SE服务器组件的主机的URL)
- -k:用于DES加密的密钥
用于针对早稻田大学的se客户端截图
从这一点我们可以看出,对于加密材料的生成,EQUATION GROUP以以下方式使用系统的/dev/random:
|
|
然后使用#作为分隔符构建命令。要执行的主要命令使用以下方式构建:
|
|
这导致格式如下:
|
|
然后使用硬编码的DES密钥加密此结构,并通过uriescape工具传递,以确保接收MiraPoint web服务器不会出现解析问题。
除此之外,客户端还使用date +"%N"
命令获取纳秒级的日期,并使用匹配相同值的密钥加密。这是一个反分析/反检测技巧,因为如果没有这种非直观的添加,任何人都很难让SE软件植入工具执行任何命令。
生成三个值并将完整命令消息发送到运行SUAVEEYEFUL软件植入工具服务器组件的被入侵系统
最后,SE帮助消息显示了操作员可以使用的三个示例命令的说明。三个帮助命令执行以下任务:
- 通过以下方式安装无文件恶意软件:
- 创建隐藏目录(/tmp/.scsi)
- 使用curl从操作主机(10.1.2.150:5555/sendmail)下载一个欺骗性命名为sendmail的二进制文件
- 以root身份运行sendmail并连接到操作主机的不同端口(10.1.2.150:9999)
- 删除sendmail二进制文件,使其仅在内存中运行,而不是从文件系统运行
- 使用连接回方法执行命令:
- 运行w,然后ls -l和ls -l /tmp以获取登录用户和当前及/tmp目录的内容
- 加密和编码输出
- 将其发送到操作主机的监听端口(10.1.2.150:4444)
- 消息还指导操作员如何生成新的DES加密密钥
- 与#2相同,但没有Base64编码和DES加密
以下是完整的帮助消息:
|
|