黑客将GitHubActions改造成全球僵尸网络,攻击网络托管服务器

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

文章总结: 黑客入侵GitHub仓库,在Actions工作流中植入恶意代码,利用GitHubCI/CD运行器构建僵尸网络,扫描并利用CVE-2026-41940漏洞攻击cPanel/WHM服务器,窃取云密钥、支付令牌等凭证。攻击通过心跳和结果上传通道实现C2控制。建议监控IOC43.228.157.68并检查仓库工作流。 综合评分: 88 文章分类: 漏洞分析,恶意软件,威胁情报,实战经验


cover_image

黑客将GitHub Actions改造成全球僵尸网络,攻击网络托管服务器

原创

ZM ZM

暗镜

2026年7月29日 06:00 北京

在小说阅读器读本章

去阅读

黑客利用被入侵的 GitHub 存储库和 GitHub Actions 工作流,构建了一个事实上的全球僵尸网络,该网络扫描和利用 Web 托管服务器,主要针对 cPanel 和 WHM 部署。

该攻击活动最初是在与合法的 PHP 和 DevOps 开发人员 dinushchathurya 相关的 10 个 Packagist PHP 软件包中发现恶意开发版本时出现的,而 dinushchathurya 的上游 GitHub 存储库已被入侵。

这些基于分支的开发版本同步了来自 GitHub 的攻击者控制的更改,但不包含恶意 PHP 代码:这些库包含静态引用数据和正常的查找函数,没有安装钩子或运行时恶意软件行为。

真正的攻击逻辑位于 .github/workflows/ 目录下,攻击者在每个软件包中添加了 55 到 62 个 GitHub Actions 工作流,在所有受影响的开发版本中总共添加了 583 个工作流文件。

关键在于,通过 Packagist 安装这些 Composer 包不会自动触发恶意工作流程。

GitHub 会忽略依赖项 vendor 目录中嵌套的工作流定义,克隆存储库不会在维护人员的工作站上本地执行有效负载。

只有当根目录下有 .github/workflows 的被入侵仓库收到推送,或者有人手动调度工作流时,才会执行攻击。此时,GitHub 会启动临时的 Ubuntu 运行器,并将控制权交给攻击者提供的自动化程序。

每个恶意工作流都配置为在 ubuntu-latest 上运行,并设置延长超时时间,且在任何分支推送或手动触发时都会启动,从而有效地将例行 CI 事件转换为攻击启动平台。

一旦被调用,该工作流会检测运行者的处理器架构,并使用冗余的 curl 和 wget 逻辑以及宽松的执行标志,通过 HTTP 从攻击者控制的服务器 43[.]228[.]157[.]68 下载匹配的 Linux 有效载荷。

Socket Researchers 表示,该操作将 GitHub 托管的 Ubuntu 运行器重新用作一次性攻击基础设施,用于大规模互联网扫描、利用和凭证窃取。

与此同时,Packagist PHP 包主要作为上游系统遭到入侵的指标,而不是攻击的执行途径。

服务器为 x86、x86_64、ARM 和 ARM64 二进制文件公开不同的 /api/dl/* 路径,允许参与者在不改变存储库工作流程的情况下交换或升级有效载荷。

恢复的 AMD64 有效载荷(SHA-256 22f7…81f1)随后运行一个互联网规模的扫描器,该扫描器配置为利用 CVE-2026-41940 漏洞攻击暴露的 cPanel 和 WHM 端点,并枚举受感染系统上的 Git 数据、环境变量、配置文件和密钥。他们监控的输出文件包括 AWS 凭证、GitHub 和 GitLab 令牌、OpenAI 和 Google API 凭证、Stripe 密钥、SendGrid 和 Mailgun 凭证、数据库信息、SSH 数据、Git 远程仓库以及远程代码执行结果。通过这种方式滥用 GitHub Actions,攻击者实际上劫持了 GitHub 的 CI/CD 计算,将其用作分布式扫描和攻击集群。

这些运行程序以短寿命机器人的形式运行,探测通常与 Web 和主机控制平面服务相关的端口,尝试绕过易受攻击的 cPanel/WHM 实例的身份验证。

系统性地收集高价值凭证,包括云密钥、支付处理器令牌、电子邮件服务 API 密钥、数据库登录信息、SSH 材料和源代码控制令牌,这些凭证可以重复用于进一步破坏存储库和更广泛的软件供应链影响。

该工作流程实现了弹性命令与控制和数据外泄通道,持续报告状态并以分块形式传输被盗数据。

心跳循环每 30 秒向 /api/github-heartbeat 发布执行更新,识别存储库并嵌入最新的扫描器日志行,以便攻击者可以近乎实时地监控数千个并发运行器。

同时,工作流会跟踪汇总漏洞利用结果和凭据的输出文件,然后向 /api/github-results 发出重复的 POST 请求。每次请求最多可发送数千行新数据,同时跟踪偏移量以避免重复传输,即使扫描器发生故障或提前终止,也能确保最终数据收集。

相关 IOC

| | | | | — | — | — | | C2基础设施 | 43[.]228[.]157[.]68 | 命令与控制 IP | | C2 终点 | 43[.]228[.]157[.]68:80 | 通过 HTTP(端口 80)进行 C2 通信 | | 有效载荷交付 URL | hxxp://43[.]228[.]157[.]68:80/api/dl/386 | x86 有效载荷 | | 有效载荷交付 URL | hxxp://43[.]228[.]157[.]68:80/api/dl/amd64 | x64 有效载荷 | | 有效载荷交付 URL | hxxp://43[.]228[.]157[.]68:80/api/dl/arm | ARM有效载荷 | | 有效载荷交付 URL | hxxp://43[.]228[.]157[.]68:80/api/dl/arm64 | ARM64 有效载荷 |


免责声明:

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

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

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

本文转载自:暗镜 ZM ZM《黑客将GitHub Actions改造成全球僵尸网络,攻击网络托管服务器》

评论:0   参与:  0