用于文章的技术类抽象插图。深海军蓝背景上的扁平矢量风格示意图:左侧是一小簇用简单线条图标绘制的风格化服务器机架;右侧是由纤细的青色和蓝色线条连接众多小型圆形节点的网络。服务器上方,一个打开的书本图标——其中两条淡淡的横线代表诗行——通过一条虚线连接到这簇服务器,暗示从公开文档到机器地址的查找路径。插图中不出现任何文字、数字或徽标;OrcaRouter 徽标合成在右下角。
AI Safety Incidents

一个僵尸网络将其命令服务器藏在 GitHub 的一首诗中——并将 3,400 台暴露的 AI 服务器变成了挖矿代理

作者

Rowan Sterling

发布日期

最新模型 · 20查看全部模型 →
基准测试:Artificial Analysis · 每日更新
返回全部文章

2026年10月7日,Lumen Technologies 旗下的 Black Lotus Labs 公布了对一个出于经济动机的僵尸网络活动的研究,该活动被其追踪为 Canto Incognito,并将相关恶意软件命名为 PoeLLM据研究人员称,自至少 2026 年 4 月以来,该活动已攻陷 3,400 多台面向互联网的服务器,集中在美国和西欧——而且受害者并非随机的机器。Lumen 表示,它们主要是存在漏洞的 LiteLLM 和 Ollama 部署,此外还有数百台运行 Gotenberg PDF 转换器和 Gitea 开发工具包的服务器,Ivanti Sentry 设备也在受影响范围内。一旦被感染,这些服务器就被用于挖取加密货币,并被改作扫描器和漏洞利用服务器——Black Lotus Labs 的 Ryan English 在接受 CyberScoop 采访时称之为“一支由 AI 驱动的代理组成的私人军队”。同一份供应商报告被分享给了 The Hacker News,后者于同一天发表了自己的报道。

让这份记录值得一读的细节不在于规模,而在于其命令与控制设计:恶意软件中既没有硬编码的域名,也没有备用 IP。当前 C2 服务器的地址是在运行时计算得出的,依据是从托管在某个公开 GitHub 仓库里的一首诗中取出的四个词。改动那首诗,整个僵尸网络就会随之转移。

实际上被攻陷的到底是什么?

根据 Lumen 的报告,受害者是可通过互联网访问的企业 AI 和开发者服务:LiteLLM 和 Ollama 部署、数百台 Gotenberg PDF 转换服务器以及 Gitea。Lumen 的研究人员评估认为,该活动还波及了 Ivanti Sentry。主要扫描目标是端口 3000 和 4000,分别是 Gotenberg 和 LiteLLM 的默认监听端口。

有两个漏洞对于这些机器是如何被访问到的至关重要,而报告对二者都处理得很谨慎:

• Ivanti Sentry,CVE-2026-10520。Lumen表示,其研究人员是在调查Ivanti安全移动网关中的这一漏洞时首次发现PoeLLM基础设施的。2026年6月初,一台遭入侵的Ivanti Sentry受害设备连接了位于5.78.73[.]122的专用服务器,并在不久后开始扫描其他存在漏洞的设备。请注意这一含糊表述:Lumen自己的要点清单称该活动“可能以Ivanti Sentry为目标”,而同一份报告的正文却将该设备描述为实际受害者。这一内部矛盾存在于原始来源之中。

• LiteLLM,CVE-2026-42271。Lumen 检查的一个 PoeLLM 样本针对的是 LiteLLM 端点“/mcp-rest/test/connection”,Lumen 称该端点“很可能是”被编号为 CVE-2026-42271 的 LiteLLM 命令注入漏洞的“利用路径”。CyberScoop 的报道将同一入口点描述为 Ivanti Sentry 中的最高严重性缺陷,但未指明 CVE 编号,也未涉及 LiteLLM 漏洞;The Hacker News 则对这两个 CVE 均未提及。LiteLLM MCP 端点漏洞正是本档案在 2026 年早些时候、即此次攻击活动被记录之前所记录的那一个。

