俄罗斯僵尸网络Cyclops Blink攻击华硕路由器

俄罗斯僵尸网络Cyclops Blink攻击华硕路由器

本报告讨论了这种针对华硕路由器的 Cyclops Blink 恶意软件变种的技术能力,并包含了 Cyclops Blink 僵尸网络的 150 多个当前和历史命令和控制 (C&C) 服务器的列表。

Cyclops Blink 是一种先进的模块化僵尸网络,据报道与Sandworm或 Voodoo Bear 高级持续威胁 (APT) 组织有关,根据一项分析,它最近被用于攻击WatchGuard Firebox 设备由英国国家网络安全中心 (NCSC) 执行。我们获得了针对华硕路由器的 Cyclops Blink 恶意软件系列的变种。本报告讨论了这个 Cyclops Blink 恶意软件变种的技术能力,并包括了 Cyclops Blink 僵尸网络的 150 多个当前和历史命令和控制 (C&C) 服务器的列表。此列表旨在帮助网络安全防御者在其网络中搜索受影响的设备并开始修复过程。我们已就我们的调查与华硕联系,他们创建了一份安全公告,其中包括一份安全清单以帮助防止 Cyclops Blink 攻击,以及一份受影响的华硕产品列表。

我们的数据还显示,虽然 Cyclops Blink 是一个国家支持的僵尸网络,但其 C&C 服务器和机器人会影响不属于关键组织的 WatchGuard Firebox 和华硕设备,或者那些对经济、政治或军事间谍活动具有明显价值的设备。因此,我们认为 Cyclops Blink 僵尸网络的主要目的可能是为进一步攻击高价值目标构建基础设施。Cyclops Blink 至少从 2019 年 6 月就已经存在,其相当多的 C&C 服务器和机器人活跃了长达三年左右。  

Sandworm APT 组织被认为创建了 Cyclops Blink 和 VPNFilter 物联网 (IoT) 僵尸网络。VPNFilter 于2018 年首次发现,针对路由器和存储设备。据报道,它还感染了数十万台设备。2021 年,趋势科技发布了 VPNFilter 的技术分析,其中讨论了僵尸网络在发现两年后如何继续影响受感染的系统。Sandworm 还对许多备受瞩目的攻击负责,包括 2015 年和 2016 年对乌克兰电网的攻击、2017 年NotPetya 攻击、2017 年法国总统竞选、2018 年奥运会毁灭者对冬季奥运会的袭击,以及 2018 年针对禁止化学武器组织 (OPCW) 的行动。 

Cyclops Blink 恶意软件分析 

