网络安全研究人员今天揭开了一个复杂的、多功能的P2P僵尸网络的面纱,它是用Golang语言编写,自2020年1月以来一直积极地针对SSH服务器。
根据Guardicore实验室发布一份报告,这个被称为“FritzFrog”的模块化、多线程和无文件的僵尸网络迄今已经侵入了500多台服务器,感染了美国和欧洲的知名大学和一家铁路公司。Guardicore的Ophir Harpaz说:
“凭借其分散的基础架构,它可以在所有节点之间分配控制权。” “在没有单一故障点的网络中,节点之间不断地相互通信,以保持网络的生命力,弹性和最新性。”
除了实现一个从头编写的专有P2P协议之外,通信是通过一个加密通道完成的,而恶意软件能够在受害者系统上创建后门,允许攻击者继续访问。
无文件的P2P僵尸网络
虽然之前已经发现过基于GoLang的僵尸网络,如Gandalf和GoBrut,但FritzFrog似乎与Rakos有一些相似之处,Rakos是另一个基于GoLang的Linux后门,之前被发现通过强力SSH登录来渗透目标系统。
P2P的恶意软件
但是,令FritzFrog独树一帜的是它没有文件,这意味着它可以在内存中组装和执行有效载荷,并且在执行暴力攻击时更具攻击性,同时还可以通过在僵尸网络内平均分配目标来提高效率。
一旦确定了目标计算机,该恶意软件将执行一系列任务,包括对其进行暴力破解,在成功突破后用恶意有效载荷感染计算机,并将受害者添加到P2P网络。
netcat ssh恶意软件
为了掩盖事实,该恶意软件以ifconfig和NGINX的身份运行,并开始侦听端口1234,以接收进一步的执行命令,包括那些将受害者与网络对等点和暴力目标的数据库同步的命令。
命令本身通过一系列避免被发现的圆环传送给恶意软件。僵尸网络中的攻击节点首先通过SSH锁定一个特定的受害者,然后使用NETCAT程序与远程服务器建立连接。
此外,有效载荷文件以BitTorrent样式在节点之间交换,采用分段文件传输方法来发送数据块。
“当节点A希望从其对等节点B接收文件时,它可以使用getblobstats命令查询节点B所拥有的Blob,” Harpaz说。
“然后,节点A可以通过它的散列(通过P2P命令getbin或通过HTTP,使用URL'https:// node_IP:1234 / blob_hash)获得特定的blob。” 当节点A有必需的Blob时,它将使用名为Assemble的特殊模块来组装文件并运行它。”
除了加密和编码命令响应,恶意软件运行一个单独的进程,名叫“libexec”,Monero硬币通过留下后门的方式是通过添加一个“authorized_keys文件的公钥SSH的以便登录身份验证,无需再次依赖密码即可进行身份验证。
自一月以来发现13,000次攻击
据网络安全公司称,该活动于1月9日开始,自首次出现以来,跨越20种不同版本的恶意软件二进制代码的攻击累计达到1.3万次。
世界地图电脑病毒
除了针对教育机构以外,还发现FritzFrog暴力破解了属于政府组织,医疗中心,银行和电信公司的数百万个IP地址。
Guardicore Labs还提供了一个检测脚本,用于检查服务器是否已被FritzFrog感染,并共享其他泄露指标(IoC)。
“弱密码是促成FritzFrog攻击的直接推动者,”Harpaz总结道。我们建议选择强密码,并使用公钥认证,这样更安全。
路由器和物联网设备经常暴露SSH,因此容易受到FritzFrog的攻击——考虑改变它们的SSH端口,或者在服务不使用时完全禁用SSH访问。