被盗取的访问权限为操作者换来的是算力和数据。Lumen 写道:“暴露在外的 AI/LLM 服务之所以有价值,不仅是因为存在软件漏洞,还因为它们可能包含有用的数据,并运行在适合挖矿的强大硬件上。”English 向 CyberScoop 表示,该恶意软件还带有远程代码执行功能,可能让操作者滥用受害者服务器上运行的 AI 模型——这仅被表述为一种能力,而非已观察到的结果。

同时也是查找表的诗

所涉及的 GitHub 账号是“ejejejdfbbebe”,而该仓库是 nodejs.org 网站源代码的一个复刻,似乎与 Node.js 本身没有明显关联。在其中,在一个名为“dash.css”的文件中——该文件名并不存在于原始仓库中——操作者放置了一首题为《论连接的本质》的两节诗。Lumen 统计,自 2026 年 4 月 13 日首次提交以来,它已被更新 11 次;CyberScoop 报道称,其措辞已被更改“至少十二次”。

据 Lumen 于 2026 年 9 月的记录,第一节写道:“在驱动的无声嗡鸣中,机器开始开口,二极管的每一次脉动都将光穿过铜的血脉。我们教会黑暗承载意义,一个字节接一个字节——一门由闪电铸成的语言,冷冽而洁净。”第二节中则有这样一行:“在加密之墙的彼端,一道信号寻得去路,远方服务器的滴答声应和作答。”

A screenshot of a technical explainer card titled 'Four words from a poem, read as a number'. The left column is headed 'Extracted from the verse' and quotes two lines of the poem with four words highlighted: driver, diode, encryption and distant servers. A note below explains that the fourth word is recovered by searching for the string 'of distant servers', stepping back to the previous whitespace and requiring the four bytes before the word to spell 'the '. The right column is headed 'Matched in a hard-coded dictionary' and lists four mappings: driver equals 92, diode equals 119, decryption equals 165, string equals 74. A result box at the bottom reads 'C2 address 92.119.165[.]74'. A footer reads 'Extraction logic and conversion key per Lumen Black Lotus Labs; worked example from a sample recovered June 23, 2026. Card rendered by OrcaRouter.'

提取是机械式的。Lumen 调用的函数 extract_poem_phrase_field会从诗句中的固定位置提取三个短语——即 "In the silent hum of " 与随后的逗号之间的文本,"each pulse of " 与 " threading," 之间的文本,以及 "Beyond the wall of " 与下一个逗号之间的文本。第四个词则以不同方式恢复:搜索字符串 "of distant servers,",回溯到前一个空白字符,检查其前面的四个字节是否拼出 "the ",然后取它后面的那个词。随后,这四个词中的每一个都会与编译进二进制文件的硬编码字典进行匹配,得到的四个数字会拼接成一个 IPv4 地址。在 Lumen 于 2026 年 6 月 23 日恢复的一个样本中,"driver" 映射为 92,"diode" 映射为 119,"decryption" 映射为 165,"string" 映射为 74——得到 92.119.165[.]74。

因为在我们观察到的 11 个修订版本中,始终只有那四个关键词发生变化,而解码模式从未改变,所以迁移僵尸网络只需运营者对一份公开文本文件做几次编辑。“这种诗歌手法最有趣的一点在于,用于 C2 通信的 IP 地址在受害者的 netflow 之外是不可见的,”English 告诉 CyberScoop。“对任何偶然遇到它的人来说,这不过是 GitHub 上的一首诗。它没有链接,没有可下载的文件,也没有任何即使先进模型也能轻易标记为恶意的加密文本。任何安全研究人员都没有理由将这首诗认定为恶意——也没有理由知道其中隐藏的 IP 地址——除非他们能访问引用它的恶意软件。”

Lumen 表示,它认为这首诗很可能由 AI 写成,并将此标注为一种推断,而非一项发现。用 English 对 The Hacker News 的话说,其理由是:这首诗用任何语言都能成立,但该行为体自身的偏好似乎是意大利语。这是关于写作风格的判断,而不是将该文本取证式地归因于某个模型。

