新一代僵尸网络FritzFrog

近日,Guardicore 安全研究人员发现了一个自 2020 年 1 月开始活跃的 P2P 僵尸网络—— FritzFrog。

将运行SSH服务器的Linux设备(公司服务器、路由器和物联网设备)捆绑到P2P僵尸网络中,用于挖掘加密货币(门罗币),该僵尸网络的节点目前已遍布全球(北美、中国、韩国是重灾区):

新一代僵尸网络FritzFrog

FritzFrog 是一个模块化、多线程、无文件的僵尸网络,它试图通过破坏公共IP地址来发展P2P僵尸网络,而忽略了为私有地址保存的已知范围

“在拦截FritzFrog P2P网络时,我们已经看到由顺序IP地址组成的目标列表,从而对互联网中的IP范围进行了非常系统的扫描,”Harpaz解释说。

而FritzFrog是用 Golang 语言编写的,技术含量很高。该僵尸网络采用去中心化的基础设施,在所有节点中进行分布式控制。在这样的网络中不存在单点失效的问题,节点一直可以与其他节点通信来确保网络的活动性、弹性和更新。

除了使用专用的 P2P 协议外,通信都是基于加密信道的,恶意软件可以在受害者系统中创建后门,来确保攻击者对系统的持续访问。

之前也有过用 GoLang 语言开发的僵尸网络,比如 Gandalf 和 GoBrut。但 FritzFrog 与 Rakos 更加相似,通过暴力破解 SSH 登陆凭证来入侵目标系统。

FritzFrog 的一个特点就是无文件技术,即在内存中执行 payload。一旦识别目标机器,恶意软件就会执行一系列任务,包括暴力破解、用恶意 payload 感染机器、将受害者加入到 P2P 网络中。

新一代僵尸网络FritzFrog

为绕过检测,恶意软件会运行 ifconfig 和 NGINX,并开始监听 1234 端口来接受要执行的命令,包括同步受害者网络节点的数据库和暴力破解目标。这些传输给恶意软件的命令是通过一系列设计来绕过检测的循环。僵尸网络中的攻击节点首先通过 SSH 登入受害者,然后使用 NETCAT 工具建立到远程服务器的连接。

此外,payload 文件是通过类似 BitTorrent 的节点来交换的,使用了分段文件传输方法来发送数据。当节点 A 想要接收来自其对等节点 B 的文件时,就可以使用命令 getblobstats 来查询节点 B。然后,节点 A 可以通过哈希来获取特定的 blob,既可以通过P2P命令 getbin 也可以通过HTTP网络和URL https://node_IP:1234/blob_hash。当节点 A 有了所有需要的 blob 后,就可以用名为 Assemble 的模块来装配文件并运行。

新一代僵尸网络FritzFrog

除了对命令响应加密和编码外,恶意软件还运行了一个名为 libexec 的进程来进行门罗币挖矿,并通过添加公钥到 SSH 的 authorized_keys 文件来在作为之后访问受害者的后门,因此之后的登陆无需再次输入密码。

FritzFrog攻击影响

攻击是从2020年1月9日开始的,其中恶意软件二进制文件迭代了 20 个不同的版本,累计攻击超过 13000 次。

除了攻击教育机构外,FritzFrog 还暴力破解了属于政府机构、医疗中心、银行和众多电信公司的IP 地址,并成功突破了500多个SSH服务器。Guardicore 研究人员还发布了一个检测脚本来检查服务器是否被 FritzFrog 感染。

FritzFrog难以被检测到的原因

它的进程以ifconfig、nginx或libexec的名称运行(后者在门罗币采矿时使用)。

在受感染机器上运行本地netcat客户端,通过标准SSH端口建立其P2P命令隧道。通过SSH发送的任何命令都将用作netcat的输入并传输给恶意软件。

“除了采用新颖的命令发送方式,该过程还实现了完全自动化并在恶意软件的控制下。即使在为新感染的主机创建了P2P通道之后,该恶意软件仍会继续向受害者发送命令。”Harpaz指出。

缓解措施

终止恶意进程

将SSH密码更改为强密码并使用公共密钥身份验证

从authorized_keys文件中删除FritzFrog的公钥以“关闭”后门

如果不需要服务,请考虑更改路由器和IoT设备的SSH端口或完全禁用对它们的SSH访问。

详情了解:https://www.guardicore.com/2020/08/fritzfrog-p2p-botnet-infects-ssh-servers/

上一篇:

下一篇:


标签