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

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.6 | Socket 2026.7 |
|---|---|---|
| 邮箱指纹 | ischhfd83@rambler.ru | 相同 |
| 关联仓库数 | 141 个 | 222 个 |
| 攻击者别名 | Muck | Muck |
| 相关域名 | — | muckcoding.com / muckdeveloper.com |
Sophos 当时还发现,”Muck”正是该攻击者使用的别名之一,这也解释了为什么新活动中出现了 muckcoding.com 和 muckdeveloper.com。

四、对开发者的影响
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 制造虚假活跃记录,利用公共平台做死信解析节点,利用开源社区的信任关系投放恶意载荷——整个链条几乎利用了开发者生态的每一个环节。
主机吧给开发者的核心建议只有三条:
- 不要信任任何来源不明的开源包
- 版本号异常激增的模块都是可疑的
- 依赖扫描和网络隔离是开发环境的基本配置
前两条靠自己,第三条交给百度云防护 WAF——基础版 299 元/月,通过主机吧购买享 7.5 折(224 元/月),免费配置指导。
