GitHub 大规模投毒曝光:222 个仓库暗藏远控木马和挖矿程序,开发者成目标

2026年7月11日,安全研究公司 Socket 公开报告了一起代号为 “Muck and Load” 的大规模恶意软件活动。自2026年1月起,不法分子通过 GitHub 向开发者投放远程访问木马(RAT)、信息窃取器和加密货币挖矿程序,涉及 190 个账户下的 222 个恶意仓库

GitHub 大规模投毒曝光:222 个仓库暗藏远控木马和挖矿程序,开发者成目标

这不是一次简单的小范围投毒,而是一次组织化、自动化、高度隐蔽的供应链攻击。

一、攻击手法复盘

1.1 伪装成合法工具

攻击者将一个伪装成 DNS 与子域名扫描工具的 Go 语言模块作为切入点,模块位于 github.com/kaleidora/dnsub-scanning-tool

READEME 文档指向的是 dnsub 这个合法的开源子域名枚举项目,但实际发布的包在不同的 GitHub 命名空间下,以此掩护真实身份。

1.2 1200 个版本中有 700 个是恶意的

2026年1月24日发布首个版本后,该模块在短短数月内累计发布了 超过 1200 个版本,其中 逾 700 个被确认为恶意版本

正常项目不可能在几个月内发布这么多版本。攻击者利用 GitHub Actions 工作流,每分钟定时提交并强制推送重写的日志文件,把每次提交都生成为一个 Go “伪版本”,人为制造出大量版本记录。

1.3 恶意代码的执行流程

恶意 Go 模块被安装
    ↓
main.go 启动隐藏的 PowerShell 窗口
    ↓
从 muckcoding.com 下载编码文件
    ↓
certutil 解码为 L.ps1 脚本
    ↓
L.ps1 从 Pastebin、YouTube、Telegram、Google Docs 等平台
搜索 "LastW" 标记字符串 → 解密出真实下载地址
    ↓
从 GitHub Release 下载加密的 7z 压缩包
    ↓
解压至仿冒 Win11 照片应用目录
    ↓
以隐藏窗口运行 Microsoft.exe
    ↓
投放 AsyncRAT / Quasar / Remcos / Vidar / 挖矿程序
GitHub 大规模投毒曝光:222 个仓库暗藏远控木马和挖矿程序,开发者成目标

1.4 “死信解析器”技术

攻击者没有在脚本中硬编码最终的恶意载荷 URL,而是采用了一种 死信解析器(Dead Drop Resolver) 技术:

L.ps1 脚本会从 Pastebin、Rlim 等公共粘贴服务,以及 YouTube、Instagram、Telegram、Google Docs、GitCode 等平台获取加密的载荷位置信息。脚本搜索特定标记字符串 “LastW”,然后用硬编码密钥解密出真实下载地址。

这种设计赋予了攻击者极强的操作弹性:即使某个粘贴内容或域名被封禁,攻击者也能迅速更新公共平台上的解析内容,而无需改动第一阶段的载荷。

二、诱饵仓库网络

以该恶意模块为切入点,Socket 团队顺藤摸瓜,揭露了一个规模更大的 GitHub 诱饵网络,包含 190 个账户下的 222 个已确认的诱饵代码仓库

2.1 这些仓库的共同特征

  • 使用了同一种特定 GitHub Actions 工作流
  • Git 提交邮箱统一设置为 ischhfd83@rambler.ru
  • 可见的提交用户名设置为当前仓库的所有者
  • 每分钟重写一次日志文件并强制推送,制造”活跃维护”假象

2.2 诱饵仓库的主题

这些仓库的主题高度集中:

主题说明
加密货币 & Web3 工具钱包集成、助记词工具
交易所机器人自动化交易脚本
游戏外挂PUBG、无畏契约、逃离塔科夫
聊天机器人Telegram 和 Discord 机器人

2.3 确认的恶意文件

在这些仓库中至少发现了 14 个不同的恶意文件,包括:

  • 木马加载器
  • 下载器
  • Vidar 窃密软件
  • 间谍软件
  • 释放器
  • 门罗币挖矿程序

其中名为 Loader.exe 的文件在四个不同仓库中竟完全相同。