恶意软件一旦落地后会做什么

Lumen 分析的该载荷是一个以“libgcrypt”为名分发的 ELF 文件,其 SHA-256 哈希值为 6fab94577364beec314afae3b082dd680933f08a8349b9f35b92667e8231b501。根据 Lumen 的分析,它捆绑了远程 shell、Iron 和 XMRig 加密货币挖矿程序、HTTP 和 HTTPS 扫描能力,以及针对易受攻击目标的漏洞利用部署。

受感染主机会向多个 C2 端口之一发起 beacon 回连——3778、5001、5002 或 9999——并被指示从 C2 服务器的 81 端口下载更多文件(观察到的路径包括 /private/python3.6 和 /private/bins.sh)。挖矿收益经由挖矿服务 Kryptex 走账:L 观察到其与 5.180.174[.]162:8029 和 46.21.245[.]7029 通信,后者托管着 edge07[.]kryptex[.]network。这 5000 个受害主机最常见的共同特征,在与初始 C2 接触之后,

该僵尸网络还会自我扩张。被攻陷的服务器被改造成了扫描器和漏洞利用服务器:漏洞利用服务器会向新发现目标上暴露的服务发送精心构造的 HTTP POST 请求,指示其从 C2 下载恶意软件。最近,Lumen 发现了一些受害者群体将目标对准 SSH 端口和其他登录入口,该公司将此解读为可能是在试验某种分布式暴力破解框架。Lumen 明确表示,这仍属不成熟且未经证实的活动:许多目标是位于意大利的独立服务器,研究人员评估该能力"可能仍处于早期开发阶段"。

时间线,以及两个不匹配的数字

A screenshot of a timeline card titled 'How the campaign unfolded, April to October 2026', subtitled 'Active since at least April 2026; disclosed 7 October 2026 by Lumen Black Lotus Labs'. The entries read: 'APR 13, 2026 — First commit to the GitHub repository. First decoded C2 is 191.37.28.160, a router in Brazil.' 'APR 13, +1 HOUR — That C2 contacts 57.131.5.211:80 in Italy, hosting malwarescan[.]xyz (registered February 2026).' 'MAY 2026 — Broader scanning and exploitation begins, especially against LiteLLM and Gotenberg. New C2 at 120.224.114.212, geolocated to China.' 'EARLY JUNE 2026 — A compromised Ivanti Sentry victim contacts 5.78.73.122, then begins scanning for other vulnerable devices.' 'MID-JUNE 2026 — Peak of operations: almost 2,200 affected servers, with nearly 800 active per day.' 'JUNE – SEP 2026 — The poem is revised 11 times; each revision points the botnet at a new C2. 12 C2 addresses identified in total.' 'OCT 7, 2026 — Lumen publishes. The staging repository is no longer accessible and the C2s are null-routed; three C2s were still active at publication.' A footer reads 'Dates and figures per Lumen Black Lotus Labs, published Oct 7, 2026. Card rendered by OrcaRouter.'

该行动首个被解码的 C2 是 191.37.28[.]160,这是一台巴西路由器,其在 2222 端口上暴露的 Boa Web 服务器易受 CVE-2018-21027 和 CVE-2018-21028 影响——不过 Lumen 未发现直接证据表明这些漏洞就是入侵入口。在首次 GitHub 提交大约一小时后,该 C2 联系了一台位于意大利、地址为 57.131.5[.]211:80 的服务器,该服务器托管着 malwarescan[.]xyz 域名,该域名注册于 2026 年 2 月。Lumen 表示,其未发现流向该域名 API 端点的其他显著流量,并评估该域名可能归 PoeLLM 操作者所有。5 月的一次修订将 C2 转移到 120.224.114[.]212,该地址地理定位为中国,并且与那台巴西主机一样,运行着带有路由器管理页面的存在漏洞的 Boa Web 服务器。总体而言,Lumen 识别出 12 个 C2 IP 地址;截至发布时,其中三个仍处于活跃状态——92.119.164.50(首次发现于 2026 年 7 月 23 日)、103.249.201.108(首次发现于 2026 年 8 月 13 日)和 178.128.14.204(首次发现于 2026 年 6 月 16 日)。

