供应链攻击!伪装成加密货币交易工具的恶意Python包和Github项目
字数 2270 2025-08-23 18:31:34

供应链攻击分析:伪装成加密货币交易工具的恶意Python包和Github项目

1. 攻击概述

近期发现一起针对加密货币爱好者的多向量供应链攻击,攻击者通过PyPI官方仓库和Github项目分发名为CryptoAITools的恶意Python包。该恶意包在被删除前已被下载1300多次。

攻击特点:

  • 通过PyPI和Github双重分发
  • 伪装成合法的加密货币交易工具
  • 针对Windows和MacOS系统
  • 具备反分析能力(反虚拟机、反沙箱)
  • 窃取加密货币相关敏感信息

2. 攻击载体分析

2.1 Github项目分析

项目名称:Meme-Token-Hunter-Bot

  • 创建时间:2024年2月4日
  • 活跃更新:2024年7月开始
  • 最近更新:分析时3周前更新了Release版本
  • 项目官网:https://coinsw.app/

2.2 恶意程序特征

  • 使用PyInstaller打包成exe程序
  • 运行需要联网
  • 伪装成正常加密货币项目

3. 恶意模块分析

3.1 系统版本判断

恶意程序首先判断操作系统版本,选择执行对应的Windows或MacOS恶意代码。

3.2 Windows恶意模块

  • 包含大量加密代码
  • 解码外联地址下载多个py模块
  • 存放路径:~\AppData\Local\tmpcode\
  • 主执行模块:main.py

