恶意PyPI包在Windows、Linux 和Mac上打开后门

发布时间:2022-05-22 00:03

在 PyPI 注册表中发现了另一个恶意 Python 包,它执行供应链攻击以在 Windows、Linux 和 macOS 系统上删除 Cobalt Strike 信标和后门。

PyPI 是一个开源包的存储库,开发人员可以使用它来分享他们的工作或从他人的工作中受益,下载他们的项目所需的功能库。

2022 年 5 月 17 日,威胁参与者将一个名为“pymafka”的恶意程序包上传到 PyPI。该名称与 PyKafka 非常相似,后者是一种广泛使用的 Apache Kafka 客户端,在 PyPI 注册表上的下载量超过 400 万次。

拼写错误的软件包在被删除之前仅达到了 325 的下载次数。但是,它仍然可能对受影响的人造成重大损害,因为它允许初始访问开发人员的内部网络。

Sonatype 发现了 pymafka 并将其报告给 PyPI,后者昨天将其删除。尽管如此,下载它的开发人员必须立即更换它并检查他们的系统是否存在 Cobalt Strike 信标和 Linux 后门。

PyMafka 感染过程
在 Bleeping Computer 的记者 Ax Sharma 的一份报告中,研究人员解释说,感染始于执行包中的“setup.py”脚本。

此脚本检测主机操作系统,并根据它是 Windows、Linux 还是 Darwin (macOS),获取在系统上执行的兼容恶意负载。

setup.py 脚本代码 (Sonatype)
对于 Linux 系统,Python 脚本连接到位于 39.107.154.72 的远程 URL,并将输出通过管道传输到 bash shell。不幸的是,在撰写本文时,该主机已关闭,因此尚不清楚执行了哪些命令,但据信它打开了反向 shell。

对于 Windows 和 macOS,有效负载是 Cobalt Strike 信标,它提供对受感染设备的远程访问。

Cobalt Strike 是一个被广泛滥用的渗透测试套件,具有强大的特性,例如命令执行、键盘记录、文件操作、SOCKS 代理、权限提升、凭据窃取、端口扫描等。

它的“信标”是难以检测的无文件 shellcode 代理,可让远程参与者稳定可靠地访问受感染的系统,将其用于间谍活动、横向移动或部署勒索软件等第二阶段有效负载。

“在 Windows 系统上,Python 脚本试图将 Cobalt Strike 信标放在‘C:\Users\Public\iexplorer.exe’,” Sonatype 的报告详细说明。

“请注意,这种拼写错误很突出,因为合法的 Microsoft Internet Explorer 进程通常称为“iexplore.exe”(末尾没有“r”),并且不存在于 C:\Users\Public 目录中。”

下载的可执行文件与它们所针对的操作系统相匹配,即“win.exe”和“macOS”,并在它们启动后尝试联系中国 IP 地址。

在检测率方面,VirusTotal 扫描在 61 分中给出了 20 分,因此虽然有效载荷并不是完全隐蔽,但它们保留了令人满意的规避百分比。

VirusTotal 扫描结果 (Sonatype)
此攻击旨在提供对开发人员网络的初始访问权限,允许他们通过网络横向传播以窃取数据、植入更多恶意软件,甚至进行勒索软件攻击。

如何保持安全
从软件开发人员的角度来看,当有人使用不可信的包时,有几件事是做错的,但最常见且公认容易发生的是在构建过程中输入错误的包名。

软件开发人员应该仔细检查包名称和详细信息,并在某些东西看起来很时髦时仔细检查他们选择的构建块。


PyPI 注册表(Sonatype)上的 PyMafka 页面
在这种情况下,该包试图伪装成一个知名项目,但它在 PyPI 页面上没有描述,没有主页链接,发布历史极短,以及莫名其妙的最近发布日期。

这些都是出现问题的明显迹象,但从终端上看不到任何迹象,因此确认包裹选择至关重要。

客户热线:037125966675