222个GitHub仓库牵涉虚假Go包恶意软件攻击

admin 2026-07-14 05:57:03 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 安全研究团队发现名为MuckandLoad的攻击行动,涉及190个GitHub账号下的222个仓库,伪装成活跃开源项目分发恶意软件,包括木马加载器、信息窃取程序和挖矿程序。攻击者使用统一邮箱和GitHubActions工作流伪造开发记录,通过多层加载链从公共平台获取载荷。建议开发者谨慎审查第三方代码,安全团队已上报并拦截相关模块。 综合评分: 83 文章分类: 恶意软件,供应链安全,漏洞分析,数据泄露,威胁情报


cover_image

222 个 GitHub 仓库牵涉虚假 Go 包恶意软件攻击

鹏鹏同学 鹏鹏同学

黑猫安全

2026年7月13日 09:16 湖北

在小说阅读器读本章

去阅读

Socket 安全研究团队最初针对一款恶意 Go 模块展开调查:github.com/kaleidora/dnsub-scanning-tool,该模块伪装成 DNS 和子域名扫描工具。顺着这条线索深挖后,研究人员发现了一个规模庞大的攻击网络:共确认涉及 190 个 GitHub 账号下的 222 个 GitHub 代码仓库,这些仓库均被刻意包装,让恶意或欺诈性软件项目看起来处于持续维护、活跃更新的正常状态,以此诱导用户下载运行。

Socket 将该攻击行动命名为 Muck and Load,命名源自其核心基础设施前缀 Muck,以及用于分发恶意程序的多级加载攻击链。

经确认,这些仓库分发的恶意载荷包括木马加载器、Vidar 信息窃取程序、恶意投放程序、间谍软件,以及基于 XMRig 的门罗币挖矿程序。这并非单纯的钓鱼空仓库,部分仓库会直接分发恶意软件。

dnsub-scanning-tool 模块伪装成一款正规开源子域名枚举工具,其自述文档写着真实扫描工具的功能,但实际代码另有图谋。在正常扫描功能运行前,模块的 main() 函数会执行隐藏的 PowerShell 指令:从 muckcoding.com 下载恶意内容,保存为 api.db,通过 certutil 工具解码后生成 L.ps1,并绕过系统脚本执行策略、以隐藏窗口运行该脚本。Socket 安全公司发布的报告描述如下:

“该加载器的运行方式进一步印证其恶意目的:以隐藏窗口模式启动 PowerShell,并附带参数 -ExecutionPolicy Bypass 执行解码后的脚本。”

“该参数本身并非漏洞利用手段,但常被恶意软件用来绕过本地脚本执行策略限制。结合隐藏运行模式和外部动态解码脚本,其恶意意图非常明确:这款 Go 模块属于第一阶段 Windows 恶意加载器。”

在被实际运行前,该模块就存在明显异常:一款仅上线数月的小型扫描工具,却发布了超 1200 个版本,其中 700 余个版本均为恶意版本。超高版本数量并非正常开发迭代,而是攻击者通过自定义 GitHub Actions 工作流反复提交时间戳信息,伪造持续开发痕迹。

L.ps1 是多层嵌套的 PowerShell 加载脚本,通过 Base64 编码与 XOR 解密逐层解码,最终执行核心恶意功能。其中一层脚本内留有土耳其语注释:“Direkt calistir, baska adim gerekmez”,意思是:直接运行,无需其他步骤。最终解密脚本为地址解析程序:不再硬编码固定下载链接,而是从各类公共中转平台获取加密载荷地址信息。

这些信息中转(死信)平台包括 Pastebin、Rlim 服务、Muck 系列恶意基础设施,以及备用渠道:YouTube、Instagram、Telegram、谷歌文档、GitCode。脚本会检索上述平台内容,查找标记字符串 LastW,提取紧随其后的加密数据,通过硬编码密钥解密,得到真实恶意载荷下载地址。Socket 报告说明:

“加载器并未直接硬编码最终载荷地址,而是从上述公共平台读取文本内容并查找标记 LastW。在本次监测到的中转信息中,LastW 作为标记字符串放置在加密数据块之后。脚本通过该标记定位并提取加密载荷地址数据,再用内置密钥进行解密。从中转平台获取的加密载荷地址数据的 SHA-256 哈希值为: 51cada347262d7b2bcde70552fcdae221625ad75435cee8a9c3e7b67cc47a807。”

