【翻译】Python信息窃取程序利用通讯程序传播诱饵
字数 3401 2025-08-22 12:22:48

Python信息窃取程序分析与防御指南

概述

本教学文档详细分析了一种利用Python编写并通过通讯程序传播的信息窃取恶意软件。该恶意软件具有多个变种,主要针对浏览器存储的敏感信息(如Cookie、登录凭据等),并通过合法平台(如Telegram、GitHub等)进行数据传输。

感染链分析

完整感染流程

  1. 初始感染阶段

    • 攻击者通过Facebook消息发送包含恶意RAR/ZIP压缩包的钓鱼信息
    • 压缩包内含BAT脚本(初始下载器)
  2. 第一阶段下载器

    • BAT脚本使用curl下载ZIP文件到C:\Users\Public\myFile.zip
    • 使用PowerShell命令Expand-Archive解压出CMD脚本vn.cmd
  3. 第二阶段下载器

    • vn.cmd脚本执行时会:
      • 打开Google Chrome访问阿里巴巴主页(迷惑用户)
      • 从GitLab下载三个关键文件:
        • WindowsSecure.bat - 持久化脚本
        • Document.zip - 包含Python依赖包
        • Project.py - 主窃取程序
  4. 持久化机制

    • WindowsSecure.bat被放入启动目录,实现用户登录时自动执行
  5. 信息窃取与传输

    • 执行Project.py窃取浏览器数据
    • 通过Telegram Bot API发送窃取的数据

变种分析

变种一(Project.py)

特点

  • Python脚本形式
  • 使用嵌套混淆技术(压缩十六进制值)
  • 针对7种浏览器:Brave、Coc Coc、Chromium、Chrome、Edge、Firefox、Opera

功能

  1. 通过ipinfo.io获取受害者IP和地理位置
  2. 收集浏览器数据并保存到三个文件:
    • cookiefb.txt - Facebook Cookie
    • cookie.txt - 浏览器Cookie
    • password.txt - 登录凭据
  3. 打包为"国家/地区+IP.zip"格式
  4. 通过Telegram Bot API发送(使用sendDocument功能)

变种二(Lib-jae.py)

特点

  • 面向对象编程风格(使用RitCucki类)
  • 代码高度混淆(不直观的方法和变量名)
  • 仅针对3种浏览器:Coc Coc、Chrome、Edge
  • 分阶段载荷设计(从C2获取Base64编码的最终载荷)

功能

  1. 从GitHub/GitLab获取scriptcall文件(包含必要字符串集)
  2. 执行RitCucki类中的信息窃取方法
  3. 依赖外部文件完成功能(增加分析难度)

变种三(可执行文件)

特点

  • 使用PyInstaller打包的EXE文件(>13MB)
  • 功能与变种二类似(可能是其可执行版本)
  • 包含注释掉的持久化代码(开发者选项)

技术对比

特征 变种一 变种二 变种三
脚本形式 .py .py .exe
PyInstaller打包 × ×
地理位置收集 × ×
目标浏览器数量 7 3 3
分阶段载荷 ×
函数/变量名混淆 ×
数据压缩混淆 × ×
Facebook Cookie窃取

攻击者特征分析

  1. 语言线索

    • BAT脚本中含越南语注释(如"sau khi gi"意为"之后")
    • 移除脚本rmv.py含"Xoa"(越南语"删除")
    • 函数名如demso()(越南语"计数")
  2. 命名习惯

    • 使用越南常见名称(如Khoi Nguyen)
    • 文件名如hoang.exe或hoangtuan.exe
  3. 目标选择

    • 支持Coc Coc浏览器(越南流行)
    • 早期版本仅针对3种浏览器(含Coc Coc)

MITRE ATT&CK映射

战术 技术ID 描述
初始访问 T1566 网络钓鱼
执行 T1059 命令和脚本解释器
持久化 T1547 启动文件夹持久化
防御规避 T1070.004 文件删除
防御规避 T1027 混淆文件或信息
凭证访问 T1539 窃取Web会话Cookie
凭证访问 T1555.003 从浏览器获取凭证
渗透 T1041 通过C2通道渗透
渗透 T1567 通过Web服务渗透
命令与控制 T1071.001 使用Web协议进行C2通信

