OctoC2:把GitHub当作C2基础设施

admin 2026-08-25 04:43:00 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: OctoC2是一个将GitHub作为C2基础设施的开源框架,提供11种隐蔽信道如GitNotes和PNG隐写、端到端加密及规避模块。它适合针对以GitHub为日常工具的技术团队进行红队演练,但存在运行时依赖和GitHub可用性等OPSEC局限。 综合评分: 86 文章分类: 红队,安全工具,渗透测试,威胁情报,恶意软件


OctoC2:把GitHub当作C2基础设施

原创

赛博57库 赛博57库

赛博57库

2026年7月16日 05:00 广东

在小说阅读器读本章

去阅读

OctoC2:把 GitHub 当作 C2 基础设施的开源框架深度分析

面向网络安全研究人员与红队 · 技术内容仅供学习与研究用途

| | | — | | ⚡ 核心看点 11 种 Tentacle(触手)隐蔽信道、端到端加密、Git Notes 零可见隐写、PNG LSB 隐写、死信投递机制、OpenHulud 规避模块 |

一、OctoC2 是什么

2026 年 4 月,开发者 dstours 在 GitHub 发布了 OctoC2——一个用纯 TypeScript + Bun 编写的完整 C2 框架。它不是在第三方服务上搭建中继,而是直接把 GitHub 本身变成命令控制基础设施

传统的「利用第三方平台做 C2」方案(Google Sheets、Discord、Telegram)都是概念验证。而 OctoC2 则是生产级设计——包含:

| | | — | | ✓ 11 种互相独立的通信信道(Issues、Git Notes、PNG 隐写等)  ✓ 端到端加密 + libsodium X25519 非对称加密体系  ✓ GitHub App Token 1 小时自动轮换  ✓ 交互式 Shell + 批量操作 + 实时 Dashboard  ✓ 进程隐藏、凭据收割、持久化、反调试等规避模块 |

二、11 种 Tentacle 隐蔽信道

Tentacle(触手)是 OctoC2 的核心抽象,每一种代表一种不同的隐蔽通信方式。

| | | | | | — | — | — | — | | 信道 | 名称 | 机制 | OPSEC 等级 | | T1 | Issues | GitHub Issues 加密评论(HTML 注释包裹) | | | T8 | Git Notes | refs/notes/* 元数据层,Web UI 完全不可见 | 极高 | | T9 | Stego | PNG LSB Alpha 通道隐写 | 极高 | | T6 | Gist | 私有 Secret Gist,与仓库无关 | 极高 |

(表格仅示意关键信道,完整版包含 T2/T3/T4/T5/T7/T10/T11 共 11 种)

三、最隐蔽的两个信道

▸ T8 Git Notes(完全隐身)

GitHub 的 Git Notes 是一个鲜为人知的功能——它是挂在 Git 对象上的元数据引用 refs/notes/*,在 Web UI 中完全不显示,即使作为仓库管理员也看不到。

OctoC2 用三个 refs 实现了无可见流量的双向通信: refs/notes/svc-t-{id8}(Server→Beacon 任务) refs/notes/svc-r-{id8}(Beacon→Server 结果) refs/notes/svc-a-{id8}(心跳注册)

▸ T9 PNG 隐写(无损隐藏)

这是最精妙的设计。OctoC2 实现了纯 TypeScript LSB(最低有效位)隐写编解码器——将加密载荷隐藏在 PNG 图片 Alpha 通道的最低位。

| | | — | | 工作流程:  ① Beacon 生成微小 PNG(1×1 像素或更小)  ② 载荷按位写入像素 Alpha LSB(每像素 1 比特,8 像素=1 字节)  ③ PNG 提交到分支 infra-cache-{id8}(看起来像缓存)  ④ 服务端下载并用 StegoCodec 解码 |

Alpha 变化仅 ±1,肉眼完全不可见,与正常压缩伪影无法区分。

四、加密与密钥轮换

OctoC2 使用 libsodium 的 X25519 + crypto_box/crypto_box_seal 非对称加密:

| | | — | | 密钥层次: • 操作员公钥 → 编译进 Beacon,每个 Beacon 启动时从 GitHub Actions Variables 获取  • Beacon 公钥 → 注册时提交给服务端  • GitHub App 私钥 → 通过「死信投递」远程分发,从不硬编码 |

关键创新:死信投递(Dead Drop)机制——已部署的 Beacon 可以通过 GitHub Actions Variables 或 Deployments API 接收新的凭证,实现零接触的 App Token 轮换,甚至切换认证方式。

五、OPSEC 加固与规避

OctoC2 内置 OpenHulud(《沙丘》中的沙虫)规避模块,支持:

| | | | — | — | | 规避动作 | 描述 | | hide | 进程名伪装(/proc/self/comm) | | anti_debug | 检测调试器(TracerPid、LD_PRELOAD) | | persist | 持久化安装(crontab/launchd/registry/gh-runner) | | propagate | 凭据收割与外泄(7 种凭据来源) |

六、OPSEC 局限与检测风险

问题 1:运行时依赖 · Bun 不支持交叉编译,ARM 目标需要额外 CI 或虚拟机。

问题 2:GitHub 可用性 · 一旦 GitHub 被封禁或目标网络限制 api.github.com,整个 C2 立即瘫痪。

问题 3:行为指纹 · 每个 Beacon 创建一个 Issue,同时控制数十个 Beacon 时模式明显。频繁的 Issue 评论编辑可能触发 API 审计。

问题 4:LSB 隐写检测 · 虽然实现优雅,但 LSB 隐写可以通过卡方检验和统计分析被识别。专业工具(Aletheia、StegExpose)能检出 Alpha LSB 异常分布。

七、总结与启示

OctoC2 在以下方面表现突出:

| | | — | | 1. 信道多样性 · 11 种 Tentacle 覆盖从常规到极隐蔽的各种场景,Git Notes 和 Stego 的选择体现了对 GitHub 平台的深刻理解。 2. 加密设计 · libsodium + X25519 稳健可靠,App Token 自动轮换解决了长期运行的凭据管理问题。 3. 运维友好 · 交互式 Shell、批量操作、实时 Dashboard 使得这个工具易用性远超同类 PoC。 4. OPSEC 意识 · 从提交信息消毒到指纹校验工具,防御深度贯穿代码的每个层面。 |

从红队视角看,OctoC2 最适合针对以 GitHub 为日常协作工具的技术团队的场景——在这样的环境中,Beacon 的 Issue 评论、Git Notes 甚至 PNG 隐写流量看起来就像日常 CI/CD 噪音,极难被注意到。

参考来源:OctoC2 源码仓库(https://github.com/dstours/OctoC2),MIT 许可证。文章中引用的代码结构、文件路径、实现细节均来自对仓库源代码的直接分析。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:赛博57库 赛博57库 赛博57库《OctoC2:把GitHub当作C2基础设施》

评论:0   参与:  0