解密后的地址指向 GitHub 发布版本中的一个受密码保护的 7z 压缩包:Quixo.7z。加载器下载该压缩包,调用放置在 C:\ProgramData\zipathh\7zrr.exe 的 7-Zip 程序解压文件,并将恶意程序放置在 C:\ProgramData\Windows.Microsoft.Photos 目录下 —— 该目录模仿微软官方应用路径,用以伪装。主程序 Microsoft.exe 以隐藏窗口运行;其签名归属 Exodus Movement, Inc.,并非微软公司,说明攻击者篡改、重打包了一款带签名的 Electron 框架程序,并配合配套脚本实现恶意行为。

本次攻击集群的关键指纹来自同一份 GitHub Actions 工作流配置:222 个涉案仓库共用同一关联邮箱 ischhfd83@rambler[.]ru,配合强制推送脚本、每分钟自动执行的定时任务,以及反复修改时间戳 / 日志文件来伪造提交记录。虽然每次提交显示的用户名随仓库所有者变化,但底层提交邮箱保持不变。

“邮箱与显示用户名不一致是核心指纹:表面提交用户名各不相同,但整个仓库集群共用同一个底层邮箱。攻击者借此批量生成看起来正常的个人开发记录,同时留下可被安全团队追踪的统一特征。”

并非所有仓库都需要直接存放恶意载荷,它们的核心作用是伪装成活跃可信项目,诱导开发者克隆、编译代码或跟随安装教程。钓鱼主题专门瞄准愿意运行非可信代码的用户群体:加密货币 / Web3 工具、钱包插件、助记符保护工具、Telegram 机器人、游戏自动挂机脚本、游戏外挂、恶意加壳程序、渗透测试自动化工具等。大量仓库名称重复套用模板,明显由脚本批量创建,而非真实开发者正常开发。

部分仓库会直接存放恶意载荷:其中一个 Exodus 主题仓库利用双向覆盖(RTL)字符篡改文件名,将 Windows .scr 可执行文件伪装成其他格式文件;一款 PUBG 主题仓库在源码中放置 Loader.exe,关联 Vidar 信息窃取木马;一款使命召唤战区(Warzone)主题仓库通过 GitHub 发布附件分发恶意载荷;同一份 Loader.exe 文件在四个不同仓库中完全一致。

后续执行的恶意载荷包含 AsyncRAT、Quasar、Remcos 等多款远程控制木马,具备信息窃取功能。攻击链会篡改微软 Defender 杀毒软件与 Windows 用户账户控制(UAC)设置,通过计划任务和系统服务实现持久驻留,窃取浏览器账号数据、定时截屏,并通过 Telegram 或其他公共网页服务外传数据。动态分析可观察到 WriteProcessMemorySetThreadContext 等进程注入 API 调用,证实该攻击可实现长期驻留、远程操控、窃取凭证。

Socket 指出,该攻击活动与 Sophos 研究团队此前披露的、同样使用 ischhfd83 邮箱的 GitHub 仓库后门攻击存在关联,同源性证据不只有邮箱一项。

“我们高度确认本次 Muck and Load 攻击属于此前围绕 ischhfd83 开展的同一批 GitHub 仓库后门攻击集群,判断依据不止单一可变指标。Muck 域名与关联邮箱是关键线索,更核心证据在于统一的仓库自动化伪造模式、钓鱼主题设计、多级加载架构、载荷分发方式以及后续恶意行为。”

研究人员同时提到:邮箱地址、Muck 域名和中转链接都可以被攻击者随时更换,但整体攻击模式很难彻底改变。

Socket 已向 Go 语言安全团队上报该恶意 Go 模块,Go 模块代理已对其进行拦截;同时也向 GitHub 安全团队举报相关恶意仓库。这些措施虽无法根除攻击者整体攻击手段,但能够减少普通开发者搜索代码仓库时遭遇恶意项目的风险。

本次统计的 222 个仓库为保守统计口径,仅包含同时匹配该恶意邮箱及伪造 GitHub Actions 脚本的仓库,并非本次调查中发现的全部可疑钓鱼仓库。


免责声明:

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

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

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

本文转载自:黑猫安全 鹏鹏同学 鹏鹏同学《222 个 GitHub 仓库牵涉虚假 Go 包恶意软件攻击》

评论:0   参与:  0