近日,腾讯洋葱反入侵系统检测发现 PyPI官方仓库被恶意上传了covd 钓鱼包,并通知官方仓库下架处理。由于国内开源镜像站均同步于PyPI官方仓库,所以该问题不仅会通过官方仓库,还可能通过各个开源镜像站影响广大用户,腾讯安全应急响应中心(TSRC)秉承共建安全生态的原则,TSRC在此建议各开源镜像站以及对开源镜像站有依赖的组织和公司,请尽快自查处理,确保恶意库得到清除,保障用户安全。
0x01 事件描述
11月16号 17:02 攻击者在PyPI官方仓库上传了covd 恶意包,该恶意包通过伪造 covid 包名进行钓鱼,攻击者可对受感染的主机进行入侵,并实施种植木马、命令控制等一系列活动,其中恶意代码存在于1.0.2/4版本中。
正常 covid 包的功能是获取约翰斯·霍普金斯大学和worldometers.info提供的有关新型冠状病毒的信息,每天的安装量上千次。在新冠疫情在世界流行的大背景下,covid包因输错包名而被误装为covd钓鱼包的数量将会不断增加。
0x02 手法分析
1. 复用covid包代码
从PyPI官方仓库下载covid包和covd包,解压发现covd钓鱼包完全复制了covid的代码。
2. 插入恶意代码
covd包仅在__init__.py中添加了混淆的恶意代码,并通过hex编码的方式,隐藏了C2域名 和 exec 关键字,非常隐蔽。恶意代码如下所示:
3. 用户触发
⽤户安装成功covd包,并导⼊,即 import covd 时,会触发__init__.py中混淆的恶意代码,恶意代码的功能是从⽂件C2服务器 远程加载Python⽊⻢并内存执⾏,恶意代码解混淆后如下图所示。
4. 运行Python远控木马
从⽂件C2服务器(http://a.sababa.website/get )加载的远控⽊⻢内容如下所示,核⼼功能是命令执⾏。
⽊⻢会循环向命令C2服务器( https://sababa.website/api/ready ) 询问需要执⾏的命令,并将命令执⾏的结果以json的形式 返回给另⼀个命令C2服务器(https://sababa.website/api/done ) 。
0x03 相关IoC
域名:
a.sababa.website
sababa.website
url:
http://a.sababa.website/get
https://sababa.website/api/ready
https://sababa.website/api/done