A screenshot of a comparison card titled 'Three figures and how they relate', subtitled 'Peak and cumulative counts are not the same measurement, and the report states both.' Three panels sit side by side. The first, headed 'Key takeaways, Lumen Black Lotus Labs, Oct 7, 2026', shows the figure 3,400+ with the caption 'victim servers impacted, and peak activity exceeding 800 active servers per day.' The second, headed 'Body paragraph, same report', shows the figure ~2,200 with the caption 'victim servers impacted since the malware emerged in April, at a peak of almost 800 active per day.' The third, headed 'Mid-June peak, same report', shows the figure ~2,200 with the caption 'affected servers at the peak of operations, with nearly 800 active each day.' A note below reads 'Which of the two impacted-server figures is the cumulative count is not made explicit in the report. The archive's confidence grade covers the documentation, not the reconciliation of these numbers. Card rendered by OrcaRouter.'

Lumen 还指认了一个疑似管理服务器:位于意大利的 185.119.19[.]171,该服务器此前托管着 Prometheus 和 Uptime Kuma 监控仪表板,多个 C2 曾与其联系。报告称这一归因的置信度为中等。

就规模而言,原始来源中包含两个显然无法相互吻合的数字,而两者都值得列出。Lumen 的关键要点称 PoeLLM“已影响超过 3,400 台受害服务器”。同一份报告正文中的一段则称该活动“已影响近 2,200 台受害服务器”,而 Lumen 另外将 6 月中旬的行动高峰描述为涉及近 2,200 台受影响服务器,其中每天有近 800 台处于活跃状态。《The Hacker News》将这些数字解读为累计总数(3,400 多台)加上 6 月中旬的高峰(近 2,200 台,每天近 800 台)。至于 Lumen 的这两个数字中哪一个才是累计受害数量,报告本身并未明确说明。

已确立、已评估,以及仍然未知

在这份记录中,值得把三类主张区分开来,因为该档案的置信等级覆盖的是文献记录本身,而非其中每一项推断。

• 从恶意软件本身确定:基于诗歌的C2机制、提取函数与字典、载荷的能力(远程shell、Iron和XMRig挖矿程序、扫描、漏洞利用部署)、C2 IP列表、信标端口以及Kryptex端点。这些来自工件分析和网络流数据,构成了报告的主体内容。

• 按所述置信水平评估:以中等置信度将攻击归因于一个讲意大利语的威胁行为者,依据是恶意软件中的意大利语评论、该行为者的 GitHub 页面,以及指向意大利的 netflow 指标。意大利服务器 185.119.19[.]171 为僵尸网络的管理界面,同样为中等置信度。LiteLLM 端点被列为“可能”的利用路径。关于该诗可能由 AI 撰写的说法——这是基于语言偏好作出的推断,而非技术发现。

• 未确定或未经证实:发起该行动的人数(未知)、它是否与任何其他组织或行动存在关联(未观察到任何关联)、Ivanti Sentry 设备究竟是被利用的入口点还是偶然牵涉其中(在关键要点中措辞含糊,在正文中则被描述为受害者),以及其分布式暴力破解能力的成熟程度。Lumen 表示,除扫描和加密货币挖矿之外,该操作者还取得了哪些成果仍在调查之中。

对这篇报道存在独立佐证,但对其背后的遥测数据则没有。CyberScoop 和 The Hacker News 均于 2026 年 10 月 7 日发布了各自的报道,并包含对 Black Lotus Labs 的独立采访;它们的细节——3,400 多这一数字、诗歌机制、意大利语归因、Kryptex 关联——与供应商报告一致。然而,两者都追溯至同一项原始研究。截至 2026 年 10 月 10 日,尚无第二家研究机构或监管机构发布对 PoeLLM 的独立分析,因此不应将本文中的任何内容解读为由 Lumen 以外的任何一方复现。

