Agent Tesla内存邮箱取证
字数 1686 2025-08-06 08:35:32

Agent Tesla内存邮箱取证技术详解

一、Agent Tesla概述

Agent Tesla是一种历史悠久的远程访问木马(RAT),最早于2014年作为商业产品出现,后转入地下论坛售卖。其主要特点包括:

  1. 变种繁多:具有不计其数的家族历史和变种
  2. 远控手段多样:支持FTP、HTTP、电子邮件等多种方式传输窃取的数据
  3. 使用匿名邮箱:攻击团队偏好使用匿名邮箱和二级邮箱作为数据外传渠道
  4. 多层套壳技术:常使用多层包装进行免杀,但核心母体仍基于.NET编写

二、样本分析技术

1. 脱壳技术

  1. OD调试方法

    • 将样本拖入OD后,在VirtualAlloc下断点
    • 运行跟踪两步后,样本会执行Shellcode
    • Shellcode会动态获取API地址并释放第二阶段payload
  2. 反调试对抗

    • 样本包含多个反调试函数
    • 当调试器中出现"VMVMVM"或"KVM-XEN-VMwer"等字符串时,需手动清除
    • 建议不步入函数,直接根据逻辑判断
  3. payload提取

    • 第二阶段payload通常会解密资源并释放.pdf文件作为诱饵
    • 使用ShellExec执行后继续查找资源释放的payload
    • 提取的PE通常带有UPX壳,需进一步脱壳

2. Tesla特征分析

  1. 入口点特征

    • 样本常先用De4去混淆
    • 静态分析可见大量俄语字符串
    • 会释放.NET组件
  2. 持久化技术

    • 从XML文件导入计划任务实现持久化
    • C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Recent生成快捷方式
    • 关注ShellExecuteOnSTAThreadStart函数,它们会执行ShellExecuteFunction

三、邮箱取证技术

1. SMTP取证步骤

  1. 定位关键函数

    • 先找到SMTP相关函数
    • 记录账号密码的资源编号
    • NetworkCredential credentials初始化时会使用这些资源编号
  2. 资源解密方法

    • 查找包含GetString函数的资源解密部分
    • 在函数头下断点
    • 运行Agent Tesla,断点处会暂停执行
  3. 账号密码提取

    • 目标不是完整运行样本,而是解密资源
    • 找到资源解密ID后,将解密资源替换为账号密码的资源编号
    • return GetString函数下断运行
  4. 密码提取细节

    • 进入GetString函数,在return处下断
    • bytes变量包含解密后的账号信息
    • 对于密码提取需要重新调试,因为内存中可能无法同时提取账号和密码

2. 关键函数分析

  1. GetString函数:

    • 负责解密资源
    • 在return处下断可获取解密后的数据
    • bytes变量包含账号或密码信息
  2. 资源编号:

    • 如示例中的487680和487648
    • 需要通过调试确定具体样本使用的编号

四、自动化取证方案

第一阶段:样本提取

  1. 套壳样本自动化提取

    • 不关注套壳本身的免杀技术
    • 使用轻量级沙箱提取内存中加载的.NET PE
    • 通过关键API HOOK和内存扫描准确DUMP母体
  2. 反调试和脱壳处理

    • 套壳的反调试是主要难点
    • 不同攻击团队的套壳复杂度不同
    • 加壳方式多为常规壳,无强壳,相对容易处理

第二阶段:.NET分析

  1. HOOK分析

    • 识别邮箱、FTP等资源的ID
    • 获取对应的解密函数统一解密
    • 需要确定资源解密流程
  2. 工具开发建议

    • 基于ILSpy/dnSpy开发.NET反汇编Hook调试器
    • 便于获取资源函数和控制流程
    • 实现自动化资源解密

五、技术要点总结

  1. 关键调试技巧

    • VirtualAlloc断点是起始点
    • 避免步入反调试函数
    • 及时清除虚拟机检测字符串
  2. 资源解密核心

    • GetString函数是解密关键
    • 资源编号需要动态确定
    • 账号密码需分开提取
  3. 自动化方向

    • 内存PE提取是基础
    • 反汇编Hook是高效手段
    • 资源解密流程标准化