关键外联地址:

  • 基础URL:aHR0cHM6Ly9jb2luc3cuYXBwL2Jhc2Vjdw== (解码后:https://coinsw.app/basecw)
  • 下载模块列表(Base64编码):
    bWFpbi5weQ==
    c2VjdXJpdHkucHk=
    dGFkLnB5
    bG9jYWwucHk=
    c3MucHk=
    Y2F0LnB5
    dXBkLnB5
    Zmlyc3RwYWdlLnB5
    YXJhLnB5
    Y2YucHk=
    Y2l6LnB5
    Y2F0X2RhbmNlLmdpZg==
    cHMucHk=
    

3.3 MacOS恶意模块

  • 解码外联地址下载模块
  • 存放路径:~/tmpcode/
  • 主执行模块:MHTBot.py

4. 代码混淆与去混淆技术

4.1 混淆技术

攻击者对功能模块中的字符串进行了混淆处理。

4.2 去混淆方法

构建动态解密脚本:

  1. 提取混淆后的字符串
  2. 使用Python.exe动态解密
  3. 将解密后的代码重写至功能模块

去混淆脚本关键代码(Go语言):

package main

import (
    "bufio"
    "fmt"
    "io"
    "io/ioutil"
    "os"
    "os/exec"
    "path/filepath"
    "regexp"
    "strings"
)

func main() {
    onefile := "C:\\Users\\admin\\Desktop\\main.py"
    filename := filepath.Base(onefile)
    xor_table := get_xor_table(onefile)
    content, err := ioutil.ReadFile(onefile)
    if err != nil {
        fmt.Printf("Error reading file: %s\n", err)
        return
    }
    
    // 正则表达式匹配混淆字符串
    pattern := `''\.join
$$
$.*?
$$
$`
    re := regexp.MustCompile(pattern)
    matches := re.FindAllStringSubmatch(string(content), -1)
    
    newfiledata := string(content)
    for _, match := range matches {
        os.Remove("test.py")
        WriteFile_A("test.py", xor_table)
        WriteFile_A("test.py", "\n")
        WriteFile_A("test.py", `print(`)
        WriteFile_A("test.py", match[0])
        WriteFile_A("test.py", `)`)
        
        cmd := exec.Command("D:\\Python311\\python.exe", "test.py")
        output, err := cmd.CombinedOutput()
        if err != nil {
            fmt.Printf("Error: %s\n", err)
            return
        }
        
        if strings.Contains(newfiledata, match[0]) {
            newfiledata = strings.ReplaceAll(newfiledata, match[0], `'`+strings.ReplaceAll(string(output), "\r\n", "")+`'`)
        }
    }
    WriteFile(filename, newfiledata)
}

5. 功能模块详细分析

5.1 主模块 (main.py)

  • 主控制模块
  • 调用其他模块执行恶意功能

5.2 反分析模块 (firstpage.py)

功能:反虚拟机和反沙箱检测

检测项目:

  1. 系统进程检查:枚举并终止黑名单中的进程
  2. 网络检查:外联ipapi.co/ip/获取IP地址,检查IP/MAC黑名单
  3. 系统信息检查:检查硬件ID、用户名和计算机名

黑名单示例:

  • 用户黑名单:包含"WDAGUtilityAccount"、"Frank"等常见测试账户
  • 计算机名黑名单:包含"DESKTOP-NAKFFMT"、"WIN-5E07COS9ALR"等常见虚拟机名称
  • 硬件ID黑名单:包含"7AB5C494-39F5-4941-9163-47F54D6D5016"等常见虚拟机ID
  • IP黑名单:包含"88.132.231.71"、"78.139.8.50"等
  • MAC黑名单:包含"00:15:5d:00:07:34"等常见虚拟机MAC
  • 进程黑名单:包含"httpdebuggerui"、"wireshark"、"fiddler"等分析工具

反制措施:

检测到分析环境时,会打开"cat_dance.gif"动画文件作为干扰

5.3 数据收集模块

tad.py

  • 功能:打包Telegram程序的应用数据
  • 输出:ArchiveX.zip

ps.py

  • 功能:打包浏览器信息
  • 收集内容:
    • Cookies
    • 网页历史记录
    • 下载目录

ciz.py

  • 功能:打包与加密货币相关的浏览器扩展数据
  • 目标扩展ID示例:
    nkbihfbeogaeaoehlefnkodbefgpgknn (MetaMask)
    fhbohimaelbohpjbbldcngcnapndodjp
    hnfanknocfeofbddgcijnmhnfnkdnaad
    

local.py

  • 功能:打包加密货币钱包数据
  • 目标钱包路径:
    Bitcoin: C:\Users\%USERNAME%\AppData\Roaming\Bitcoin\wallets\
    Electrum: C:\Users\%USERNAME%\AppData\Roaming\Electrum\wallets\
    Exodus: C:\Users\%USERNAME%\AppData\Roaming\Exodus\exodus.wallet\
    

ss.py

  • 功能:屏幕截屏

ara.py

  • 功能:扫描Downloads、Documents、Desktop目录
  • 目标文件:包含特定关键字的文件
  • 关键字示例:
    passw, mdp, login, solana, phantom, metamask, wallet, crypto, private, key
    

5.4 数据外传模块 (upd.py)

  • 功能:压缩并上传收集的数据
  • 上传地址:https://www.tinyvago.com/pip/x/requirements.php

6. 防御建议

6.1 开发人员防护

  1. 验证第三方依赖的合法性
  2. 检查项目贡献者的可信度
  3. 使用虚拟环境隔离项目依赖
  4. 定期审计项目依赖

6.2 用户防护

  1. 仅从官方渠道下载软件
  2. 警惕要求过高权限的应用程序
  3. 使用虚拟机或沙箱运行可疑程序
  4. 定期检查系统异常进程

6.3 企业防护

  1. 实施软件供应链安全策略
  2. 部署行为分析检测系统
  3. 监控异常网络连接
  4. 定期进行安全意识培训

7. IOCs (Indicators of Compromise)

  • PyPI包名:CryptoAITools
  • Github项目:Meme-Token-Hunter-Bot
  • 项目官网:https://coinsw.app/
  • C&C服务器:https://coinsw.app/basecw
  • 数据上传地址:https://www.tinyvago.com/pip/x/requirements.php
  • 文件存放路径:
    • Windows: ~\AppData\Local\tmpcode\
    • MacOS: ~/tmpcode/

8. 总结

该攻击利用加密货币社区的信任,通过供应链攻击分发恶意软件,具有以下特点:

  1. 多平台支持(Windows/MacOS)
  2. 复杂的分层架构
  3. 强大的反分析能力
  4. 针对性的数据收集
  5. 隐蔽的数据外传方式

安全团队应提高对这类供应链攻击的警惕,加强软件来源验证和运行时监控。

供应链攻击分析:伪装成加密货币交易工具的恶意Python包和Github项目 1. 攻击概述 近期发现一起针对加密货币爱好者的多向量供应链攻击,攻击者通过PyPI官方仓库和Github项目分发名为 CryptoAITools 的恶意Python包。该恶意包在被删除前已被下载1300多次。 攻击特点: 通过PyPI和Github双重分发 伪装成合法的加密货币交易工具 针对Windows和MacOS系统 具备反分析能力(反虚拟机、反沙箱) 窃取加密货币相关敏感信息 2. 攻击载体分析 2.1 Github项目分析 项目名称: Meme-Token-Hunter-Bot 创建时间:2024年2月4日 活跃更新:2024年7月开始 最近更新:分析时3周前更新了Release版本 项目官网:https://coinsw.app/ 2.2 恶意程序特征 使用PyInstaller打包成exe程序 运行需要联网 伪装成正常加密货币项目 3. 恶意模块分析 3.1 系统版本判断 恶意程序首先判断操作系统版本,选择执行对应的Windows或MacOS恶意代码。 3.2 Windows恶意模块 包含大量加密代码 解码外联地址下载多个py模块 存放路径: ~\AppData\Local\tmpcode\ 主执行模块: main.py 关键外联地址: 基础URL: aHR0cHM6Ly9jb2luc3cuYXBwL2Jhc2Vjdw== (解码后:https://coinsw.app/basecw) 下载模块列表(Base64编码): 3.3 MacOS恶意模块 解码外联地址下载模块 存放路径: ~/tmpcode/ 主执行模块: MHTBot.py 4. 代码混淆与去混淆技术 4.1 混淆技术 攻击者对功能模块中的字符串进行了混淆处理。 4.2 去混淆方法 构建动态解密脚本: 提取混淆后的字符串 使用Python.exe动态解密 将解密后的代码重写至功能模块 去混淆脚本关键代码(Go语言): 5. 功能模块详细分析 5.1 主模块 (main.py) 主控制模块 调用其他模块执行恶意功能 5.2 反分析模块 (firstpage.py) 功能:反虚拟机和反沙箱检测 检测项目: 系统进程检查 :枚举并终止黑名单中的进程 网络检查 :外联ipapi.co/ip/获取IP地址,检查IP/MAC黑名单 系统信息检查 :检查硬件ID、用户名和计算机名 黑名单示例: 用户黑名单:包含"WDAGUtilityAccount"、"Frank"等常见测试账户 计算机名黑名单:包含"DESKTOP-NAKFFMT"、"WIN-5E07COS9ALR"等常见虚拟机名称 硬件ID黑名单:包含"7AB5C494-39F5-4941-9163-47F54D6D5016"等常见虚拟机ID IP黑名单:包含"88.132.231.71"、"78.139.8.50"等 MAC黑名单:包含"00:15:5d:00:07:34"等常见虚拟机MAC 进程黑名单:包含"httpdebuggerui"、"wireshark"、"fiddler"等分析工具 反制措施: 检测到分析环境时,会打开"cat_ dance.gif"动画文件作为干扰 5.3 数据收集模块 tad.py 功能:打包Telegram程序的应用数据 输出:ArchiveX.zip ps.py 功能:打包浏览器信息 收集内容: Cookies 网页历史记录 下载目录 ciz.py 功能:打包与加密货币相关的浏览器扩展数据 目标扩展ID示例: local.py 功能:打包加密货币钱包数据 目标钱包路径: ss.py 功能:屏幕截屏 ara.py 功能:扫描Downloads、Documents、Desktop目录 目标文件:包含特定关键字的文件 关键字示例: 5.4 数据外传模块 (upd.py) 功能:压缩并上传收集的数据 上传地址:https://www.tinyvago.com/pip/x/requirements.php 6. 防御建议 6.1 开发人员防护 验证第三方依赖的合法性 检查项目贡献者的可信度 使用虚拟环境隔离项目依赖 定期审计项目依赖 6.2 用户防护 仅从官方渠道下载软件 警惕要求过高权限的应用程序 使用虚拟机或沙箱运行可疑程序 定期检查系统异常进程 6.3 企业防护 实施软件供应链安全策略 部署行为分析检测系统 监控异常网络连接 定期进行安全意识培训 7. IOCs (Indicators of Compromise) PyPI包名:CryptoAITools Github项目:Meme-Token-Hunter-Bot 项目官网:https://coinsw.app/ C&C服务器:https://coinsw.app/basecw 数据上传地址:https://www.tinyvago.com/pip/x/requirements.php 文件存放路径: Windows: ~\AppData\Local\tmpcode\ MacOS: ~/tmpcode/ 8. 总结 该攻击利用加密货币社区的信任,通过供应链攻击分发恶意软件,具有以下特点: 多平台支持(Windows/MacOS) 复杂的分层架构 强大的反分析能力 针对性的数据收集 隐蔽的数据外传方式 安全团队应提高对这类供应链攻击的警惕,加强软件来源验证和运行时监控。