披露后发生了什么变化?

最具影响的回应并非来自补丁。托管这首诗的 GitHub 仓库“已无法访问”,Lumen 称这一进展“完全破坏了该行动”。English 告诉 The Hacker News:“我们认为那是他唯一的仓库,而它已被彻底破坏。”Lumen 已通知 GitHub,后者将该行为者此前和当前活跃的 C2 服务器进行了空路由,English 称这一变更在文章发布前的周二晚间早些时候生效。该仓库被移除的原因尚未确认——English 告诉 The Hacker News,“可能是他们将其标记为滥用,也可能是该行为者收手并在该平台上归于沉寂。”由于 C2 是派生而来而非硬编码,移除查找表便消除了僵尸网络找到自身基础设施的能力。

Lumen 表示,在调查期间,它阻止了所有进出 PoeLLM C2 服务器的流量,并且 Lumen Defender 客户从发现这些服务器之初起就受到了保护。其面向防御者发布的指南,是将常规卫生措施应用于一组不寻常的目标:对照其发布在自家 GitHub 仓库上的妥协指标检查网络日志,在安装开源工具后审计外部暴露面,尽可能限制服务端口,保持路由器、防火墙和 IoT 设备打补丁并重启,并将 AI 服务纳入攻击面管理。它还指向 Gotenberg 安装指南,该指南已经警告用户不要将该服务暴露到互联网——而数百台遭入侵的 Gotenberg 服务器显然早于这一警告出现。

记录中没有任何内容是对这种流量模式本身的技术修复:这首诗并不是 GitHub、Node.js 或 Ollama 中的一个漏洞。它是一段普通的文本,其唯一的意义存在于一种只有极少数人才能读懂的二进制编码之中。

为什么这是一条 AI 事件记录

该档案将其记录为一起已确认涉及AI的事件,标记为INFRA和WEAPON,严重性为高,并记录了真实危害——而且这种危害是具体的,而非推测性的:数千台面向互联网的服务器,其算力被盗,其访问权限被改作他用;Lumen将这场行动描述为出于经济动机,而非针对模型本身。其中的AI要素在于目标选择。运行LLM网关和本地模型运行时的服务器是自托管的,经常暴露在互联网上,通常没有补丁周期就被部署,并且位于能高效挖矿的硬件上。Lumen自己的表述是,AI基础设施正成为一个有吸引力的目标,恰恰是因为这种组合——带有已知漏洞的暴露服务、有用的数据,以及快速、高耗电的硬件。

武器层面的关键在于 C2 设计,而且这一设计可推广到本次行动之外。硬编码的域名或 IP 可以被封锁、被黑洞路由,或被用来对恶意软件进行指纹识别。而一个派生地址,其唯一留下的痕迹是一份看似无害的公开文档,就无法被这样处理,除非分析人员拿到了二进制文件。English 向 CyberScoop 指出的这一点——该行动的许多 C2 从未出现在众包安全工具上——正是衡量这种手法成效有多好的标尺。

由于这次瓦解所依赖的是单个代码仓库,而不是某个已修补的漏洞,该行动在10月7日之后的状况确实不确定,而非已经结束:Lumen 表示,该仓库的丢失“完全瓦解”了它,并另外表示,在发布之时仍有三台 C2 服务器处于活动状态。Lumen 将其自己的妥协指标发布在它自己的 GitHub 仓库上,而该记录的严重性、置信度评级和所记录危害均属于该档案机构,而不属于该供应商。

这是一条记录。它的其余部分——其他披露、其严重性和置信度评级,以及防御者实际采取的措施——the AI incident archive将每一条与其主要来源进行对照索引,因此像这样的活动可以与之前发生的事件一起阅读,而不是孤立地阅读。