paint-brush
RAT 突变体如何在 Python 中窃取数据并逃避检测 经过@hernanortiz
3,732 讀數
3,732 讀數

RAT 突变体如何在 Python 中窃取数据并逃避检测

经过 Hernán Ortiz7m2023/02/02
Read on Terminal Reader

太長; 讀書

尽管我们的安全研究人员每天都会发现恶意 Python 包,但一种我们称之为 RAT 突变体的新型恶意软件正在引起我们的注意。随着时间的推移,他们已经转变和适应,变得更加规避和危险。以下是他们如何窃取您的加密货币钱包和个人数据、远程控制您的鼠标和键盘以及如何进化以逃避检测的故事。
featured image - RAT 突变体如何在 Python 中窃取数据并逃避检测
Hernán Ortiz HackerNoon profile picture



“聪明的忍者不会去寻找他不完全了解的敌人。”——《忍者神龟》中的斯普林特


作为一名对科幻小说充满热情的技术作家,我在 Sonatype 的工作中最激动人心的部分之一就是我有机会与安全研究团队合作。


自从我们发现对应于我们所说的 RAT 突变体——利用远程访问木马和信息窃取程序功能的新型恶意软件——我们的安全研究人员有一种挥之不去的似曾相识感。


这种情况并不少见:他们不断评估来自开源注册表的数百个可疑包,以确定它们是否真的是恶意的。在此过程中,他们会识别包裹之间熟悉的模式,有时,在认识到强烈的相似性后,他们会进行进一步的研究以追踪背后的参与者/活动。


从 2022 年的最后一周到 2023 年初,我们的 AI 系统标记了上传到 PyPI 注册表的可疑包,包括pyrologin easytimestamp discorder discord-dev style.pypythonstyles 。我们的安全研究人员查看了它们并确认它们确实是恶意的。经过进一步分析,他们注意到这些软件包添加了一系列在 Python 恶意软件中不常见的功能。


在已成为事实上的策略中,不良行为者将有效负载隐藏在setup[.]py文件中,因此开发人员只需使用简单的 pip 安装即可被感染。在这种情况下,他们会无意中启动一个 PowerShell 脚本,该脚本下载一个 ZIP 文件来安装库,让攻击者控制受害者的鼠标、键盘、截取屏幕截图并创建隐藏的远程连接。最重要的是,这些软件包还会泄露密码、cookie 和加密货币钱包数据等敏感信息,甚至会尝试安装远程访问工具。我们的发现符合非常相同的包。


尽管如此,安全研究员 Carlos Fernandez 还是有一种挥之不去的似曾相识感。在我们公开这些软件包后的一周内,他脑海中闪过看到该恶意软件早期版本的记忆。威胁行为者可能一直在随着时间的推移发展他们的恶意软件,但我们需要确定,所以我戴上我的 OSINT 帽子来帮助他看看他的直觉是否有任何道理。

起源故事

回顾我们的数据库,2022 年 9 月 25 日,一个名为pygradient的包被上传到 PyPI 存储库。我们的 AI 将其标记为可疑,我们的安全研究人员确认它包含恶意软件,并且捆绑了另一个名为pystyle的软件包的源代码。这两个库都是由 ,又名 BillyTheGoat,又名 BillyV3(由 loTus04 和 BlueRed 贡献)。这位来自法国的作者(至少这是他在 GitHub 中的位置和通过他的 Discord 频道使用的语言所暗示的)被认为是背后的人,我们经常在最近上传的恶意软件中发现的 Python 混淆器,也是,一个信息窃取者,自 7 月以来一直活跃在打开注册表。


W4SP 窃取程序拥有持久性(每次用户重新启动 PC 时它都会重新激活)、混淆(作者保证它完全无法检测)和隐写术技术来隐藏图像文件中的多态和高度混淆的有效负载。恶意软件通过硬编码的 Discord webhook 地址将所有受害者的 Discord 帐户、信用卡、密码和加密钱包发送回攻击者。对此恶意软件感兴趣的不良行为者通过支付约 20 美元的加密货币购买了它。



解码图像后,会显示隐藏的 base64 混淆 Python 代码。



最初, pystyle并没有恶意——一个无害的样式和颜色控制台输出包,以增强可读性和用户体验。但根据 Phylum 的研究,一旦它变得流行(该软件包在 PyPI 上仍然活跃并且每月累积超过 40,000 次下载),他们决定在几个版本中添加 W4SP 恶意软件。


诸如pystyle之类的开源软件包可以充当潜伏代理数月之久,但稍后会被其作者出于恶意目的而激活。这是一个冒险的举动,因为他们流行的软件包可能会被像我们这样的安全研究人员发现,他们会将其报告为恶意软件包并永久删除。这就是为什么他们经常创建新的包,而不是在其中包含无害库的源代码、添加某种类型的恶意负载并以新名称上传它:一些通用的、听起来温和的、看起来无辜的东西。诸如pygradient类的名称。


