无恶意软件测试:验证杀毒软件是否正常工作的4种方法

本文介绍了在不执行任何真实恶意软件的情况下,如何通过EICAR测试文件、备用数据流检测、AMSI内存扫描和LSASS进程转储行为模拟四种方法,验证杀毒软件的实时防护功能是否正常工作。

无恶意软件测试:验证杀毒软件是否正常工作的4种方法

最近有客户问我,能否在不执行任何真实恶意软件的情况下,通过新部署的杀毒软件生成警报。由于测试对象是高度敏感的业务关键系统,必须确保测试过程不执行任何第三方代码。此外,我无法直接访问测试系统(该问题出现在渗透测试完成后),因此需要提供系统管理员易于操作且不依赖Metasploit等外部黑客工具的方法。

考虑到其他防御者可能遇到类似场景,我决定在BHIS博客分享以下测试方法。请注意,这些测试仅为基础验证手段,并非杀毒软件功能的完整评估方案。

1. 使用EICAR测试文件检测恶意软件文件

EICAR测试文件由欧洲计算机反病毒研究协会(EICAR)和计算机反病毒研究组织(CARO)专门设计,仅包含以下ASCII文本(可附加尾随空格),可通过文本编辑器创建后保存至磁盘:

1
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*

操作步骤:

  • 将EICAR字符串粘贴至Windows记事本
  • 保存为带".EXE"扩展名的文件
  • 也可直接从https://secure.eicar.org/eicar.com.txt下载

进阶测试: 部分杀毒软件仅自动扫描特定扩展名文件(如.EXE),建议保存多个不同扩展名的测试文件(如.TXT/.JPG/.COM/.DOCM)。若部分文件未被检测,说明杀毒软件未扫描该扩展名文件。

EICAR文件多扩展名保存示例 Windows Defender检测警报示例

2. 测试备用数据流(ADS)中的恶意软件检测

在NTFS文件系统上,恶意软件可隐藏在文件的备用数据流中。通过PowerShell创建包含EICAR字符串的ADS:

1
2
set-content .\ADS_Test.txt "Nothing to see here."
set-content .\ADS_Test.txt:EICAR 'X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*'

执行后使用Get-Content确认文件存在。若杀毒软件支持ADS扫描,应触发检测警报。

PowerShell创建ADS示例 ADS中EICAR数据检测示例

3. 通过AMSI测试内存中的恶意脚本检测

微软反恶意软件扫描接口(AMSI)提供专用测试字符串:

1
'AMSI Test Sample: 7e72c3ce-861b-4339-8740-0ac1484c1386'

测试方法:

  • 打开PowerShell或PowerShell ISE
  • 粘贴测试字符串(需包含首尾单引号)
  • 若AMSI正常工作,将显示"此脚本包含恶意内容"的报错

备选测试字符串:

1
2
'amsicontext'
'Invoke-Mimikatz'

注意:未加引号会导致PowerShell语法错误,需通过特定报错信息确认检测功能。

AMSI测试字符串检测示例 黑客工具字符串检测示例

4. 使用Windows任务管理器测试基于行为的检测

本测试模拟恶意软件执行后的行为(非文件/内存检测),需配合端点检测响应(EDR)工具:

操作流程:

  1. 以管理员权限启动任务管理器
  2. 点击"更多详细信息" → “详细信息"标签页
  3. 找到lsass.exe进程 → 右键选择"创建转储文件”
  4. 观察是否触发防御软件拦截

预期结果:

  • 检测成功:任务管理器意外关闭或收到安全警报
  • 未检测:转储文件生成于用户Temp目录,需手动删除(该文件可能包含登录凭证)

管理员权限启动任务管理器 LSASS进程转储过程 转储完成提示

结论

本文测试方法虽非完整评估方案,但可在受限环境中验证杀毒软件基础功能。需注意:

  • EICAR/AMSI测试仅验证基础扫描机制,不代表能检测复杂格式文件
  • 行为检测需依赖EDR等进阶防护工具
  • 建议通过专业服务(如命令控制与数据外泄评估)进行全面安全盲点分析
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计