社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python MaaS窃密工具曝光,覆盖17款浏览器并窃取多类凭证

FreeBuf • 1 周前 • 138 次点击  
FreeBuf

image

一款基于Python开发的恶意软件构建工具,可将单一窃密程序打包为适配不同攻击者的Windows可执行程序。该工具内置的载荷会窃取浏览器保存的密码、支付卡信息与Cookie,再将数据发送至攻击者控制的webhook地址,该地址由攻击者在生成程序时自行配置。除浏览器数据外,载荷还会窃取即时通讯账号、Wi-Fi密码以及受感染设备的系统信息。


研究人员获取的样本为压缩包格式,压缩包内嵌套了包含构建工具的另一层压缩文件。目前研究人员仅明确了该工具的打包结构,尚未确认受害者的感染渠道,也未统计到具体的感染设备数量。这种“构建器+载荷”的架构,与其他MaaS窃密黑产的运作模式类似,都支持使用者生成独立的定制化窃密程序。


K7 Security Labs的分析人员在检测这份嵌套压缩包时,发现了这款分为两部分的工具。K7 Security Labs在向Cyber Security News(CSN)提供的报告中提到,攻击者可使用Nuitka或PyInstaller,将内嵌的Python窃密脚本编译为Windows可执行文件,也可以直接保留脚本格式使用。这种灵活性会导致同一份代码呈现出不同的文件形态,提升检测难度。


Dependency Installation (Source - K7 Security Labs)

依赖安装界面


该窃密程序带来的直接风险远不止密码泄露。攻击者窃取会话Cookie后,无需知道账号密码就可以直接登录用户已登录的账号;支付信息与Wi-Fi密码泄露则会进一步扩大危害范围。目前窃密程序获取的数据日志是后续入侵的重要资源,单台设备被感染,影响范围往往不止设备所有者本人。


Part01

窃密载荷

覆盖17款Chromium浏览器


该窃密载荷会扫描用户数据目录,针对17款基于Chromium内核的浏览器,读取其中保存的登录凭证、浏览历史、支付卡信息与会话Cookie。如果浏览器数据库处于锁定状态,载荷会先将数据库复制到临时目录,再调用Windows数据保护接口与浏览器加密密钥,解密获取存储的敏感信息。该程序仅针对Windows平台实施窃密,本身并不利用浏览器漏洞。


Firefox也在窃密范围内,但不计入前述17款浏览器的统计。针对Firefox,载荷会读取浏览历史与Cookie记录;针对Chromium内核浏览器,还会额外窃取保存的密码与支付卡信息。其他同类浏览器窃密程序的覆盖范围也大致相当,但本次披露的17款统计口径仅针对Chromium内核浏览器。


该恶意软件还会搜索Discord token,验证token是否有效,同时收集Roblox的会话Cookie。


Webhook Injection Mechanism (Source - K7 Security Labs)

Webhook注入机制


这些数据的价值极高,攻击者凭借有效的会话信息,无需重新输入密码就可以直接接管账号。此外,载荷还会扫描已保存的Wi-Fi配置文件,提取对应密码,将网络凭证与窃取的浏览器、账号数据打包汇总。


除上述数据外,载荷还会收集位置与系统信息,包括受害者的公网IP地址、大致地理位置、时区、Windows用户名与计算机名。所有数据收集完成后,载荷会直接在内存中生成压缩包,通过预先配置的webhook发送出去。相比先将压缩包写入磁盘再上传的方式,这种内存打包的方法会在文件系统中留下更少的痕迹。


Part02

构建器内置规避持久化机制


该构建工具会自动安装缺失的Python依赖,并保存使用者配置的webhook地址,方便后续生成窃密程序时调用。在将webhook地址写入载荷前,工具会通过XOR与Base64对地址进行编码,因此安全人员直接在编译后的程序中搜索明文地址,可能无法找到相关特征。攻击者可以选择两种方式编译可执行文件,也可以保留原始脚本方便修改调整。


窃密程序启动后,会通过多种手段规避安全分析。程序会检测调试器与虚拟机特征,如果运行环境的磁盘空间小于50GB就直接退出。同时,程序会随机调整休眠时长,延迟加载部分非必要库,直到需要调用时才加载。


这些检测手段不会改变其窃密行为,但可以干扰短时间的自动化分析检测。为了实现重启后持久化运行,载荷会同时写入Windows启动注册表项,以及创建用户登录时触发的计划任务。即使其中一种持久化方式被清除,程序仍可通过另一种方式启动运行。


Scheduled Task Creation Command (Source - K7 Security Labs)

计划任务创建命令


和其他针对Discord的Python窃密程序一样,该工具会先验证账号token的有效性,再将有效数据发送给攻击者。


K7 Security Labs建议,安全人员应重点监测几类异常行为:异常的Python包安装行为、可疑的启动项与计划任务、对浏览器凭证存储区的访问,以及向陌生webhook地址发送的外发请求。用户在打开下载的文件前应仔细核验来源,同时保持安全防护软件为最新版本。


由于攻击者每次生成程序时都会调整配置,不同样本的哈希值存在差异,防御方应结合上述行为特征综合判断,不能仅依赖哈希值进行检测。


失陷指标(IoCs):


注:文中涉及的IP地址与域名均已做去活化处理(例如改写为_[.]_格式),防止意外解析或跳转。仅可在MISP、VirusTotal或内部SIEM等受控威胁情报平台中恢复原始地址。

参考来源:

Python MaaS Infostealer Builder Steals Passwords, Credit Cards and Cookies From 17 Browsers

https://cybersecuritynews.com/python-maas-infostealer/


推荐阅读


电报讨论


扫码加入AI安全交流群

下载FreeBuf知识大陆APP

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/201674