三、这不是第一次

Socket 高度确信,”Muck and Load”行动与安全厂商 Sophos 在 2025 年 6 月披露的大规模 GitHub 后门活动 属于同一攻击者集群

对比项Sophos 2025.6Socket 2026.7
邮箱指纹ischhfd83@rambler.ru相同
关联仓库数141 个222 个
攻击者别名MuckMuck
相关域名muckcoding.com / muckdeveloper.com

Sophos 当时还发现,”Muck”正是该攻击者使用的别名之一,这也解释了为什么新活动中出现了 muckcoding.com 和 muckdeveloper.com

GitHub 大规模投毒曝光:222 个仓库暗藏远控木马和挖矿程序,开发者成目标

四、对开发者的影响

4.1 软件开发者的直接风险

如果你是 Go 开发者,尤其是在开发环境或 CI/CD 中使用了来自 GitHub 的第三方 Go 模块,请立即检查依赖树中是否包含以下异常特征:

  • 版本号短期内激增的模块
  • 非官方命名空间下的同名模块
  • 功能描述可疑(如 Web3 工具、游戏外挂)的依赖

bash

# 检查 Go 项目依赖中是否有异常版本数量的模块
go list -m -versions all | grep -i "dnsub\|kaleidora"

# 检查是否有可疑依赖
go mod verify

4.2 Go 安全团队已响应

Go 安全团队已迅速将相关恶意模块从 Go 模块代理(Go module proxy) 中屏蔽。但仍需注意:如果项目在屏蔽前已经引入了该依赖,本地 go.sum 中仍可能存在缓存。

4.3 对网站运营者的间接风险

虽然这次攻击主要针对开发者,但主机吧认为有两个间接风险值得注意:

风险一:恶意模块可能被引入网站后端代码。 如果你的网站使用了 Go 语言开发的后端服务,且 CI/CD 流程中自动拉取第三方模块,被投毒的模块可能通过构建流程进入生产环境。

风险二:攻击手法可复用。 这次是 Go 模块,下次可能是 npm 包、pip 包。供应链攻击的模式本质上是通用的。

五、主机吧的防护建议

5.1 针对开发环境

  • 严格审查第三方依赖的来源和版本历史
  • 使用 go mod verify 定期校验依赖完整性
  • 在 CI/CD 流程中加入依赖安全扫描
  • 限制开发环境的对外网络访问,防止恶意载荷回连

5.2 针对网站安全

  • 确保网站后端服务使用的所有依赖均来自可信源
  • 接入 WAF 隐藏源站 IP,防止被直接扫描
  • 定期检查服务器上是否有异常进程或外联请求

bash

# 检查可疑外联
netstat -antp | grep ESTABLISHED | grep -v "local-ip"
lsof -i | grep -v "LISTEN"

# 检查非正常端口连接
ss -antp | grep -E "(4444|5555|8088|9999)"

5.3 长期建议

措施说明
依赖锁定使用 go.sum / package-lock.json 锁定依赖版本,避免自动拉取最新版
最小依赖原则能不引入第三方的就不引入,手动实现的代码更可控
安全扫描在 CI 中集成 Snyk、Trivy 等依赖扫描工具
隔离环境开发环境和生产环境网络隔离,减少横向移动风险

六、总结

“Muck and Load” 行动暴露了一个令人不安的事实:GitHub 已经成为恶意软件分发的有效渠道。 攻击者利用 GitHub Actions 制造虚假活跃记录,利用公共平台做死信解析节点,利用开源社区的信任关系投放恶意载荷——整个链条几乎利用了开发者生态的每一个环节。

主机吧给开发者的核心建议只有三条:

  1. 不要信任任何来源不明的开源包
  2. 版本号异常激增的模块都是可疑的
  3. 依赖扫描和网络隔离是开发环境的基本配置

前两条靠自己,第三条交给百度云防护 WAF——基础版 299 元/月,通过主机吧购买享 7.5 折(224 元/月),免费配置指导。

🔗 https://www.zhujib.com/shop/26864.html

给TA打赏
共{{data.count}}人
人已打赏
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
在线客服
在线客服
热线电话
QQ客服
电子邮箱
suduwangluo