银行木马Pegasus样本分析
字数 2964 2025-08-20 18:17:42

Pegasus银行木马样本分析技术文档

1. 概述

Pegasus是一种复杂的银行木马,最初被误认为出自黑客组织Carbanak之手,但实际由Buhtrap(Ratopak)黑客组织开发。该木马具有模块化架构和独特的网络传播机制,主要针对俄罗斯银行系统。

2. 技术架构

2.1 模块化设计

Pegasus采用模块化架构,功能分为多个模块,在编译时组合成一个binpack。主要模块包括:

  1. 初始化模块(InstallerExe):负责初始感染
  2. 主模块:注入svchost.exe进程
  3. 域复制模块:负责横向移动
  4. Mailslot监听器:监听广播消息
  5. Pipe服务器监听器:处理进程间通信
  6. 登录密码模块:基于Mimikatz的凭据窃取
  7. 网络连接模块:C&C通信

2.2 感染机制

  1. 使用进程挖空(process hollowing)技术将代码注入svchost.exe
  2. 主模块初始化后启动多个并行进程
  3. 使用pwInitPipeServerAsyncmwInitMailslotServer初始化通信通道
  4. 通过cmStartupNetworkBroadcaster开始广播凭证

3. 横向移动技术

3.1 域复制机制

3.1.1 发现阶段

  • 使用NetServerEnumAPI(依赖浏览器服务)
  • 使用WNetOpenEnum/WNetEnumResourceAPI
  • 每200毫秒轮询生成的pipe名称,重复20次(可作为检测指标)

3.1.2 感染阶段

  1. 尝试通过SMB协议登录到目标计算机的IPC\(和ADMIN\)共享
  2. 通过检查notepad.exe的PE头部确定目标架构
    • Windows 7路径:%windir%\System32\notepad.exe%windir%\notepad.exe
    • Windows Server 2012路径:仅%windir%\System32\notepad.exe
  3. 下载约10KB的RSE dropper(Remote Service Exe dropper)
    • 名称随机生成(8-15个十六进制字符)
    • 使用目标计算机名作为种子
  4. 通过WMI运行dropper(优先于SCM,减少日志痕迹)
  5. 其他备用方法(未完全实现):
    • 远程运行WSH
    • 远程运行PowerShell
    • 计划任务
    • RDP命令执行

3.2 痕迹清除

  1. 由于使用进程挖空,磁盘上不保留初始模块
  2. 删除dropper的步骤:
    • 用随机数据覆盖文件
    • 用空数据再次覆盖
    • 重命名文件
    • 删除文件

4. 通信机制

4.1 Mailslot通信

  • 用于广播被盗凭据
  • 插件名称随机生成,但以TARGET_BUILDCHAIN_HASH开头
  • 数据包大小有限制,一次广播一组凭据
  • 三层XOR加密:
    1. NetMessageEnvelope层:带SHA1校验,密钥在数据包开头4字节,每次循环右移5位
    2. 凭证数据结构层:8字节密钥,不移位
    3. 字段加密层(计算机名、域名等):8字节密钥,带移位
  • 广播间隔:20秒到11分钟不等

4.2 Pipe通信

  • 用于双向通信和大数据传输
  • 名称随机生成,基于机器名和结构
  • 两种模式:
    1. 单向通信(如复制binpack):未加密
    2. 双向通信(如C&C通信):使用NetMessageEnvelope结构
  • 特殊硬编码pipe名称:\\.\pipe\pg0F9EC0DB75F67E1DBEFB3AFA2(用于mod_KBRI_hd模块)
  • 通信协议:
    • 数据查询指令(PMI_SEND_QUERY)
    • 查询状态指令(PMI_CHECK_STATUS_QUERY)

5. C&C通信

5.1 网络连接检测

  1. 代理服务器检测:
    • 检查注册表:\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings
    • 通过WPAD(WinHttpGetProxyForUrl)
    • 当前用户代理配置(WinHttpGetIEProxyConfigForCurrentUser)
  2. 验证与Microsoft更新服务器的连接:
    • authrootseq.txt
    • authrootstl.cab
    • rootsupd.exe
  3. HTTPS连接测试(使用以下地址之一):
    • https://safebrowsing.google.com
    • https://aus3.mozilla.org
    • https://addons.mozilla.org
    • https://fhr.data.mozilla.org
    • https://versioncheck-bg.addons.mozilla.org
    • https://services.addons.mozilla.org

