FortiGuard Labs 最近发现了名为 RustoBot 的恶意程序,它是用 Rust 语言编写的。Rust 是一种以性能和安全性著称的内存安全型语言。RustoBot 是一个复杂的僵尸网络,它利用了 TOTOLINK 和 DrayTek 路由器中的漏洞,从而在日本、越南和墨西哥的技术基础设施中占据了一席之地。
在 2025 年初,FortiGuard Labs 的分析师注意到,利用 TOTOLINK 的 cstecgi.cgi 脚本中存在已久的漏洞进行的攻击尝试数量急剧上升。这个组件负责配置更改和身份验证,其中存在多个命令注入漏洞。
所利用的关键漏洞包括:
1.CVE-2022-26210(通过 setUpgradeFW 利用)
2.CVE-2022-26187(通过 pingCheck 利用)
3.CVE-2024-12987(通过 /cgi-bin/mainfunction.cgi/apmcfgupload 影响DrayTek的路由器)
这些漏洞使攻击者获得了远程代码执行能力,为 RustoBot 的感染埋下了隐患。
TOTOLINK devices 命令注入漏洞的有效载荷 |图片来源: FortiGuard Labs
一旦获得了初始访问权限,RustoBot 就会使用四个下载器脚本中的一个进行部署,这些脚本通过 wget 或 tftp 命令获取。该恶意软件针对多种架构 ——arm5、arm6、arm7、mips、mpsl 和 x86—— 确保与易受攻击的路由器具有广泛的兼容性。
Fortinet 指出:“在观察到的大多数事件有效载荷中,专门针对使用 mpsl 架构的 TOTOLINK 设备。”
RustoBot 的独特之处在于它使用了 Rust 语言。它的二进制结构通过基于异或(XOR)的加密和全局偏移表(GOT)操纵进行了混淆处理,这使其具有隐蔽性,并增加了逆向工程的难度。
解密后的配置揭示了 RustoBot 的真实意图。它执行两项核心恶意操作:
1.解析多个命令与控制(C2)域名,如 dvrhelper [.] anondns [.] net,所有这些域名都指向 5 [.] 255 [.] 125 [.] 150。
2.按命令发起分布式拒绝服务(DDoS)攻击。
这个僵尸程序首先使用基于 HTTPS 的 DNS(DoH)获取受感染设备的公共 IP 地址,巧妙地将恶意流量与正常的 HTTPS 活动混在一起。然后,它从命令与控制(C2)服务器接收攻击指令,包括:
1.DDoS 攻击方法(例如,UDP)
2.目标 IP 地址和端口
3.攻击持续时间
4,数据包长度
Fortinet 表示:“它可以使用三种不同的协议发起 DDoS 攻击:原始 IP、TCP 和 UDP。”
到目前为止,RustoBot 攻击活动已经影响了以下设备:
1.TOTOLINK 型号:N600R、A830R、A3100R、A950RG、A800R、A3000RU、A810R
2.DrayTek 型号:Vigor2960、Vigor300B
受害者主要位于日本、越南和墨西哥的科技领域,这表明这可能是一次有针对性的攻击活动。
对于 RustoBot,攻击者使用 Rust 语言不仅仅是为了新奇,更是看中了它的性能以及对基于内存攻击的抵抗力。正如 Fortinet 所警告的:
“物联网和网络设备往往是防护薄弱的端点,这使它们成为有吸引力的攻击目标…… 加强端点监控和身份验证可以显著降低风险。”
各组织应立即修补已知漏洞,对暴露的设备进行审计,并监控出站流量模式以检测异常行为 —— 尤其是基于 HTTPS 的 DNS 活动或未经授权的固件更新。