Socket 研究团队发现了一个名为“fabrice”的恶意 Python 包,它冒充流行的“fabric”SSH 自动化库并从毫无戒心的开发人员那里窃取 AWS 凭证。
继最近针对NPM 用户的大规模攻击之后,这一发现凸显了通过具有欺骗性的开源库进行传播的恶意软件的持续风险。
自 2021 年在 PyPI 存储库上首次亮相以来,“fabrice”一直在秘密窃取 AWS 凭证,累计下载量超过 37,000 次。
合法的“fabric”库由开发人员 bitprophet 制作,下载量超过 2.01 亿次,赢得了全球开发人员的信任。然而,“fabrice”试图利用这种信任,利用专为凭证盗窃、后门创建和在特定平台上执行命令而设计的有效载荷。
Socket 的报告深入研究了“fabrice”在 Linux 和 Windows 系统上的恶意活动,并深入了解了其策略和手段,以帮助减轻此类威胁。
非法“fabrice”根据底层操作系统(无论是 Linux 还是 Windows)采用不同的策略来执行恶意操作。对这些操作的详细分析揭示了其复杂而险恶的设计。
Linux
在 Linux 系统上,“fabrice”使用名为“linuxThread()”的函数,用于从外部服务器下载、解码和执行脚本。它专门针对隐藏目录,同时利用混淆技术来避免检测。
`linuxThread()` 函数尝试创建一个隐藏目录(`~/.local/bin/vscode`)来存储其下载的有害负载,这使得用户难以发现任何异常。
它使用模糊的 URL(通过字符串连接拼凑而成)连接到 IP 地址(89.44.9.227,由 M247 在巴黎连接到 VPN 服务器)以下载脚本。然后,检索到的文本被解析为存储在隐藏目录中的多个可执行文件。
通过设置执行权限,该函数运行其中一个脚本(“per.sh”),这可能让攻击者以用户的权限执行命令。
视窗
对于 Windows 平台,“fabrice”使用“winThread()”函数,该函数依靠 base64 编码的有效负载来制作恶意脚本执行和持久机制。
此函数中有两个关键的 base64 编码有效载荷,分别指定为“vv”和“zz”,每个载荷都经过解码以执行特定的恶意任务:
- “vv”:解码后,“vv”会生成一个 VBScript(“p.vbs”),该脚本会在未经用户同意的情况下秘密运行隐藏的 Python 脚本(“d.py”)。VBScript 使用“WScript.Shell”对象来隐藏执行错误,从而使有害活动不受控制地继续进行。
- “zz”: “zz”有效载荷通过从攻击者的服务器(同一 IP)下载假定的可执行文件(“chrome.exe”)并将其存储在下载文件夹中来构建威胁。然后,它通过创建一个计划任务(“chromeUpdate”)来建立持久性,该任务每隔 15 分钟定期执行该文件。随后,它会删除初始的“d.py”脚本,以减少其活动的痕迹。
AWS 凭证泄露
“fabrice”的主要目的似乎是窃取 AWS 凭证。此包使用“boto3”库来收集 AWS 访问和密钥,然后将其传输到远程服务器。通过获取这些凭证,攻击者可能会解锁对敏感云资源的访问权限。
传输到 VPN 端点的这些数据有助于掩盖攻击来源,并方便滥用被盗凭证,而无法轻易追踪犯罪者的身份。
Socket 研究团队意识到“fabrice”带来的严重风险,已将此恶意软件包报告给 PyPI 团队,要求其删除。Socket 鼓励开发人员保持警惕,认真验证依赖项,并采用威胁检测工具,以防止任何未经授权的入侵其关键环境。