本技术文档详细介绍了Agent Tesla的邮箱取证全过程,从样本分析到自动化取证方案,涵盖了关键技术和操作细节,可作为安全研究人员分析此类恶意软件的实用指南。

Agent Tesla内存邮箱取证技术详解 一、Agent Tesla概述 Agent Tesla是一种历史悠久的远程访问木马(RAT),最早于2014年作为商业产品出现,后转入地下论坛售卖。其主要特点包括: 变种繁多 :具有不计其数的家族历史和变种 远控手段多样 :支持FTP、HTTP、电子邮件等多种方式传输窃取的数据 使用匿名邮箱 :攻击团队偏好使用匿名邮箱和二级邮箱作为数据外传渠道 多层套壳技术 :常使用多层包装进行免杀,但核心母体仍基于.NET编写 二、样本分析技术 1. 脱壳技术 OD调试方法 : 将样本拖入OD后,在 VirtualAlloc 下断点 运行跟踪两步后,样本会执行Shellcode Shellcode会动态获取API地址并释放第二阶段payload 反调试对抗 : 样本包含多个反调试函数 当调试器中出现"VMVMVM"或"KVM-XEN-VMwer"等字符串时,需手动清除 建议不步入函数,直接根据逻辑判断 payload提取 : 第二阶段payload通常会解密资源并释放.pdf文件作为诱饵 使用ShellExec执行后继续查找资源释放的payload 提取的PE通常带有UPX壳,需进一步脱壳 2. Tesla特征分析 入口点特征 : 样本常先用De4去混淆 静态分析可见大量俄语字符串 会释放.NET组件 持久化技术 : 从XML文件导入计划任务实现持久化 在 C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Recent 生成快捷方式 关注 ShellExecuteOnSTAThread 和 Start 函数,它们会执行 ShellExecuteFunction 三、邮箱取证技术 1. SMTP取证步骤 定位关键函数 : 先找到SMTP相关函数 记录账号密码的资源编号 NetworkCredential credentials 初始化时会使用这些资源编号 资源解密方法 : 查找包含 GetString 函数的资源解密部分 在函数头下断点 运行Agent Tesla,断点处会暂停执行 账号密码提取 : 目标不是完整运行样本,而是解密资源 找到资源解密ID后,将解密资源替换为账号密码的资源编号 在 return GetString 函数下断运行 密码提取细节 : 进入 GetString 函数,在return处下断 bytes变量包含解密后的账号信息 对于密码提取需要重新调试,因为内存中可能无法同时提取账号和密码 2. 关键函数分析 GetString 函数: 负责解密资源 在return处下断可获取解密后的数据 bytes变量包含账号或密码信息 资源编号: 如示例中的487680和487648 需要通过调试确定具体样本使用的编号 四、自动化取证方案 第一阶段:样本提取 套壳样本自动化提取 : 不关注套壳本身的免杀技术 使用轻量级沙箱提取内存中加载的.NET PE 通过关键API HOOK和内存扫描准确DUMP母体 反调试和脱壳处理 : 套壳的反调试是主要难点 不同攻击团队的套壳复杂度不同 加壳方式多为常规壳,无强壳,相对容易处理 第二阶段:.NET分析 HOOK分析 : 识别邮箱、FTP等资源的ID 获取对应的解密函数统一解密 需要确定资源解密流程 工具开发建议 : 基于ILSpy/dnSpy开发.NET反汇编Hook调试器 便于获取资源函数和控制流程 实现自动化资源解密 五、技术要点总结 关键调试技巧 : VirtualAlloc断点是起始点 避免步入反调试函数 及时清除虚拟机检测字符串 资源解密核心 : GetString函数是解密关键 资源编号需要动态确定 账号密码需分开提取 自动化方向 : 内存PE提取是基础 反汇编Hook是高效手段 资源解密流程标准化 本技术文档详细介绍了Agent Tesla的邮箱取证全过程,从样本分析到自动化取证方案,涵盖了关键技术和操作细节,可作为安全研究人员分析此类恶意软件的实用指南。