防御建议

技术防御措施

  1. 端点防护

    • 监控启动目录异常文件(如WindowsSecure.bat)
    • 检测Public目录下的可疑ZIP文件(如myFile.zip)
    • 拦截对ipinfo.io的请求(地理位置收集)
  2. 网络防护

    • 限制对GitHub/GitLab的可疑下载
    • 监控Telegram Bot API通信(特别是sendDocument)
    • 阻止与已知恶意C2域名的通信
  3. 浏览器保护

    • 定期清理Cookie和缓存
    • 使用主密码保护存储的凭据
    • 考虑使用专用密码管理器而非浏览器存储
  4. 脚本控制

    • 限制PowerShell执行策略
    • 监控curl和PowerShell的异常使用
    • 对BAT/CMD脚本执行行为分析

组织防御措施

  1. 安全意识培训

    • 教育员工识别Facebook等平台的钓鱼消息
    • 强调不打开不明来源的压缩包
    • 培训员工识别可疑脚本行为
  2. 开发环境安全

    • 审查Python依赖包来源
    • 监控PyInstaller打包的可执行文件
    • 实施代码签名机制
  3. 应急响应

    • 建立信息窃取事件响应流程
    • 准备浏览器凭据重置方案
    • 制定社交媒体账户恢复计划

检测指标(IoC)

  1. 文件路径

    • C:\Users\Public\myFile.zip
    • C:\Users\{user_name}\AppData\Local\Temp\{country+ip}\*
    • 启动目录中的WindowsSecure.bat
  2. 网络活动

    • 与ipinfo.io的通信
    • 特定GitHub/GitLab仓库的访问
    • Telegram Bot API的sendDocument请求
  3. 进程行为

    • 同时执行curl和PowerShell Expand-Archive
    • 浏览器进程后跟Python脚本执行
    • 短时间内多浏览器数据访问

总结

该Python信息窃取程序家族展示了现代恶意软件的典型特征:利用合法服务(GitHub、Telegram)进行恶意操作,采用多阶段载荷和混淆技术逃避检测,并针对特定地区(越南)进行优化。防御需要多层防护策略,结合技术控制、员工培训和持续监控。