5.2 通信特征

  • 仅在当地时间9:00-19:00工作(隐匿踪迹)
  • 数据打包进带校验和的信封结构
  • 使用DES加密(CRYPT_MODE_CBC/PKCS5_PADDING模式)
  • 加密密钥来自编译时设置的BUILDCHAIN_HASH变量(已知值为0x7393c9a643eb4a76
  • INNER_ENVELOPE结构:28字节头部(含长度字段和SHA1校验和)

6. 检测指标

6.1 网络异常指标

  1. MAILSLOT通信:如\MAILSLOT\46CA075C165CBB2786
  2. Pipe通信:如\\.\pipe\pg0F9EC0DB75F67E1DBEFB3AFA2
  3. C&C服务器
    • hxxp://denwer/pegasus/index.php
    • hxxp://mp3.ucrazy.org/music/index.php
    • hxxp://support.zakon-auto.net/tuning/index.asp
    • hxxp://video.tnt-online.info/tnt-comedy-tv/stream.php

6.2 行为特征

  1. 每200毫秒轮询pipe名称的行为
  2. 异常的网络共享访问模式(IPC\(和ADMIN\)
  3. 不寻常的notepad.exe访问行为
  4. 异常的WMI或服务创建事件
  5. 特定时间窗口的网络活动(9:00-19:00)

7. 防御建议

  1. 网络监控

    • 监控异常的MAILSLOT和Pipe通信
    • 检测特定的网络共享访问模式
    • 实施Suricata IDS规则(参考PT Security的GitHub)
  2. 系统加固

    • 限制WMI和SCM的使用权限
    • 监控notepad.exe的异常访问
    • 在关键服务器上移除不必要的可执行文件(如notepad.exe)
  3. 日志分析

    • 分析异常的进程注入行为(特别是svchost.exe)
    • 监控异常的文件覆盖和删除操作
  4. 网络隔离

    • 限制内部网络的横向移动能力
    • 实施严格的出站网络访问控制
  5. 证书监控

    • 监控使用tric.pfx证书签名的可执行文件

8. 总结

Pegasus银行木马展现了高度复杂的技术架构和精心的设计,特别是在网络传播和隐蔽通信方面。其模块化设计、多阶段感染过程和多种横向移动技术使其成为极具威胁的银行恶意软件。防御此类威胁需要多层防御策略,重点关注异常的网络行为检测和系统活动监控。

Pegasus银行木马样本分析技术文档 1. 概述 Pegasus是一种复杂的银行木马,最初被误认为出自黑客组织Carbanak之手,但实际由Buhtrap(Ratopak)黑客组织开发。该木马具有模块化架构和独特的网络传播机制,主要针对俄罗斯银行系统。 2. 技术架构 2.1 模块化设计 Pegasus采用模块化架构,功能分为多个模块,在编译时组合成一个binpack。主要模块包括: 初始化模块(InstallerExe) :负责初始感染 主模块 :注入svchost.exe进程 域复制模块 :负责横向移动 Mailslot监听器 :监听广播消息 Pipe服务器监听器 :处理进程间通信 登录密码模块 :基于Mimikatz的凭据窃取 网络连接模块 :C&C通信 2.2 感染机制 使用 进程挖空(process hollowing) 技术将代码注入svchost.exe 主模块初始化后启动多个并行进程 使用 pwInitPipeServerAsync 和 mwInitMailslotServer 初始化通信通道 通过 cmStartupNetworkBroadcaster 开始广播凭证 3. 横向移动技术 3.1 域复制机制 3.1.1 发现阶段 使用 NetServerEnum API(依赖浏览器服务) 使用 WNetOpenEnum / WNetEnumResource API 每200毫秒轮询生成的pipe名称,重复20次(可作为检测指标) 3.1.2 感染阶段 尝试通过SMB协议登录到目标计算机的IPC$和ADMIN$共享 通过检查notepad.exe的PE头部确定目标架构 Windows 7路径: %windir%\System32\notepad.exe 和 %windir%\notepad.exe Windows Server 2012路径:仅 %windir%\System32\notepad.exe 下载约10KB的RSE dropper(Remote Service Exe dropper) 名称随机生成(8-15个十六进制字符) 使用目标计算机名作为种子 通过WMI运行dropper(优先于SCM,减少日志痕迹) 其他备用方法(未完全实现): 远程运行WSH 远程运行PowerShell 计划任务 RDP命令执行 3.2 痕迹清除 由于使用进程挖空,磁盘上不保留初始模块 删除dropper的步骤: 用随机数据覆盖文件 用空数据再次覆盖 重命名文件 删除文件 4. 通信机制 4.1 Mailslot通信 用于广播被盗凭据 插件名称随机生成,但以 TARGET_BUILDCHAIN_HASH 开头 数据包大小有限制,一次广播一组凭据 三层XOR加密: NetMessageEnvelope层:带SHA1校验,密钥在数据包开头4字节,每次循环右移5位 凭证数据结构层:8字节密钥,不移位 字段加密层(计算机名、域名等):8字节密钥,带移位 广播间隔:20秒到11分钟不等 4.2 Pipe通信 用于双向通信和大数据传输 名称随机生成,基于机器名和结构 两种模式: 单向通信(如复制binpack):未加密 双向通信(如C&C通信):使用NetMessageEnvelope结构 特殊硬编码pipe名称: \\.\pipe\pg0F9EC0DB75F67E1DBEFB3AFA2 (用于mod_ KBRI_ hd模块) 通信协议: 数据查询指令(PMI_ SEND_ QUERY) 查询状态指令(PMI_ CHECK_ STATUS_ QUERY) 5. C&C通信 5.1 网络连接检测 代理服务器检测: 检查注册表: \\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings 通过WPAD( WinHttpGetProxyForUrl ) 当前用户代理配置( WinHttpGetIEProxyConfigForCurrentUser ) 验证与Microsoft更新服务器的连接: authrootseq.txt authrootstl.cab rootsupd.exe HTTPS连接测试(使用以下地址之一): https://safebrowsing.google.com https://aus3.mozilla.org https://addons.mozilla.org https://fhr.data.mozilla.org https://versioncheck-bg.addons.mozilla.org https://services.addons.mozilla.org 5.2 通信特征 仅在当地时间9:00-19:00工作(隐匿踪迹) 数据打包进带校验和的信封结构 使用DES加密(CRYPT_ MODE_ CBC/PKCS5_ PADDING模式) 加密密钥来自编译时设置的 BUILDCHAIN_HASH 变量(已知值为 0x7393c9a643eb4a76 ) INNER_ ENVELOPE结构:28字节头部(含长度字段和SHA1校验和) 6. 检测指标 6.1 网络异常指标 MAILSLOT通信 :如 \MAILSLOT\46CA075C165CBB2786 Pipe通信 :如 \\.\pipe\pg0F9EC0DB75F67E1DBEFB3AFA2 C&C服务器 : hxxp://denwer/pegasus/index.php hxxp://mp3.ucrazy.org/music/index.php hxxp://support.zakon-auto.net/tuning/index.asp hxxp://video.tnt-online.info/tnt-comedy-tv/stream.php 6.2 行为特征 每200毫秒轮询pipe名称的行为 异常的网络共享访问模式(IPC$和ADMIN$) 不寻常的notepad.exe访问行为 异常的WMI或服务创建事件 特定时间窗口的网络活动(9:00-19:00) 7. 防御建议 网络监控 : 监控异常的MAILSLOT和Pipe通信 检测特定的网络共享访问模式 实施Suricata IDS规则(参考PT Security的GitHub) 系统加固 : 限制WMI和SCM的使用权限 监控notepad.exe的异常访问 在关键服务器上移除不必要的可执行文件(如notepad.exe) 日志分析 : 分析异常的进程注入行为(特别是svchost.exe) 监控异常的文件覆盖和删除操作 网络隔离 : 限制内部网络的横向移动能力 实施严格的出站网络访问控制 证书监控 : 监控使用 tric.pfx 证书签名的可执行文件 8. 总结 Pegasus银行木马展现了高度复杂的技术架构和精心的设计,特别是在网络传播和隐蔽通信方面。其模块化设计、多阶段感染过程和多种横向移动技术使其成为极具威胁的银行恶意软件。防御此类威胁需要多层防御策略,重点关注异常的网络行为检测和系统活动监控。