【天问】PyPI 2023年Q3恶意包回顾(一)
/ / 点击 / 阅读耗时 20 分钟2023年第三季度,天问Python供应链威胁监测模块共捕捉到320个恶意包。其中包含大量类似W4SP Stealer的信息窃取恶意包,它们可以窃取受害者的个人信息,Discord密码,加密货币钱包等敏感信息。分析表明,攻击者会不断迭代更新他们的工具来规避安全检测,这给供应链安全带来了巨大的挑战。
天问供应链威胁监测模块是奇安信技术研究星图实验室研发的“天问”软件供应链安全分析平台的子模块,”天问“分析平台对Python、npm等主流的开发生态进行了长期、持续的监测,发现了大量的恶意包和攻击行为。
1. 类W4SP Stealer
W4SP Stealer是GitHub用户loTus04等人开发的一个Python木马,其可以窃取用户密码,浏览器cookies,Discord Token等敏感数据。在去年10月份PyPI中就出现了利用W4SP Stealer攻击的恶意包,相关报告可见[1]。下图是W4SP Stealer的攻击结果示例图。
我们在Q3的恶意包中发现了许多基于W4SP Stealer的恶意包,由于W4SP Stealer仓库已被开发者删除,所以攻击者利用的是基于W4SP Stealer修改的工具。
neverbeentgg-1.0.0/neverbeentgg/__init__.py
1 | import contextlib |
我们截取了这个攻击代码窃取谷歌浏览器Chrome中密码的主要逻辑函数。观察上面的代码我们可以知道,在GatherAll
函数中,攻击者首先会访问Chrome在本地存放目录"{local}/Google/Chrome/User Data"
。然后,攻击者通过getPassw
函数从"{local}/Google/Chrome/User Data/Default/Login Data"
中获取了用户登陆网站的用户名以及密码等数据。并且他们从{local}/Google/Chrome/User Data/Local State
得到了master_key
。最终,他们通过这两部分数据成功拿到了明文的用户名和密码。
我们在windows系统上测试了相关代码,确实可以拿到在Chrome中存储的用户名和密码。
攻击者会将获取的密码写入临时文件wppassw.txt
中,然后通过uploadToAnonfiles
函数上传到一个文件存储网站https://gofile.io/
中。
1 | def uploadToAnonfiles(path): |
uploadToAnonfiles
函数会返回一个下载链接的地址,如下图所示。
最终,攻击者将得到的下载链接通过upload
回传到自己设置的服务器地址,即代码开头设置的hook = https[:]//discord.com/api/webhooks/xxx
。
此类攻击代码不仅可以窃取受害者主机上的密码等敏感信息,而且可以通过获取本地cookie的方式来窃取受害者各种网络账号的相关内容,危害十分严重。
2. BlackCap Grabber
这类攻击与第一种类W4SP Stealer的攻击相近,都是通过读取受害者主机中的敏感文件来窃取各种隐私信息,例如discord密码,信用卡信息等等。关于BlackCap Grabber的功能可见下图,我们在Q2的恶意包分析中也提到了此类攻击,具体内容可见 【天问】2023年Q2恶意包回顾(一)。
我们在Q3的恶意包监控中共发现了148个此类恶意包,这些恶意包的版本号均为1.1.0
,包名则是利用各种Python常见术语的拼合,例如pipcryptolibraryV2
,详细的恶意包列表见文末。
3. TypoSquatting
requests
是下载量最高的Python包之一,因此很多恶意包会将包名伪装成与requests
极其相近。其利用用户下载第三方包的输入错误来达到下载安装的目的。在Q3的监测中,我们发现了7个此类恶意攻击包。
我们对比了这些恶意包和requests
中模块文件夹,发现他们包含完全相同的文件,如下图所示。
攻击者在setup.py
中添加了恶意代码,而在src/request3
中则完全复制了requests
模块文件夹的内容。
requests3-2.19.3/setup.py
1 | #!/usr/bin/env python |
4. 恶意文件嵌入
此类攻击会将恶意的二进制文件以base64字符串等形式存入脚本,然后在下载安装时直接将这些内容加载到内存中进行执行。Q3发现的大多数此类恶意包均为White Snake,其会将主机的敏感信息通过Telegram聊天向攻击者回传。详细分析内容可见【天问】2023年Q2恶意包回顾(一)。
5. 附录(恶意包列表)
类W4SP Stealer
包名 版本 作者 上传时间 hnUHfYZUmKMO 0.3.2 xotifol394 2023-07-20T21:37:13 lyFamDoRKsGb 0.3.2 xotifol394 2023-07-20T21:52:25 EoerbIsjxqyV 0.3.2 xotifol394 2023-07-20T21:55:40 WkquBsXEkbXn 0.3.2 xotifol394 2023-07-20T22:29:38 jzyRLjROXlCa 0.3.2 xotifol394 2023-07-21T02:05:23 eeAjHjmCLAkF 0.3.2 tiles77583 2023-07-21T15:41:31 MJpoYTWNgddh 0.3.2 poyon95014 2023-07-21T20:55:57 requesters 0.0.1 reazadude 2023-07-26T14:52:46 requesters 0.0.1 reazadude 2023-07-26T14:52:48 requestery 1 blackpythone 2023-07-26T15:16:53 requestery 2 blackpythone 2023-07-26T15:24:12 tgrequests 0.0.0 blackpythone 2023-07-26T15:42:11 neverbeentgg 1.0.0 hmedsatour 2023-07-26T16:03:57 pyttpmodule 0.2 Peppy187 2023-08-16T23:42:25 javapatch 0.6 DeKrypt 2023-09-23T13:58:23 javapatch 0.7 DeKrypt 2023-09-23T14:02:23 BlackCap Grabber
包名 版本 作者 上传时间 pipcryptoextensionsV1 1.1.0 john85571 2023-07-02T21:38:22 pipcryptoextensionsV1 1.1.0 john85571 2023-07-02T21:38:24 pipcryptolibraryV2 1.1.0 kristiepatton520 2023-07-02T21:39:42 pipcryptolibraryV2 1.1.0 kristiepatton520 2023-07-02T21:39:43 pipsqlite3kitV2 1.1.0 barbara72696 2023-07-03T02:36:19 pipsqlite3kitV2 1.1.0 barbara72696 2023-07-03T02:36:21 pysqlite2liberyV1 1.1.0 vjohnson399 2023-07-03T02:39:37 pysqlite2liberyV1 1.1.0 vjohnson399 2023-07-03T02:39:39 pycryptographymodulesV1 1.1.0 brittanyanderson138 2023-07-04T09:20:10 pycryptographymodulesV1 1.1.0 brittanyanderson138 2023-07-04T09:20:12 syscolouringsaddon 1.1.0 gregorygibson799 2023-07-05T08:49:32 syscolouringsaddon 1.1.0 gregorygibson799 2023-07-05T08:49:34 pythoncolouringspackageV1 1.1.0 knoxjohn803 2023-07-05T08:50:36 pythoncolouringspackageV1 1.1.0 knoxjohn803 2023-07-05T08:50:38 pycolorpackage 1.1.0 ihernandez777 2023-07-05T10:32:08 pycolorpackage 1.1.0 ihernandez777 2023-07-05T10:32:10 syssqlite2libaryV2 1.1.0 jeffrey89721 2023-07-05T10:33:09 syssqlite2libaryV2 1.1.0 jeffrey89721 2023-07-05T10:33:11 pipcoloringskitsV1 1.1.0 wjones327 2023-07-06T14:52:45 pipcoloringskitsV1 1.1.0 wjones327 2023-07-06T14:52:47 syscoloringsaddition 1.1.0 lindasmith611 2023-07-14T10:39:03 syscoloringsaddition 1.1.0 lindasmith611 2023-07-14T10:39:05 syssqlitedbmodules 1.1.0 wadestephanie541 2023-07-14T18:46:42 syssqlitedbmodules 1.1.0 wadestephanie541 2023-07-14T18:46:44 pitutil 1.0.0 lindasmith611 2023-07-14T18:49:16 pitutil 1.0.0 lindasmith611 2023-07-14T18:49:18 pipcoloringstools 1.1.0 gregorygibson799 2023-07-17T15:07:16 pipcoloringstools 1.1.0 gregorygibson799 2023-07-17T15:07:17 pythoncryptextensions 1.1.0 grantanthony506 2023-07-17T15:08:24 pythoncryptextensions 1.1.0 grantanthony506 2023-07-17T15:08:25 pythonsqltoolkitV1 1.1.0 lwilliams529 2023-07-18T00:00:05 pythonsqltoolkitV1 1.1.0 lwilliams529 2023-07-18T00:00:09 pipsqladdV1 1.1.0 laurapena682 2023-07-18T00:01:14 pipsqladdV1 1.1.0 laurapena682 2023-07-18T00:01:15 pipcryptkits 1.1.0 destinyorozco690 2023-07-18T00:57:48 pipcryptkits 1.1.0 destinyorozco690 2023-07-18T00:57:50 pysqlite3extensionV2 1.1.0 cherylroth283 2023-07-18T00:58:53 pysqlite3extensionV2 1.1.0 cherylroth283 2023-07-18T00:58:54 pipsqlite3mod 1.1.0 qomfkouxccenuea 2023-07-18T01:36:30 pipsqlite3mod 1.1.0 qomfkouxccenuea 2023-07-18T01:36:32 syssqllib 1.1.0 jasoncochran489 2023-07-18T01:50:31 syssqllib 1.1.0 jasoncochran489 2023-07-18T01:50:33 pipsqlitekitV2 1.1.0 megangraham186 2023-07-18T11:39:28 pipsqlitekitV2 1.1.0 megangraham186 2023-07-18T11:39:30 pythonfontingadds 1.1.0 nicholasmyers782 2023-07-18T12:48:30 pythonfontingadds 1.1.0 nicholasmyers782 2023-07-18T12:48:32 pycryptographypackageV1 1.1.0 lhunter314 2023-07-18T13:21:01 pycryptographypackageV1 1.1.0 lhunter314 2023-07-18T13:21:03 pipsqlipackages 1.1.0 jack24276 2023-07-18T13:24:06 pipsqlipackages 1.1.0 jack24276 2023-07-18T13:24:07 pythonsqlitedbpackagesV2 1.1.0 samueljoseph617 2023-07-18T14:08:39 pythonsqlitedbpackagesV2 1.1.0 samueljoseph617 2023-07-18T14:08:40 pythoncolourextension 1.1.0 njennings453 2023-07-18T14:08:44 pythoncolourextension 1.1.0 njennings453 2023-07-18T14:08:46 pythoncolouringtoolkitsV2 1.1.0 skupwtdiyhqnagp 2023-07-18T14:39:48 pythoncolouringtoolkitsV2 1.1.0 skupwtdiyhqnagp 2023-07-18T14:39:50 pythonsqlitetoolkitV1 1.1.0 lkkokmwmevljche 2023-07-18T15:29:59 pythonsqlitetoolkitV1 1.1.0 lkkokmwmevljche 2023-07-18T15:30:01 pythoncolouringsliberyV1 1.1.0 jxpoeweaozdxnmd 2023-07-18T19:24:24 pythoncolouringsliberyV1 1.1.0 jxpoeweaozdxnmd 2023-07-18T19:24:26 pipfontinglibV2 1.1.0 srtleeidscjffix 2023-07-18T20:51:10 pipfontinglibV2 1.1.0 srtleeidscjffix 2023-07-18T20:51:12 pycoloringextensionV1 1.1.0 xivchfueofueqzo 2023-07-19T01:21:04 pycoloringextensionV1 1.1.0 xivchfueofueqzo 2023-07-19T01:21:06 pycolorpkgsV2 1.1.0 mzrblruljwldftk 2023-07-19T01:45:36 pycolorpkgsV2 1.1.0 mzrblruljwldftk 2023-07-19T01:45:37 pipcoloringsliberyV1 1.1.0 pxtamctorwjjruq 2023-07-19T02:50:09 pipcoloringsliberyV1 1.1.0 pxtamctorwjjruq 2023-07-19T02:50:11 pipcolouringext 1.1.0 hhrmkjdfgkeisug 2023-07-19T03:42:38 pipcolouringext 1.1.0 hhrmkjdfgkeisug 2023-07-19T03:42:40 pipsqlitedbkit 1.1.0 PythonDiscordPussys 2023-07-20T21:59:19 pipsqlitedbkit 1.1.0 PythonDiscordPussys 2023-07-20T21:59:21 pipsqliteexts 1.1.0 PythonDiscordPussyss 2023-07-21T12:21:28 pipsqliteexts 1.1.0 PythonDiscordPussyss 2023-07-21T12:21:29 pythoncolourmoduleV2 1.1.0 PythonDiscordPussyss 2023-07-21T14:44:02 pythoncolourmoduleV2 1.1.0 PythonDiscordPussyss 2023-07-21T14:44:03 pipcolourpkgs 1.1.0 PythonDiscordPussyss 2023-07-21T15:06:31 pipcolourpkgs 1.1.0 PythonDiscordPussyss 2023-07-21T15:06:33 pysqlilibery 1.1.0 HolgerHolger 2023-07-21T23:08:06 包名 版本 作者 上传时间 pysqlilibery 1.1.0 HolgerHolger 2023-07-21T23:08:07 pythonsqlite3libaryV1 1.1.0 nomnomnom123 2023-07-21T23:58:11 pythonsqlite3libaryV1 1.1.0 nomnomnom123 2023-07-21T23:58:13 syscolouringpkgV2 1.1.0 FrozenApple 2023-07-24T00:44:20 syscolouringpkgV2 1.1.0 FrozenApple 2023-07-24T00:44:21 pythonsqliteext 1.1.0 cecwokyiixusatn 2023-07-24T16:08:04 pythonsqliteext 1.1.0 cecwokyiixusatn 2023-07-24T16:08:05 pyfontstools 1.1.0 wjiewhvtkdbgzdf 2023-07-24T18:16:35 pyfontstools 1.1.0 wjiewhvtkdbgzdf 2023-07-24T18:16:37 syscryptographyadd 1.1.0 mctcwsetbpzcmim 2023-07-24T19:18:13 syscryptographyadd 1.1.0 mctcwsetbpzcmim 2023-07-24T19:18:15 syscolouringexts 1.1.0 tfllilfkzykopvx 2023-07-24T21:19:00 syscolouringexts 1.1.0 tfllilfkzykopvx 2023-07-24T21:19:02 pythoncoloringpackage 1.1.0 uujacjqknzcxtmw 2023-07-24T21:38:43 pythoncoloringpackage 1.1.0 uujacjqknzcxtmw 2023-07-24T21:38:44 pipcryptographymodV1 1.1.0 froschkugel 2023-07-25T01:05:25 pipcryptographymodV1 1.1.0 froschkugel 2023-07-25T01:05:29 pythonfontsliberyV1 1.1.0 froschkugel 2023-07-25T13:19:11 pythonfontsliberyV1 1.1.0 froschkugel 2023-07-25T13:19:13 syscolouringsaddV2 1.1.0 clofjkeixujsvff 2023-08-01T23:17:05 syscolouringsaddV2 1.1.0 clofjkeixujsvff 2023-08-01T23:17:07 syssqllibaryV1 1.1.0 yobnxwijpokklis 2023-08-02T00:59:36 syssqllibaryV1 1.1.0 yobnxwijpokklis 2023-08-02T00:59:37 pythonsqlitedbextensionV2 1.1.0 zlgilcnxdcpqdmw 2023-08-06T13:14:27 pythonsqlitedbextensionV2 1.1.0 zlgilcnxdcpqdmw 2023-08-06T13:14:29 pysqlitedbextV1 1.1.0 vgrkixebdtypcdb 2023-08-06T14:21:55 pysqlitedbextV1 1.1.0 vgrkixebdtypcdb 2023-08-06T14:21:57 pysqlite2pkgsV2 1.1.0 taialzopcgjsnci 2023-08-06T14:34:22 pysqlite2pkgsV2 1.1.0 taialzopcgjsnci 2023-08-06T14:34:24 syscolouringspackageV1 1.1.0 ohvtojkognvrqjj 2023-08-06T14:41:48 syscolouringspackageV1 1.1.0 ohvtojkognvrqjj 2023-08-06T14:41:49 pythoncolouringpackageV1 1.1.0 diuwcjufpvicdjq 2023-08-06T15:14:14 pythoncolouringpackageV1 1.1.0 diuwcjufpvicdjq 2023-08-06T15:14:16 pythoncryptokitV2 1.1.0 vhseadypdmvulcf 2023-08-06T15:36:41 pythoncryptokitV2 1.1.0 vhseadypdmvulcf 2023-08-06T15:36:43 pipsqlitedbmodsV1 1.1.0 yuhlmwjwizivkkm 2023-08-06T15:59:08 pipsqlitedbmodsV1 1.1.0 yuhlmwjwizivkkm 2023-08-06T15:59:10 pipcoloradditionV1 1.1.0 uwjjcmknoecrmfj 2023-08-06T22:11:51 pipcoloradditionV1 1.1.0 uwjjcmknoecrmfj 2023-08-06T22:11:53 pysqlitepkgV2 1.1.0 zlgilcnxdcpqdmw 2023-08-06T22:39:57 pysqlitepkgV2 1.1.0 zlgilcnxdcpqdmw 2023-08-06T22:39:59 pysqlitekitsV1 1.1.0 lteysicxwamsjdx 2023-08-07T00:14:29 pysqlitekitsV1 1.1.0 lteysicxwamsjdx 2023-08-07T00:14:30 pythonsqlipackageV1 1.1.0 xaszyepcuxvmmbb 2023-08-07T00:46:55 pythonsqlipackageV1 1.1.0 xaszyepcuxvmmbb 2023-08-07T00:46:56 pipcryptomodulesV1 1.1.0 puuleskphlbhiqz 2023-08-07T01:09:19 pipcryptomodulesV1 1.1.0 puuleskphlbhiqz 2023-08-07T01:09:21 pyfontingpackagesV2 1.1.0 essgbdoqxiqukqa 2023-08-07T01:26:44 pyfontingpackagesV2 1.1.0 essgbdoqxiqukqa 2023-08-07T01:26:46 pipfontingpkg 1.1.0 tnehejbbtkgecte 2023-08-07T02:39:10 pipfontingpkg 1.1.0 tnehejbbtkgecte 2023-08-07T02:39:12 pythonsqlipackagesV1 1.1.0 wxwckppziozhehs 2023-08-07T03:26:37 pythonsqlipackagesV1 1.1.0 wxwckppziozhehs 2023-08-07T03:26:39 pythonsqliextV2 1.1.0 mmhzcrchdnecueg 2023-08-07T13:16:18 pythonsqliextV2 1.1.0 mmhzcrchdnecueg 2023-08-07T13:16:19 pythoncryptV2 1.1.0 thxxouerlbrmdwp 2023-08-07T14:57:42 pythoncryptV2 1.1.0 thxxouerlbrmdwp 2023-08-07T14:57:43 pipfontslibery 1.1.0 kvuyljsffduyzic 2023-08-07T15:11:24 pipfontslibery 1.1.0 kvuyljsffduyzic 2023-08-07T15:11:25 syscryptlibrary 1.1.0 feutpriqvsusosj 2023-08-07T18:24:44 syscryptlibrary 1.1.0 feutpriqvsusosj 2023-08-07T18:24:46 syscryptographymoduleV1 1.1.0 txhcntdqpljtdyv 2023-08-07T19:44:18 syscryptographymoduleV1 1.1.0 txhcntdqpljtdyv 2023-08-07T19:44:20 syssqlite2kits 1.1.0 smcrcefegkcvblk 2023-08-07T21:27:49 syssqlite2kits 1.1.0 smcrcefegkcvblk 2023-08-07T21:27:50 syssqlitelibV1 1.1.0 mjonsmtjgzcbm 2023-08-07T21:48:21 syssqlitelibV1 1.1.0 mjonsmtjgzcbm 2023-08-07T21:48:23 pipcryptlibaryV1 1.1.0 ipslxbuicqhmeakixoz 2023-08-07T21:50:12 pipcryptlibaryV1 1.1.0 ipslxbuicqhmeakixoz 2023-08-07T21:50:14 TypoSquatting
包名 版本 作者 上传时间 request3 2.19.0 Sunny99sun 2023-08-29T03:16:34 request3 2.19.2 Sunny99sun 2023-08-30T09:48:16 request3 2.19.3 Sunny99sun 2023-08-30T10:41:50 request3 2.19.4 Sunny99sun 2023-08-30T10:51:36 request3 2.19.5 Sunny99sun 2023-08-30T10:56:51 requesttest3 1.0.1 lemon01 2023-08-31T03:14:58 requesttest3 1.0.2 lemon01 2023-08-31T03:44:23 恶意文件嵌入
包名 版本 作者 上传时间 dccsx 0.0.2 team_dccs 2023-07-10T19:51:20 lvx 0.0.2 mivi 2023-07-21T12:34:31 semdb 0.1 semurg 2023-08-01T08:04:47 semdber 4.12 semurg 2023-08-01T16:25:58 gen-agent-fingerprint 0.1 requesst 2023-08-15T17:43:31 ja3-hashscript 0.1 requesst 2023-08-15T18:00:23 cc-checkerx 0.1 mariaclaras 2023-08-15T19:08:43 testepassword-generate 0.1 brenno003 2023-08-15T21:22:41 aiprojectuz 0.1 aiprojectuz 2023-09-06T09:58:48