Python信息窃取程序分析与防御指南 概述 本教学文档详细分析了一种利用Python编写并通过通讯程序传播的信息窃取恶意软件。该恶意软件具有多个变种,主要针对浏览器存储的敏感信息(如Cookie、登录凭据等),并通过合法平台(如Telegram、GitHub等)进行数据传输。 感染链分析 完整感染流程 初始感染阶段 : 攻击者通过Facebook消息发送包含恶意RAR/ZIP压缩包的钓鱼信息 压缩包内含BAT脚本(初始下载器) 第一阶段下载器 : BAT脚本使用curl下载ZIP文件到 C:\Users\Public\myFile.zip 使用PowerShell命令 Expand-Archive 解压出CMD脚本 vn.cmd 第二阶段下载器 : vn.cmd 脚本执行时会: 打开Google Chrome访问阿里巴巴主页(迷惑用户) 从GitLab下载三个关键文件: WindowsSecure.bat - 持久化脚本 Document.zip - 包含Python依赖包 Project.py - 主窃取程序 持久化机制 : WindowsSecure.bat 被放入启动目录,实现用户登录时自动执行 信息窃取与传输 : 执行 Project.py 窃取浏览器数据 通过Telegram Bot API发送窃取的数据 变种分析 变种一(Project.py) 特点 : Python脚本形式 使用嵌套混淆技术(压缩十六进制值) 针对7种浏览器:Brave、Coc Coc、Chromium、Chrome、Edge、Firefox、Opera 功能 : 通过ipinfo.io获取受害者IP和地理位置 收集浏览器数据并保存到三个文件: cookiefb.txt - Facebook Cookie cookie.txt - 浏览器Cookie password.txt - 登录凭据 打包为"国家/地区+IP.zip"格式 通过Telegram Bot API发送(使用sendDocument功能) 变种二(Lib-jae.py) 特点 : 面向对象编程风格(使用RitCucki类) 代码高度混淆(不直观的方法和变量名) 仅针对3种浏览器:Coc Coc、Chrome、Edge 分阶段载荷设计(从C2获取Base64编码的最终载荷) 功能 : 从GitHub/GitLab获取scriptcall文件(包含必要字符串集) 执行RitCucki类中的信息窃取方法 依赖外部文件完成功能(增加分析难度) 变种三(可执行文件) 特点 : 使用PyInstaller打包的EXE文件(>13MB) 功能与变种二类似(可能是其可执行版本) 包含注释掉的持久化代码(开发者选项) 技术对比 | 特征 | 变种一 | 变种二 | 变种三 | |---------------------|--------|--------|--------| | 脚本形式 | .py | .py | .exe | | PyInstaller打包 | × | × | √ | | 地理位置收集 | √ | × | × | | 目标浏览器数量 | 7 | 3 | 3 | | 分阶段载荷 | × | √ | √ | | 函数/变量名混淆 | × | √ | √ | | 数据压缩混淆 | √ | × | × | | Facebook Cookie窃取 | √ | √ | √ | 攻击者特征分析 语言线索 : BAT脚本中含越南语注释(如"sau khi gi"意为"之后") 移除脚本rmv.py含"Xoa"(越南语"删除") 函数名如demso()(越南语"计数") 命名习惯 : 使用越南常见名称(如Khoi Nguyen) 文件名如hoang.exe或hoangtuan.exe 目标选择 : 支持Coc Coc浏览器(越南流行) 早期版本仅针对3种浏览器(含Coc Coc) MITRE ATT&CK映射 | 战术 | 技术ID | 描述 | |--------------------|-----------|-----------------------------| | 初始访问 | T1566 | 网络钓鱼 | | 执行 | T1059 | 命令和脚本解释器 | | 持久化 | T1547 | 启动文件夹持久化 | | 防御规避 | T1070.004 | 文件删除 | | 防御规避 | T1027 | 混淆文件或信息 | | 凭证访问 | T1539 | 窃取Web会话Cookie | | 凭证访问 | T1555.003 | 从浏览器获取凭证 | | 渗透 | T1041 | 通过C2通道渗透 | | 渗透 | T1567 | 通过Web服务渗透 | | 命令与控制 | T1071.001 | 使用Web协议进行C2通信 | 防御建议 技术防御措施 端点防护 : 监控启动目录异常文件(如WindowsSecure.bat) 检测Public目录下的可疑ZIP文件(如myFile.zip) 拦截对ipinfo.io的请求(地理位置收集) 网络防护 : 限制对GitHub/GitLab的可疑下载 监控Telegram Bot API通信(特别是sendDocument) 阻止与已知恶意C2域名的通信 浏览器保护 : 定期清理Cookie和缓存 使用主密码保护存储的凭据 考虑使用专用密码管理器而非浏览器存储 脚本控制 : 限制PowerShell执行策略 监控curl和PowerShell的异常使用 对BAT/CMD脚本执行行为分析 组织防御措施 安全意识培训 : 教育员工识别Facebook等平台的钓鱼消息 强调不打开不明来源的压缩包 培训员工识别可疑脚本行为 开发环境安全 : 审查Python依赖包来源 监控PyInstaller打包的可执行文件 实施代码签名机制 应急响应 : 建立信息窃取事件响应流程 准备浏览器凭据重置方案 制定社交媒体账户恢复计划 检测指标(IoC) 文件路径 : C:\Users\Public\myFile.zip C:\Users\{user_name}\AppData\Local\Temp\{country+ip}\* 启动目录中的 WindowsSecure.bat 网络活动 : 与ipinfo.io的通信 特定GitHub/GitLab仓库的访问 Telegram Bot API的sendDocument请求 进程行为 : 同时执行curl和PowerShell Expand-Archive 浏览器进程后跟Python脚本执行 短时间内多浏览器数据访问 总结 该Python信息窃取程序家族展示了现代恶意软件的典型特征:利用合法服务(GitHub、Telegram)进行恶意操作,采用多阶段载荷和混淆技术逃避检测,并针对特定地区(越南)进行优化。防御需要多层防护策略,结合技术控制、员工培训和持续监控。