在与 Carlos 仔细研究后,我们发现这个 proto-RAT 变异恶意软件缺少 12 月版本的一些功能:尽管它也启动了一个 PowerShell 脚本并泄露了敏感数据,但它没有使用 base64 编码的有效负载或白名单txt 文件以避免自我感染。在某种程度上,它是一种更温和、更不复杂的变体。


但随后我们查看了 11 月初上传的软件包,包括paintpydevicespoofdevicespoofer ,在深入研究之后,我们发现我们的怀疑得到证实:恶意软件确实在进化。

追逐恶意软件的模仿者

尽管 BillyTheGoat 自去年 11 月以来就没有在 GitHub 上活跃过,但我们仍在发现基于他的创作或直接从他们那里窃取的恶意软件,主要是由一位显然位于葡萄牙的用户所为.


该用户在 PyPI 中上传了一个名为pystilez的最近删除的包,错误地归功于 BillyTheGoat,看起来像- 一种通过将其链接到流行的 GitHub 库来提高其新包声誉的技术,从而与其数百个星和分支相关联。


Checkmarx公司这个坏人在一个名为apicolor (以及类似名称的变体)的包中发现了 W4SP 攻击,该包在其恶意代码中包含一个 Discord 服务器链接。链接到经过验证的 Steam 帐户的管理员配置文件和名称“zeeckt”显示为攻击者的 Steam 别名之一。


还报告说,这个威胁行为者通过复制流行的 GitHub 帐户的配置文件来创建虚假用户以增加合法性。他们的一名受害者决定创造在迷上他们的虚假个人资料后警告人们注意这次攻击。


一位安全研究人员出于教育目的发布了 zeeckt 的一个有效负载,他收到了 W4SP 窃取程序的合著者的有趣回复:




多么讽刺你的偷窃者被偷了。


同一位作者,显然是一名 17 岁的 Python 开发人员,在他的 GitHub 个人资料中的 README 文件中重申了他的挫败感:



我们不知道 zeeckt 从其他不良行为者那里窃取了哪些恶意代码,但可以肯定的是:这个名字继续出现在开源注册表的恶意软件活动中。


偷偷摸摸的变体蚕食你的加密财富

卡洛斯最近又发现了四个包裹: forenitq , forenith , forenityforenitz 。经过进一步调查,他将它们标记为恶意,并向 PyPI 报告以将其删除。最快的案例从发布到删除大约需要 20 分钟。


查看forenitq中的setup[.]py Carlos 发现了以下第一阶段 payload:




攻击者创建三个临时文件,使用“开始”命令从特定 URL 下载和执行 Windows 二进制文件。尽管 slug /rat/clip暗示有恶意,但我们无法在不深入了解的情况下确认该假设。


在撰写本文时,位于hxxp://20[.]226[.]18[.]203的页面仍处于活动状态,它只显示指向已过期或私密的 Discord 邀请的链接。


卡洛斯注意到这个包裹假装很受欢迎包,使用他们的元数据进行可能的 StarJacking 尝试。


在对 RAT 文件进行去混淆处理后,他发现了一行加载了一个可能的剪贴板劫持者,但它的细节是 base64 编码的:


解码后,我们得到一段 Python 代码,旨在劫持受害者的剪贴板,以用攻击者的地址替换预期的加密货币钱包地址:


它寻找指定的模式,如比特币(bc1)、以太坊(0x)、门罗币 (4) 和莱特币(L 或 M 或 3),当找到模式时,它会将预期地址替换为攻击者的加密货币钱包地址.


该代码使用用于复制和粘贴剪贴板数据的库。如果尚未安装,它将安装库,然后将加密货币钱包地址复制到剪贴板。然后将代码设置为连续循环以监视剪贴板中的钱包地址模式。


此外,我们还发现了这个 RAT 突变体用来逃避检测的更多技术:将第一阶段有效载荷添加到文件forenitq/ansi[.]py而不是setup[.]py和第二阶段多态有效载荷,它会在每次运行时发生变化二进制文件。


攻击者还添加了一个新的命令和控件以及一个非常完整的帮助菜单——这次是se fala português:



如您所见,恶意行为者渴望窃取您的加密货币资金和系统凭据,以进一步渗透您的基础设施。他们的 RAT 恶意软件不断变异,变得更加隐蔽并对开发人员造成破坏。因此,如果您现在没有保护您的软件供应链,请考虑尽快采取行动。


IOC(妥协指标)

hxxp://20[.]226[.]18[.]203/inject/tCxFLYLT6ViY9ZnP

hxxp://20[.]226[.]18[.]203/clip

hxxp://20[.]226[.]18[.]203/rat


바카라사이트 바카라사이트 온라인바카라