研究人员在3个恶意PyPI包中发现了后门密码窃取器。
研究人员发现由于存在恶意request依赖导致keep、pyanxdns、api-res-py 3个PyPI包部分版本中存在后门。CVE编号为CVE-2022-30877、CVE-2022-30882、CVE-2022-31313。受影响的版本为:
-
Keep v1.2版本;
-
Pyanxdns v0.2版本;
-
api-res-py v0.1版本。
比如,keep项目使用合法python模块requests进行HTTP请求,但keep v1.2版本中使用的是request,这是一个恶意软件。
使用恶意request的keep包
5月,GitHub用户duxinglin1注意到部分keep、pyanxdns、api-res-py包版本汇总包含’request’依赖。pyanxdns、api-res-py包的用户规模较小,keep包的用户数量比较大,平均每周下载量超过8000次,keep v1.2版本中使用了恶意request依赖。
PyPI keep包主页
Keep v1.2版本中包含恶意request依赖
Request中的恶意代码如下所示:
第57行包含到check.so恶意软件的base64编码的URL。Threat intel研究人员还发现了另一个与request依赖有关的URL——x.pyz:
http://dexy[.]top/request/check.so
http://dexy[.]top/x.pyx
文件check.so会传播一个远程访问木马RAT,研究人员分析发现x.pyx中包含一个信息窃取恶意软件,可以从谷歌、Firefox、Yandex、Brave等web浏览器中窃取cookie和个人信息:
解码的x.pyx文件内容
信息窃取木马会尝试窃取用户浏览器中保存的登录用户名和密码。在获取用户凭证信息后,攻击者会尝试入侵开发者使用的其他账户,引发潜在的供应链攻击。
账户劫持还是打字错误?
多个PyPI包中存在恶意依赖引发了严重的问题。研究人员与包开发者联系以确定出现恶意依赖原因是打字错误、维护者账户劫持、还是自我破坏?
pyanxdns包的作者和维护人员确认出现恶意依赖的原因是打字错误。开发人员也重新上传了新版本的PyPI版本,并删除了引用了恶意request依赖的版本。研究人员称,即使恶意request包被PyPI移除,许多镜像网站并不会完成删除该包,因此恶意包仍然可以安装。
参考及来源:https://www.bleepingcomputer.com/news/security/pypi-package-keep-mistakenly-included-a-password-stealer/
原文始发于微信公众号(嘶吼专业版):PyPI包被曝含有密码窃取器