和其他「只把 GitHub 当信道」的工具比,这几条是真正不一样的:2
- 自己的中继,GitHub 只当备胎。
一键在 Cloudflare 上部署 Worker + D1;主路断了自动切 GitHub,好了自动切回,终端有 [Channel]通知。双通道在侧栏仍是一台,不是两台 Agent。 - 启动自动提权。
还不是 root 时按顺序试免密 sudo、已有 SUID 解释器、未打补丁的 pkexec、特权容器逃逸;成功则 exec 替换自身,不留双进程。无文件模式整条跳过,避免落盘。 - 进程级隐藏,不装内核模块。
按发行版伪装成系统守护进程,藏路径、藏 /proc、对齐 SELinux/AppArmor,写文件还复原时间戳。 - 持久化多路 + 自愈。
systemd / cron / rc.local / profile / 用户服务一起上;有人清掉一条,大约每 6 小时自己补回来。 - 时间窗。
只在你规定的时段说话;窗外面板显示安静,不是掉线。边界每天抖动,整群不会同一秒苏醒。紧急停机在窗外照样生效。 - 轮询全自动识别冷热。
编包只填一个基数。有人在操作就加快,闲着就自己放慢,省额度、也少指纹。 - Token 失效不用重新编包。
填 Backup URL,Agent 自己去拉一份新 JSON 配置并热重启。 - 目标机少落文件。
反弹 Shell、隧道节点都编在 Agent 里,纯内存;还可以 memfd 无文件上线。 - 载荷全程加密
控制台自带 中 / 英语言包(右上角 EN / 中文)。
隐蔽、提权、性能与稳定性
自动提权
Linux 上线后若当前不是 root,会在守护化之前自动试(能提才提,提不了照常以当前权限跑):
成功则 exec 替换当前进程,不会并排出两个 Agent。环境变量闸门防止提权成功后死循环。memfd 无文件模式整条跳过(再 exec 自己会破无文件约定,还会在日志里留下失败痕迹)。
隐蔽
全部是进程级,不加载内核模块,不跟发行版内核版本绑死:
- 进程名 / 线程名
: comm按发行版自动扮polkitd/accounts-daemon/systemd-udevd等;工作线程扮kworker。编包也可手填伪装名。 - 落地路径
:root 优先藏进 /usr/lib/systemd/…这类看起来像系统守护进程的位置;普通用户走~/.local/bin/。写之前用access(2)探权限,不先建再删、少触发文件监控。 - 藏
/proc:把 /proc/<pid>bind-mount 成 PID 1 的视图,常规ps/ 看 cwd、fd 不容易对上。 - SELinux / AppArmor
: chcon对齐bin_t/ 单元文件上下文,减少「来历不明文件」刷审计。 - 时间戳
:二进制和状态文件的 mtime 对齐系统文件;每次写入后把目录 mtime 复原( stealth_write)。 - 流量外形
:启动抖动、轮询 ±20% 抖动、时间窗边界按 Agent/按天错开;访问 GitHub 时轮换常见客户端 User-Agent。 - 崩溃不吐密
:关掉 coredump,避免 Token / Secret 落到磁盘。 - Guards
:主机名、用户、标记文件、最低内存对不上就静默退出,少在沙箱 / 蜜罐里暴露行为。
Agent 是 Rust,推荐 x86_64-unknown-linux-musl静态链接,目标机不用装运行库。- 主通道走自己的 Worker HTTPS
不跟 GitHub 评论抢限额、也不等 Issue 刷新;GitHub 只在主路挂了才上场。 - 反弹 Shell 是真 PTY + WebSocket
不走 30 秒命令轮询。 - 轮询全自动冷热
操作时最快 15 秒,闲置最长 5 分钟,省 API、也少固定节拍指纹。 大文件走 sendit 中转,上传按块切,不把评论通道撑爆。 控制台本机已带隧道服务端、反弹 Shell 服务端,不必再下一堆配套马。
稳定性
双通道:切备用失败会回滚,避免控制台和 Agent 各听一边。 中继 D1 被重建、自增 id 归零时,水位自动复位,不会整群变聋。 同一条命令写到兄弟通道,Agent 去重,切通道不丢令。 持久化多策略;大约 每 6 小时自检修补,被清一条还能长回来。 守护化用 spawn + exec,不用 fork():老 CentOS 上 Tokio 多线程 fork 会锁死。错误按类型退避(鉴权 / 限流 / 网络),再加抖动,不会固定间隔砸接口。 热升级保留 agent id 和通道身份;失败则旧进程继续跑。 设置页空字段不覆盖已有密钥;GET 不回明文 Secret。
界面
侧栏列出已上线的 Agent,顶部切换业务页。终端、反弹 Shell、文件、隧道、扫描、系统信息、资料库、报告、升级在同一工作区。
控制台内置语言包(static/js/lang/zh.js、en.js)。右上角 EN / 中文 一键切换,选择会记在浏览器里;未选过则按系统语言默认。下面截图是中文界面,切到 EN 后同一套页面为英文。

生成器在网页里选通道、填凭据、编译,完成后直接下载二进制。双通道为 Worker 主 + GitHub 备。

安装
环境
deploy.sh 可代装 rustup + x86_64-unknown-linux-musl) | |
gccbinutils(链接与 strip)、upx(压缩)、Cloudflare 账号(Worker 中继) | |
随包已带隧道服务端 stowaway_admin 和反弹 Shell 服务端 cliws,一般不必再下。
标准安装
git clone https://github.com/Kxiandaoyan/github-C2.gitcd github-C2bash deploy.sh脚本会:
识别源码目录 c2/(或旁路的压缩包)。创建 Python 虚拟环境并安装依赖。 询问(或用参数传入)网页账号、通信 Secret、端口、绑定地址。 把凭据写入 c2/.runtime.env(权限 0600)和数据库。检查隧道 / Shell 二进制;按需安装 Rust 与 musl 目标。 用 systemd 单元 c2-controller拉起控制台(无 systemd 则 5 秒自动拉起)。做登录 + 接口健康检查;升级失败会回滚上一份快照。
完成后终端会打印访问地址,形如:
http://<服务器IP>:<端口>/?login=<用户名>&pass=<密码>命令行参数
bash deploy.sh --user admin --pass '你的密码' --c2-secret '通信密钥' --port 8080 --bind 0.0.0.0--user--pass | |
--c2-secret | |
--port--bind | 8080、0.0.0.0。 |
--noninteractive | C2_WEB_PASS。 |
--skip-toolchain | |
--skip-always-poll | |
--no-systemd |
无人值守若要顺便装编译链:C2_INSTALL_TOOLCHAIN=1 bash deploy.sh --noninteractive ...
https://github.com/Kxiandaoyan/github-C2