跨平台RAT通过武器化的'requests'克隆部署

💡 原文英文,约800词,阅读约需3分钟。
📝

内容提要

Stacklok发现了一个名为invokehttp的PyPI软件包中的恶意代码。该软件包的元数据存在不一致性,并且与其声称的GitHub仓库没有验证的连接。该软件包看起来是一个用于Python的合法的HTTP请求库,但实际上它从requests库中复制了代码并添加了恶意内容。代码包括一个exec()调用,用于执行从解码的Base64脚本中获取的内容,该脚本根据操作系统下载并执行第二阶段的载荷。该载荷具有远程命令执行、系统控制、数据泄露和检测逃避的功能。该软件包已向PyPI维护人员报告,并迅速从注册表中删除。

🔎

延伸解读

攻击者的伪装策略

攻击者没有直接冒充requests库,而是将invokehttp与一个流行的Selenium ChromeDriver GitHub仓库关联,利用其高星标和关注度提升可信度。这种“星标劫持”手法与直接冒充同样有效,且更易迷惑快速检查元数据的用户。

恶意代码的隐蔽技巧

恶意代码将base64.b64decode重命名为invoke,并将os、platform等模块用borrow、blacktrone等别名导入,以绕过基于字符串的检测。这种防御规避手段增加了静态分析的难度,提醒安全工具需关注别名和动态执行行为。

第二阶段载荷的能力

marshal.exe和trezznor是Go编写的可执行文件,具备远程进程注入、键盘记录、屏幕捕获、数据收集和泄露等功能,并引用Telegram和Tor地址用于C2通信。这些特征符合远程访问木马(RAT)的典型行为,表明攻击者意图长期控制受害者系统。

事件响应与启示

Stacklok在发现后迅速向PyPI报告,invokehttp于8月30日被移除。此事件凸显了自动化威胁检测和及时披露的重要性。开发者应仔细审查包元数据,如版本号异常、主页链接不相关等,以降低供应链攻击风险。

❓

Q&A

invokehttp软件包的主要问题是什么?

invokehttp软件包中存在恶意代码,且其元数据不一致,与声称的GitHub仓库没有验证的连接。

invokehttp是如何伪装成合法库的?

invokehttp看似是一个合法的Python HTTP请求库,实际上复制了requests库的代码并添加了恶意内容。

invokehttp中的恶意代码具体做了什么?

恶意代码通过exec()调用执行解码的Base64脚本,下载并执行第二阶段的载荷,具有远程命令执行和数据泄露功能。

invokehttp软件包是如何被发现的?

Stacklok的自动威胁检测平台在8月29日发现了invokehttp软件包中的恶意代码,并发出了警报。

PyPI对invokehttp软件包采取了什么措施?

invokehttp软件包在被报告后迅速从PyPI注册表中删除,防止了进一步的安装。

invokehttp的第二阶段载荷是什么?

第二阶段载荷根据操作系统下载并执行,Windows系统为marshal.exe,Linux系统为trezznor。

🏷️

标签

➡️

继续阅读