【翻译】Python信息窃取程序利用通讯程序传播诱饵
字数 3401 2025-08-22 12:22:48
Python信息窃取程序分析与防御指南
概述
本教学文档详细分析了一种利用Python编写并通过通讯程序传播的信息窃取恶意软件。该恶意软件具有多个变种,主要针对浏览器存储的敏感信息(如Cookie、登录凭据等),并通过合法平台(如Telegram、GitHub等)进行数据传输。
感染链分析
完整感染流程
-
初始感染阶段:
- 攻击者通过Facebook消息发送包含恶意RAR/ZIP压缩包的钓鱼信息
- 压缩包内含BAT脚本(初始下载器)
-
第一阶段下载器:
- BAT脚本使用curl下载ZIP文件到
C:\Users\Public\myFile.zip - 使用PowerShell命令
Expand-Archive解压出CMD脚本vn.cmd
- BAT脚本使用curl下载ZIP文件到
-
第二阶段下载器:
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 Cookiecookie.txt- 浏览器Cookiepassword.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.zipC:\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)进行恶意操作,采用多阶段载荷和混淆技术逃避检测,并针对特定地区(越南)进行优化。防御需要多层防护策略,结合技术控制、员工培训和持续监控。