Cyclops Blink 是用 C 语言编写的模块化恶意软件。在其核心组件中,恶意软件首先要做的是检查其可执行文件名是否以“[k”开头。如果没有,它将执行以下例程: 

  1. 它将 stdout 和 stderr 文件描述符重定向到 /dev/null。 
  2. 它为 SIGTERM、SIGINT、SIGBUS、SIGPIPE 和 SIGIO 信号设置默认处理程序。 
  3. 它使用新的“[ktest]”进程名称重新加载自己。 

然后它会等待 37 秒,然后再设置其硬编码参数。这些包括硬编码的 C&C 服务器和应该用于与 C&C 服务器通信的时间间隔。 

它还通过调用 pipe() 函数来创建用于进程间通信 (IPC) 的管道,以获取用于读取和写入数据的两个文件描述符。它还通过使用 ioctl() 为写入文件描述符启用非阻塞 I/O。 

之后,将在内存中创建一个新的数据包,然后将其发送到 C&C 服务器。本分析稍后将介绍此通信的详细信息。 

对于用于与 C&C 服务器通信的每个硬编码 TCP 端口,恶意软件会在 Netfilter(Linux 内核防火墙)中创建一个规则,使用libiptc 1 中的 iptc_insert_entry() 函数来允许与其进行输出通信。规则具有以下参数: 

Protocol: TCP

Chain: filter

Table: OUTPUT

Action: ACCEPT

Destination ports: 636, 994, and 995

由于未知原因,恶意软件删除了上述规则并再次创建它们,这次是通过 system() 函数使用 iptables 命令。命令如下: 

iptables -D OUTPUT -p tcp --dport %d -j ACCEPT 
iptables -I OUTPUT -p tcp --dport %d -j ACCEPT

然后初始化 OpenSSL 库,核心组件继续初始化硬编码模块。 

模块初始化 

在这部分,核心组件初始化模块。与模块的通信是通过管道执行的。对于每个硬编码的模块,恶意软件会创建两个管道,然后在它们自己的子进程中执行它们。 

俄罗斯僵尸网络Cyclops Blink攻击华硕路由器
图 1. 初始化模块的函数

在图 1 中,我们推断出以下 mod_t 结构:

俄罗斯僵尸网络Cyclops Blink攻击华硕路由器
图 2. 推断的 mod_t 结构;
最后一个参数未知。

参数

然后初始化参数。它们由一个 592 字节的结构组成,其中包含通过管道发送到模块的基本信息。这些信息包括:

  • 一个“<p:”字符串头
  • 核心部件的管道
  • 所有 C&C IP 地址和端口
  • 本地 IP 地址
  • C&C服务器通信的时间间隔
  • 当下一个要发送到 C&C 服务器的数据包是
  • 主进程PID
  • 硬编码 ID(我们看到 0xA08F078B、0xBD0A5B36 和 0xA244E5E2)
  • 参数被推送到模块,这些模块e 在此时初始化。

C&C 通讯

从模块获取数据后,核心组件启动加密程序,在将数据发送到 C&C 服务器之前对数据进行加密。

加密

Cyclops Blink 使用动态加载的受感染设备中应该可用的 OpenSSL 功能对数据进行加密。 

数据使用 AES-256 在密码块链接 (CBC) 模式下使用随机生成的 256 位密钥和 128 位初始化向量 (IV) 进行加密。然后使用每个样本唯一的硬编码 RSA-2560(320 位)公钥对其进行加密。

恶意软件作者决定使用 EVP_SealInit() 函数。此函数执行所有上述加密步骤,包括随机 AES 密钥和 IV 生成。

C&C服务器必须有相应的RSA私钥才能解密数据。

加密后,如果数据包总长度大于 98,303 字节,则发送数据包。

数据传输

为了向 C&C 服务器发送数据,核心组件在随机 TCP 端口上与随机选择的 C&C 服务器执行 TLS 握手,两者都来自硬编码列表。

选择 IP 地址和 TCP 端口对后,核心组件创建一个子进程来执行通信。子进程将连接到 C&C 服务器并将四个字节写入 SSL 套接字。这四个字节是它要发送的数据包大小。

俄罗斯僵尸网络Cyclops Blink攻击华硕路由器
图 3. 子进程将四个字节写入 SSL 套接字。

服务器必须回复一个准确的四字节答案,即受害者的 IPv4 地址。

然后将 10 个字节写入核心组件管道。数据遵循特定格式。例如: 

数据包长度目标模块命令数据(受害者的 IPv4 地址)
00 00 00 0a0007c0 a8 00 01

然后核心组件从 C&C 服务器接收更多数据。这一次,它希望使用硬编码的 RSA-2560 公钥来解密加密的数据包。 

恶意软件需要一个响应,其中前四个字节是数据包的大小,后跟加密数据。 

俄罗斯僵尸网络Cyclops Blink攻击华硕路由器
图 4. 从 C&C 服务器接收和解密数据的核心组件代码

如果收到某些内容,则将其解密并写入主管道。对于解密,恶意软件使用 RSA_public_decrypt() 函数,该函数利用 RSA 加密算法的“可逆性”对使用相应私钥加密的数据进行解密。

最后,包含下次发送数据包时间的变量被更新,所有参数再次发送到模块。这是因为核心组件可以从 C&C 服务器接收新参数。

命令

从 C&C 服务器接收的数据包括对核心组件本身或其模块之一的命令。

首先,核心组件将支持的命令发送到 C&C 服务器,然后进入它期望其中一个命令的循环。

如果命令以核心组件为目标,它可以是以下之一: 

命令编号动作
0终止程序
1绕过数据发送间隔,立即向 C&C 服务器发送数据
2将新的 C&C 服务器添加到内存列表中
3设置发送下一个数据包到 C&C 服务器的时间
4设置发送下一个数据包到 C&C 服务器的时间
5添加一个新模块(应该在命令之后收到一个 ELF 文件)
6重新加载恶意软件
7设置本地 IP 地址参数
8设置新的工作人员 ID
9设置一个未知的字节值
10将配置重新发送到所有正在运行的模块

模块

华硕 (0x38) 

该模块可以读取和写入设备的闪存。这些设备使用闪存来存储操作系统、配置和文件系统中的所有文件。我们的研究是在 RT-AC68U 上进行的,但其他华硕路由器如 RT-AC56U 也可能受到影响。然而,重要的是要注意,由于恶意软件本质上是模块化的,因此可以轻松地重新编译以针对任何其他设备。我们获得的样本在本报告中提到的条件下工作,但恶意软件攻击者似乎已准备好针对任何其他路由器型号或品牌。事实上,这就是他们对 WatchGuard 所做的——它是相同的代码,但它已经为品牌重新编译。 

首先,模块检查内容 /proc/mtd 文件,该文件提供有关设备的内存技术设备 (MTD) 子系统的一般信息。MTD 提供了一个抽象层来访问设备的闪存。

恶意软件查找字符串“linux”和“rootfs”并使用类似 printf() 的格式读取它:

俄罗斯僵尸网络Cyclops Blink攻击华硕路由器
图 5. 模块查找“linux”和“rootfs”字符串

推断出的mdt_data_t结构如下:

俄罗斯僵尸网络Cyclops Blink攻击华硕路由器
图 6. mtd_data_t 结构

数据被读取到这个结构中。Asus RT-AC68U 设备的 /proc/mtd 内容如下:

俄罗斯僵尸网络Cyclops Blink攻击华硕路由器
图 7. 来自 Asus RT-AC68U 路由器的典型 /proc/mtd

因此,对于这里的案例,恶意软件会打开 /dev/mtd2,这是存储 Linux 内核映像的分区。为什么恶意软件作者决定读取“linux”或“rootfs”分区尚不清楚。根据我们的知识,它们有完全不同的目的。第一个存储操作系统,第二个存储程序的关键文件,例如可执行文件、数据和库。

Cyclops Blink 从闪存中读取 80 个字节,写入主管道,然后进入循环等待命令替换分区内容:

俄罗斯僵尸网络Cyclops Blink攻击华硕路由器
图 8. Asus 模块主循环

如果来自核心组件的数据以“<p:”开头,则表示它是该模块的参数,80字节将写入闪存,有效替换其内容。 

写入由 j_save_data() 函数完成。它首先通过 ioctl() 调用正确擦除 NAND 擦除块,然后将新内容写入它们,如下图所示:

俄罗斯僵尸网络Cyclops Blink攻击华硕路由器
图 9. 用于写入原始闪存的 Cyclops Blink Asus 模块代码

由于闪存内容是永久性的,因此该模块可用于建立持久性和恢复出厂设置。 

虽然它不能用作归属证明,但前面的代码让我们想起了 VPNFilter 进程的第三阶段代码中的一个例程,称为“dstr”,旨在“破坏”受感染的设备。除了删除许多重要文件甚至尝试删除整个根文件系统之外,这个特定的 VPNFilter 阶段还会将许多 0xff 字节写入原始闪存: 

俄罗斯僵尸网络Cyclops Blink攻击华硕路由器
图 10.用于写入原始闪存的 VPNFilter “dstr”第三阶段代码

系统侦察 (0x08)

该模块负责将信息从受感染设备发送到 C&C 服务器。以下数据来自受感染的设备:

  • 模块通过调用 uname() 函数和 /etc/issue 文件获得的 Linux 版本
  • 有关设备内存消耗的信息,通过调用 sysinfo() 函数获取
  • SSD 存储信息,通过调用 statvfs() 函数获取
    • 以下文件的内容:
  • /etc/passwd
  • /etc/group
  •  /proc/mounts
  •  /proc/partitions
  • 有关网络接口的信息,它通过使用 SIOCGIFHWADDR 和 SIOCGIFADDR 调用 if_nameindex() 和 iotctl() 函数来获取命令。

文件下载 (0x0f)

该模块可以从互联网上下载文件。使用 DNS over HTTPS (DoH) 执行 DNS 解析。恶意软件使用以下标头向 Google DNS 服务器 (8.8.8.8) 发送 HTTP POST 请求:

俄罗斯僵尸网络Cyclops Blink攻击华硕路由器
图 11. 通过 SSL 进行 DNS 解析的 HTTP POST 请求

该模块似乎是 NCSC 报告的 Cyclops Blink 变体使用的同一模块 (0x0f) 的早期版本。模块之间的主要区别如下:

  • 该模块没有上传功能。
  • 控制标志中的 0x1 位在此模块中用于指定是否应通过 HTT 完成下载PS。

基础设施

我们已经能够确定 Cyclops Blink 僵尸网络从受感染的 WatchGuard 设备和华硕路由器中感染了路由器。这些受感染的设备会定期连接到 C&C 服务器,这些服务器本身托管在受感染的 WatchGuard 设备上。我们有证据表明,除了华硕和 WatchGuard 之外,至少有一家供应商的路由器也连接到了 Cyclops Blink C&C,但到目前为止,我们还无法收集该路由器品牌的恶意软件样本。  

Cyclops Blink 僵尸网络已经存在了一段时间。使用互联网范围扫描的历史数据和 SSL 证书数据,Cyclops Blink 很可能至少可以追溯到 2019 年 6 月。自 2019 年 6 月以来,该攻击者已颁发了 50 多个 SSL 证书,用于 WatchGuard C&C 上各种 TCP 端口(据我们所知,使用了以下 TCP 端口:636、989、990、994、995、3269 和 8443)。 

在附录 A 中,为了网络防御者的利益,我们列出了 Cyclops Blink 使用的活动和非活动 C&C。我们观察到,一些 WatchGuard 和 Asus 机器人从未清理过,因为这些路由器仍会定期尝试连接到受保护或脱机的旧 C&C。  

俄罗斯僵尸网络Cyclops Blink攻击华硕路由器
图 12. 为 Cyclops Blink C&C 颁发的多个 SSL 证书的时间线

我们的调查显示,全世界有 200 多名 Cyclops Blink 受害者。受感染的 WatchGuard 设备和华硕路由器的典型国家是美国、印度、意大利、加拿大以及包括俄罗斯在内的一长串其他国家。应该指出的是,这些受害者似乎不是经济、军事或政治间谍活动的明显有价值的目标。例如,一些实时 C&C 托管在欧洲的一家律师事务所、一家为南欧的牙医生产医疗设备的中型公司和美国的一家管道工使用的 WatchGuard 设备上。这与其他 APT 组织(例如Pawn Storm)执行的暴力攻击数量不断增加是一致的,该组织已经破坏了许多资产,例如目标的电子邮件地址和电子邮件服务器,这些目标通常与 Pawn Storm 的目标不一致。就像典当风暴一样,沙虫正在用宽网捕鱼或寻求更大规模地损害资产。 

俄罗斯僵尸网络Cyclops Blink攻击华硕路由器
图 13. Cyclops Blink C&C 已存在的月数;
需要注意的是,报告期间的实时 C&C 已包括在内。

结论和安全建议

在过去几年中,物联网攻击在全球范围内不断升级,互联网路由器一直是主要目标之一。这些设备受到攻击者的青睐有几个原因——修补频率低、缺乏安全软件以及防御者的可见性有限。结合起来,这些允许我们称之为“永恒的僵尸网络”的可能性。一旦物联网设备感染了恶意软件,攻击者就可以不受限制地访问互联网,下载和部署更多阶段的恶意软件,以进行侦察、间谍活动、代理或攻击者想做的任何其他事情。大多数物联网设备的底层操作系统是 Linux,许多强大的系统工具也使用它。这可以允许攻击者添加他们可能需要完成攻击的任何其他内容。 

NCSC 报告涵盖了针对特定供应商的恶意软件,即 WatchGuard。根据我们之前对 VPNFilter 的分析,我们假设受到该组攻击的厂商较多。VPNFilter的目标供应商是华硕、D-Link、华为、Linksys、MikroTik、Netgear、QNAP、TP-Link、Ubiquiti、UPVEL 和 ZDE。在 Cyclops Blink 的案例中,我们收到了针对华硕路由器的样本,这些样本之前没有被报道过。我们分析的华硕 Cyclops Blink 恶意软件版本与之前讨论的 WatchGuard 版本相比存在一些差异。我们分析的样本是为 ARM 编译的,并与uClibc动态链接. 它们还包含一个专门针对华硕路由器的模块。华硕可能只是目前 Cyclops Blink 目标的供应商之一。我们有证据表明其他路由器也受到影响,但截至报告时,我们无法为 WatchGuard 和华硕以外的路由器收集 Cyclops Blink 恶意软件样本。调查 Cyclops Blinks 参与者正在使用的恶意软件和基础设施,可以为我们提供一些关于可能受到影响的其他供应商以及该恶意软件的广泛传播范围的线索。通过分享这一额外的技术观察,我们旨在帮助网络防御者以及那些可能成为 APT 组织(如 Sandworm)目标的人,更全面地了解 Cyclops Blink 活动。 

根据我们的观察,我们坚信有更多来自其他供应商的目标设备。这种恶意软件本质上是模块化的,很可能每个供应商都有不同的模块和架构,这些都是 Cyclops Blink 参与者深思熟虑的。此外,该僵尸网络的目的仍不清楚:它是否旨在用于分布式拒绝服务 (DDoS) 攻击、间谍活动或代理网络仍有待观察。但显而易见的是,Cyclops Blink 是一种高级恶意软件,它专注于持久性以及在域沉洞尝试和基础设施被拆除时幸存下来的能力。该恶意软件背后的 APT 组织从其 VPNFilter 活动中吸取了教训,并继续攻击路由器等物联网设备。 

大流行期间的在家工作 (WFH) 时代,间谍活动可能是物联网设备仍然是高级攻击者的主要目标的部分原因。受到攻击的路由器越多,攻击者可以使用的强大数据收集来源以及进一步攻击的途径就越多。拥有分布式基础设施也使网络安全团队更难以消除整个攻击。这也是为什么在两年多之后,仍然有活动的 VPNFilter 主机出现的原因。  

组织可以通过使用强密码和重新检查其安全措施来保护自己免受 Cyclops Blink 攻击。确保仅公开绝对需要暴露于互联网的服务也很重要。对这些服务的访问应该受到限制,这可以通过配置可以远程访问这些服务的虚拟专用网络 (VPN) 来实现。设置提醒以检查路由器、相机、网络附加存储 (NAS) 设备和其他 IoT 设备等设备是否已打补丁或其他情况也很重要。  

如果怀疑某个组织的设备感染了 Cyclops Blink,最好换个新路由器。执行出厂重置可能会清除组织的配置,但不会清除攻击者修改的底层操作系统。如果特定供应商的固件更新可以解决 Cyclops Blink 攻击或系统中的任何其他弱点,组织应尽快应用这些更新。但是,在某些情况下,设备可能是报废产品,将不再从其供应商处接收更新。在这种情况下,普通用户将无法修复 Cyclops Blink 感染。

虽然我们在本报告中分析的 Cyclops Blink 恶意软件变种在本质上很复杂,但对于创建它的 Sandworm 组织来说,有一点证明是明确无误的:Sandworm 是一个顽固而复杂的组织,其动机显然与那些预计主要是出于经济动机的群体。Sandworm 之前备受瞩目的受害者及其攻击对这些组织的重大影响尤其令人担忧——对于一个能够迅速从过去的错误中吸取教训、一次又一次地强大起来并且国际影响似乎微乎其微的组织来说更是如此。

可以在本附录中找到侵害指标 (IOC) 。

侵害指标(IOCs)

SHA-256ccae8f66ef880ac02b9affdeaca07a7ddb9428b4f683fd55b35ea3ec20ead5ca
ID0xA08F078B
RSA-2560 Public Key—–BEGIN PUBLIC KEY—–
MIIBYjANBgkqhkiG9w0BAQEFAAOCAU8AMIIBSgKCAUEArDTQ3wSSUvkK/BdV7rQV
jjmo0tRcvuSz6uQWOzNW2jdV5ngHfJA2JD+4nKuygMH5u1Rw0oL0bPpTtheV3Fhk
SEaQ4E9o19bpLq/NRhsLblBD8yXOHnKMhvu+kkmSFSFkI5uBci15Uz746ret4lcF
L1hSE3pIVPbOr7JWXMlBToXnQmOq9ZiZwfi16YCwSoX7hGPG1egm+RAYAzPm9WgO
BrFqUMara2thAietFyGVqN6fO1DvJoXh4AzTznsYwa8sBRJy5YrhziMcWw8zK/k2
vLMHqD+tc8sp4bt4bCaI/SwHFzKctP7YBbfhyX4P08/6leZ4jNgcbDYrhzxuAmXv
hwfI93WAQ76IWyt994nWLOMs1RCDGrFOno6Q9z14QRQ8U8xEc4ZNEyBlTvLnH3JS
kHmC5zQMhYYzSUY4HPMepasCAwEAAQ==
—–END PUBLIC KEY—–
Telfhasht1f06196ca4c3bce13c522d62c7ce53f1a41465406b463ed005ef8f2684e5356aa18eb79
SHA-2567923585e8e6117eb6b3fb4a12871bc31b81d54a7ed297927bf72715c45c41da6
ID0xBD0A5B36
RSA-2560 Public Key—–BEGIN PUBLIC KEY—–
MIIBYjANBgkqhkiG9w0BAQEFAAOCAU8AMIIBSgKCAUEA2rhl3vp5nrf1oHP+FIKq
whdLKkCO8bBjmZ6t56jw4k2NU4hA/9lExmfT6dZrkmAPltr3DZ2cBmRK6iYaUBHI
foOum16m9Q9fMtcKnsbMDCJ1NyeBB7XcA7hLiPU6Kccw1i+XqNgb/bZl21Cr2bSE
DLSKXxEGGwlX5sUPxM5gPh86DaEdOkgsm74ALEUfmclF6xHRhNeKOehFdZ4ZUf17
r0kM8kyNBZyq56mxWNed0bvzhlwG9/AE2QU8n43q+jAldenhbFS/WapF/sNLPNRs
euRdG8JT13axJnbKnFifRRJkiT4L1L8Nau7L8f1SQ4NUQL1m/uHShM9J4ssIcMWG
Zl+lT+cyGKO9COE60NrgoW3X0DCVfT3lvpiNnP5/rxB2LKddh7qR7mU8JUaWNmDQ
nXFAguFHiCOqq/YAFr3peO0CAwEAAQ==
—–END PUBLIC KEY—–
Telfhasht1f06196ca4c3bce13c522d62c7ce53f1a41465406b463ed005ef8f2684e5356aa18eb79

Cyclops Blink Command-and-Control (C&C) 服务器:

IP地址:国家

1[.]9[.]85[.]247   MY
1[.]9[.]85[.]248   MY
1[.]9[.]85[.]249   MY
1[.]9[.]85[.]252   MY
1[.]9[.]85[.]253   MY
1[.]9[.]85[.]254   MY
2[.]192[.]0[.]94   IT
2[.]192[.]1[.]120   IT
2[.]192[.]6[.]144   IT
2[.]192[.]67[.]0   IT
2[.]192[.]7[.]244   IT
2[.]192[.]71[.]115   IT
2[.]192[.]74[.]124   IT
2[.]229[.]24[.]16   IT
2[.]229[.]32[.]106   IT
2[.]230[.]110[.]137   IT
12[.]34[.]226[.]34   US
12[.]172[.]90[.]242   US
12[.]191[.]39[.]162   US
12[.]191[.]39[.]163   US
12[.]191[.]39[.]164   US
12[.]191[.]39[.]165   US
12[.]191[.]39[.]166   US
24[.]39[.]220[.]218   US
24[.]96[.]94[.]11   US
24[.]199[.]247[.]222   US
24[.]227[.]240[.]210   US
24[.]227[.]240[.]211   US
37[.]26[.]183[.]94   FR
37[.]71[.]147[.]186   FR
37[.]99[.]163[.]162   SA
37[.]99[.]163[.]163   SA
37[.]99[.]163[.]164   SA
37[.]99[.]163[.]165   SA
37[.]99[.]163[.]166   SA
41[.]142[.]240[.]197   MA
50[.]192[.]49[.]210   US
50[.]196[.]104[.]201   US
50[.]243[.]3[.]153   US
50[.]243[.]3[.]154   US
50[.]243[.]3[.]155   US
50[.]243[.]3[.]156   US
50[.]243[.]3[.]157   US
50[.]255[.]126[.]65   US
65[.]183[.]166[.]218   US
65[.]183[.]166[.]219   US
65[.]183[.]166[.]220   US
65[.]183[.]166[.]222   US
69[.]54[.]25[.]34   US
70[.]62[.]153[.]174   US
70[.]89[.]246[.]33   US
70[.]89[.]246[.]34   US
70[.]89[.]246[.]35   US
70[.]89[.]246[.]36   US
70[.]89[.]246[.]37   US
70[.]91[.]93[.]133   US
72[.]68[.]69[.]63   US
78[.]134[.]89[.]167   IT
79[.]11[.]46[.]30   IT
80[.]15[.]113[.]188   FR
80[.]118[.]6[.]90   FR
80[.]153[.]75[.]103   DE
80[.]155[.]38[.]210   DE
80[.]155[.]38[.]211   DE
80[.]155[.]38[.]212   DE
80[.]155[.]38[.]213   DE
80[.]155[.]38[.]214   DE
81[.]4[.]177[.]114   CY
81[.]4[.]177[.]115   CY
81[.]4[.]177[.]116   CY
81[.]4[.]177[.]117   CY
81[.]4[.]177[.]118   CY
82[.]198[.]72[.]201   DE
82[.]62[.]143[.]41   IT
87[.]139[.]213[.]76   DE
87[.]193[.]135[.]123   DE
90[.]63[.]245[.]175   FR
90[.]85[.]224[.]121   FR
90[.]85[.]224[.]122   FR
90[.]85[.]224[.]123   FR
90[.]85[.]224[.]124   FR
90[.]85[.]224[.]125   FR
93[.]51[.]177[.]66   IT
93[.]51[.]177[.]67   IT
93[.]51[.]177[.]68   IT
93[.]51[.]177[.]69   IT
93[.]51[.]177[.]70   IT
96[.]67[.]145[.]115   US
96[.]80[.]68[.]193   US
96[.]80[.]68[.]194   US
96[.]80[.]68[.]195   US
96[.]80[.]68[.]196   US
96[.]80[.]68[.]197   US
97[.]87[.]91[.]211   US
97[.]87[.]91[.]212   US
97[.]87[.]91[.]213   US
97[.]87[.]91[.]214   US
97[.]87[.]91[.]215   US
97[.]87[.]91[.]216   US
97[.]87[.]91[.]217   US
97[.]87[.]91[.]218   US
97[.]87[.]91[.]219   US
100[.]42[.]249[.]124   CA
100[.]43[.]220[.]234   US
100[.]43[.]220[.]235   US
100[.]43[.]220[.]236   US
100[.]43[.]220[.]237   US
100[.]43[.]220[.]238   US
102[.]50[.]244[.]205   MA
105[.]157[.]69[.]243   MA
105[.]159[.]248[.]137   MA
109[.]192[.]30[.]125   DE
137[.]103[.]44[.]146   US
148[.]76[.]89[.]2   US
148[.]76[.]89[.]3   US
148[.]76[.]89[.]4   US
148[.]76[.]89[.]5   US
148[.]76[.]89[.]6   US
151[.]0[.]169[.]240   IT
151[.]0[.]169[.]241   IT
151[.]0[.]169[.]242   IT
151[.]0[.]169[.]243   IT
151[.]0[.]169[.]244   IT
151[.]0[.]169[.]245   IT
151[.]0[.]169[.]246   IT
151[.]0[.]169[.]247   IT
151[.]0[.]169[.]250   IT
151[.]0[.]185[.]146   IT
151[.]0[.]185[.]147   IT
151[.]0[.]185[.]148   IT
151[.]0[.]185[.]149   IT
151[.]0[.]185[.]150   IT
151[.]84[.]220[.]205   IT
156[.]67[.]22[.]130   IT
162[.]17[.]254[.]17   US
162[.]226[.]120[.]185   US
162[.]226[.]120[.]186   US
162[.]226[.]120[.]187   US
162[.]226[.]120[.]188   US
162[.]226[.]120[.]189   US
178[.]251[.]78[.]84   IT
178[.]251[.]78[.]85   IT
178[.]251[.]78[.]86   IT
182[.]73[.]50[.]114   IN
182[.]73[.]50[.]115   IN
183[.]171[.]8[.]8   MY
184[.]185[.]80[.]174   US
185[.]82[.]169[.]99   IT
185[.]82[.]169[.]99   IT
185[.]198[.]198[.]254   TR
188[.]125[.]98[.]34   IT
188[.]125[.]98[.]42   IT
188[.]125[.]98[.]43   IT
188[.]125[.]98[.]45   IT
188[.]152[.]254[.]170   IT
190[.]5[.]142[.]154   SV
190[.]5[.]142[.]155   SV
194[.]219[.]4[.]77   GR
194[.]243[.]24[.]214   IT
198[.]0[.]120[.]242   US
198[.]0[.]120[.]243   US
205[.]237[.]46[.]215   CA
208[.]81[.]37[.]50   US
208[.]81[.]37[.]55   US
208[.]81[.]37[.]56   US
208[.]81[.]37[.]57   US
208[.]81[.]37[.]58   US
208[.]81[.]37[.]59   US
208[.]81[.]37[.]60   US
208[.]81[.]37[.]61   US
209[.]33[.]154[.]42   US
209[.]33[.]154[.]43   US
209[.]33[.]154[.]44   US
209[.]33[.]154[.]45   US
209[.]33[.]154[.]46   US
209[.]162[.]240[.]245   CA
209[.]181[.]47[.]54   US
212[.]31[.]113[.]18   CY
212[.]103[.]208[.]182   IT
212[.]103[.]222[.]218   IT
212[.]202[.]147[.]10   DE
212[.]234[.]179[.]113   FR
213[.]166[.]202[.]194   FR
216[.]211[.]37[.]59   CA
217[.]57[.]78[.]18   IT
217[.]57[.]80[.]18   IT
217[.]141[.]177[.]210   IT
218[.]161[.]2[.]56   TW

TCP端口

636
989
990
992
994
995
3269
8443

Cyclops Blink C&Cs的SSL证书

SHA-1 SSL指纹证书:颁发日期:过期时间


032b81932632de35c638fb3a162e61a859ec96a7 6/13/19 6/10/29
1d78109c682633a692d97e3a0e445ac346204eb4 6/13/19 6/10/29
3438ba29aa7326c06e2d0d1fdf4677fc3f890579 6/13/19 6/10/29
3a938bf9cdb34a50b10227e1452b3a2382f1cfbf 6/13/19 6/10/29
5dde5b3c50e897fa98daff8fe6bb90d0bccf7410 6/13/19 6/10/29
645b4017bb86b3cd9adf87d78b6c2cf32257332a 6/13/19 6/10/29
9749568682af219c4a7edc3f1f5e077fea3b3199 6/13/19 6/10/29
9ae317167849c02294b1d1f5cc42a26d1e112a0a 6/13/19 6/10/29
a2850e272e78d4ec72c3997593696a9201e6ea3a 6/13/19 6/10/29
fc6f3f7343bd028f7e9aefd5fc239a4456e08a24 6/13/19 6/10/29
341fba1927b3367bb562e2561047cca1b6e10355 11/6/19 11/3/29
97e07c31ae997c73d0bd5b989c4d457ec43222fe 11/6/19 11/3/29
c37c2e56aff660b1445105de510506c3a648b679 11/6/19 11/3/29
fe4aaacdf2d36691ca4065f59ea4103d73797830 11/6/19 11/3/29
78c911793dcd9011f99ffacd145fc31a4b8aed47 11/7/19 11/4/29
3781d0b7084bb8491b1c05f325252aebd0f41c86 11/20/19 11/17/29
3a243509406a802a25cb54b8c91f760a7818b053 11/20/19 11/17/29
561ba51b42834e4117caa2ccacc316f8842fdf2d 11/20/19 11/17/29
59d414fda0be25c2cc62c23f0cf73e992699e3d2 11/20/19 11/17/29
6a862edfafe169621fd0205ac4cdfb75e8d0237b 11/20/19 11/17/29a10eeeb0e26224d330668ec0c17d71f0e45330df 11/20/19 11/17/29
2dbeb423407a5e465b3150c5cdc5037fe08f918c 1/10/20 1/7/30
dbea1a0ac979df94f04431e9a8b10a63d7881b6c 1/10/20 1/7/30
ed30a5645350a75de6ac80699a068444f6426929 1/10/20 1/7/30
5fdd710e8f514a30bd73ba466f5f36caa0e0b591 6/8/20 6/6/30
6df2b3368f17ac97060986ae83c1753af087e152 6/8/20 6/6/30
80b899d4ad0d0062357aa1fc64568602aed4a650 6/8/20 6/6/30
8689ec491dec95a72a56d5c61fbe396fc38f89c4 6/8/20 6/6/30
8f2d4b671412f4f110625374e379bd698bda5160 6/8/20 6/6/30
9ca27e887b6809ff2d41a936b1453e4da7ab1092 6/8/20 6/6/30
e0febc8fe7ff14bdb5d070f7510964b88473576f 6/8/20 6/6/30
f349504661e647fb7b431fa4934a8623cc1661d2 6/8/20 6/6/30
f7922b3b9bca298b41260100f45e93974e6f1eba 6/8/20 6/6/30
b842552d6f19fb05fc2283e015122878d459c60a 7/15/20 7/13/30
47bf0f22402bb85c33720ec1a9a5ed85412a69be 1/15/21 1/13/31
57efcc6b354bfb23e0dc4f6e828e0dd50905be4b 1/15/21 1/13/31
821c012e736a45ffca188f8f77d9e6a34c177bbf 1/15/21 1/13/31
9b85aed5497d7b63619494fe5780e10cd564db15 1/15/21 1/13/31
a1930fef8f879fadf218661967d7ec97f048d1c0 1/15/21 1/13/31
c008fda4b34dfcdf35faf0ad7850ccece13fdd10 1/15/21 1/13/31
d5a7f453a577b2d38b0adf26612e6a4197dea064 1/15/21 1/13/31
fde64cec72d21dbfad2d29aed997bea562912245 1/15/21 1/13/31
14cfe6615b4198d7c948ad32b9a16a73e00a42b3 1/18/21 1/16/31
1db4a62936f13aa12d56bbf48811ba0d12cb43e1 1/18/21 1/16/31
713a6024f483b6669798a1666962ca9b842f0d30 1/18/21 1/16/318d374b3e19afa0321f7dfef64990d0940f77ae86 1/18/21 1/16/31
9a7bc345225dfc8ef4c06ab6741345f44cc3eede 1/18/21 1/16/31
223ef00e4c351831ab12f986b8b205f8d845ecee 1/20/21 1/18/31
4005125d4d437b91e9531e7397233d5e1cbfbee3 1/20/21 1/18/31
4510ef44b806ed718f7c87d6993a4cb22e93000d 1/20/21 1/18/31
49d89c7f1b304d7f12ccf0a7d6cbea830e44c4f9 1/20/21 1/18/31
5ea1e512c0d3708cafef682fffc84d193ec36add 1/20/21 1/18/31
7350e6fa073c65ac8e7f26aead5e84792e358910 1/20/21 1/18/31
a397af8074cc1a19d57cbaf0230b1b7c9880ddbf 1/20/21 1/18/31
7339f3584a2d8d63e3b78136d530dda6ab3b6749 2/10/21 2/8/31
408da97d8e4911b2461b44792dc7c2c253efc91f 12/20/21 12/18/31
88ca87a3b38080d85690538f3dfe7843eefbce19 12/20/21 12/18/31

C&C服务器验证脚本

#!/usr/bin/env python3
import socket
import ssl
import sys
import requests
from pathlib import Path
def usage():
 print("Usage:\n\t{0} HOST[:]PORT\n\nExamples:\n\t{0} 8.8.8.8 443\n\t{0} 
9.9.9.9:666\n".format(Path(__file__).name))
 sys.exit(1)
 def myip():
 r = requests.get('https://api.ipify.org?format=json')
 return r.json()['ip']
def check_cyclops_blink_c2(hostname, port, extaddr):
 ctx = ssl.create_default_context()
 ctx.check_hostname = False # Disables hostname checking
 ctx.verify_mode = ssl.CERT_NONE # Do not verify the certificate
 veredict = 'NOT DETECTED'
 response = ''
 try:
 with socket.create_connection((hostname, port), timeout=5) as sock:
 with ctx.wrap_socket(sock, server_hostname=hostname) as ssock:
 ssock.settimeout(10)
 ssock.send(b'\x00\x00\x00\x08')
 response = ssock.read(2048)
 if len(response) == 4:
 veredict = 'POSSIBLE'
 if socket.inet_ntoa(response) == extaddr:
 veredict = 'ACTIVE'
 ssock.close()
 except:
 veredict = 'UNREACHABLE'
 print(hostname,
 port,
 len(response),
 response, 
 veredict)
def main(argv):
 if len(argv) < 2:
 usage()
 # Accepts both host:port or host<space>port
 pos = sys.argv[1].find(':')
 if pos != -1:
 hostname = sys.argv[1][:pos]
 port = sys.argv[1][pos+1:]
 else:
 if len(argv) < 3:
 usage()
 hostname = sys.argv[1]
 port = sys.argv[2]
 check_cyclops_blink_c2(hostname, port, myip())
if __name__ == "__main__":
 main(sys.argv)

华硕产品安全公告

https://www.asus.com/content/ASUS-Product-Security-Advisory/

2022 年 3 月 17 日针对 Cyclops Blink 的安全建议

华硕正在调查并努力修复 Cyclops Blink,并将继续发布软件更新。

为了帮助这些路由器的所有者采取必要的预防措施,我们编制了一份安全检查表:
(1) 将设备重置为出厂默认设置:登录 Web GUI ( http://router.asus.com ),进入管理 → 恢复/保存/上传设置,单击“初始化所有设置并清除所有数据日志”,然后单击“恢复”按钮”
(2) 将所有设备更新到最新固件。
(3) 确保已将默认管理员密码更改为更安全的密码。
(4) 禁用远程管理(默认禁用,只能通过高级设置启用)。

受影响的产品

GT-AC5300 固件 3.0.0.4.386.xxxx 以下
GT-AC2900 固件 3.0.0.4.386.xxxx 以下
RT-AC5300 固件 3.0.0.4.386.xxxx 以下
RT-AC88U 固件 3.0.0.4.386.xxxx 以下
RT- AC3100固件3.0.0.4.386.xxxx
RT-AC86U固件3.0.0.4.386.xxxx
RT-AC68U、AC68R、AC68W、AC68P固件3.0.0.4.386.xxxx
RT-AC66U_B1固件3.0.0.4.386.xxxx 以下
RT-AC3200 固件 3.0.0.4.386.xxxx 以下
RT-AC2900 固件 3.0.0.4.386.xxxx 以下
RT-AC1900P, RT-AC1900P 固件 3.0.0.4.386.xxxx 以下
RT-AC87U (EOL)
RT- AC66U(停产)
RT-AC56U(停产)

请注意,如果您选择不安装此新固件版本,为避免任何潜在的有害入侵,我们强烈建议您禁用从 WAN 远程访问并将路由器重置为默认设置。

如果您已经安装了最新的修复版本,请忽略此通知。

如果您有任何问题或疑虑,请通过我们的安全咨询报告系统联系华硕:
https ://www.asus.com/securityadvisory

有关路由器设置和网络安全介绍的更多帮助,请访问
https://www.asus.com/support/FAQ/1008000
https://www.asus.com/support/FAQ/1039292

from

转载请注明出处及链接

Leave a Reply

您的电子邮箱地址不会被公开。 必填项已用 * 标注