三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

Invoke-AtomicRedTeam实战:使用原子测试验证EDR防护效果的完整教程

Invoke-AtomicRedTeam实战:使用原子测试验证EDR防护效果的完整教程

Invoke-AtomicRedTeam实战:使用原子测试验证EDR防护效果的完整教程

【免费下载链接】invoke-atomicredteamInvoke-AtomicRedTeam is a PowerShell module to execute tests as defined in the [atomics folder](https://github.com/redcanaryco/atomic-red-team/tree/master/atomics) of Red Canary's Atomic Red Team project.项目地址: https://gitcode.com/gh_mirrors/in/invoke-atomicredteam

Invoke-AtomicRedTeam是一款强大的PowerShell模块,能够执行Red Canary's Atomic Red Team项目中定义的原子测试,帮助安全从业者验证终端检测与响应(EDR)工具的防护效果。本教程将带你快速掌握使用Invoke-AtomicRedTeam进行EDR防护验证的核心方法,从安装配置到实战测试,全方位提升你的安全测试能力。

一、快速安装:3步完成Invoke-AtomicRedTeam部署

1.1 克隆项目仓库

首先通过以下命令克隆项目到本地:

git clone https://gitcode.com/gh_mirrors/in/invoke-atomicredteam

1.2 运行安装脚本

进入项目目录后,执行专用安装脚本:

.\install-atomicredteam.ps1

安装完成后,系统会提示"Installation of Invoke-AtomicRedTeam is complete. You can now use the Invoke-AtomicTest function",表示核心功能已就绪。

1.3 配置原子测试路径

默认情况下,原子测试文件会安装在以下路径:

  • Linux/macOS$Env:HOME/AtomicRedTeam/atomics
  • Windows$env:HOMEDRIVE\AtomicRedTeam\atomics

你也可以通过修改配置文件自定义路径,例如在docker/setup.ps1中设置:

$PSDefaultParameterValues["Invoke-AtomicTest:PathToAtomicsFolder"] = "$ARTPath/atomics"

二、核心命令解析:掌握Invoke-AtomicTest使用方法

2.1 基础语法与参数

Invoke-AtomicRedTeam的核心功能由Public/Invoke-AtomicTest.ps1实现,基本语法结构如下:

Invoke-AtomicTest -AtomicTechnique <技术ID> -PathToAtomicsFolder <测试文件路径>

主要参数说明:

  • -AtomicTechnique:指定要执行的原子测试技术ID(如T1059.001)
  • -PathToAtomicsFolder:原子测试定义文件所在目录
  • -InputArgs:传递测试所需的自定义参数
  • -ExecutionLogPath:指定测试结果日志保存路径

2.2 执行单个原子测试

执行特定技术的原子测试示例:

Invoke-AtomicTest T1059.001 -PathToAtomicsFolder "C:\AtomicRedTeam\atomics"

此命令将执行与"命令行执行"相关的原子测试,模拟攻击者常用的命令注入行为。

2.3 批量测试与日志记录

通过Public/Invoke-AtomicRunner.ps1可实现批量测试调度,示例代码片段:

function Invoke-AtomicTestFromScheduleRow ($tr) { Invoke-AtomicTest $tr.Technique -TestGuids $tr.auto_generated_guid ` -InputArgs $tr.InputArgs -TimeoutSeconds $tr.TimeoutSeconds ` -ExecutionLogPath $currentExecLogPath -PathToAtomicsFolder $artConfig.PathToPublicAtomicsFolder }

测试结果默认保存在:

  • Linux/macOS/tmp/Invoke-AtomicTest-ExecutionLog.csv
  • Windows$env:TEMP\Invoke-AtomicTest-ExecutionLog.csv

三、EDR防护验证实战:从测试到结果分析

3.1 制定测试计划

选择与EDR防护能力相关的关键技术领域,建议优先测试:

  • 进程注入(T1055)
  • 注册表操作(T1112)
  • 持久化机制(T1037)
  • 命令与控制(T1071)

3.2 执行测试并监控EDR响应

执行测试命令后,密切观察EDR控制台:

# 执行文件less persistence测试 Invoke-AtomicTest T1547.001 -InputArgs @{filename="C:\test.dll"}

理想的EDR应能实时检测并阻断可疑行为,同时生成详细告警。

3.3 分析测试结果

  1. 检查执行日志:通过ExecutionLogPath查看测试执行状态
  2. 对比EDR告警:验证是否所有测试行为都被正确识别
  3. 评估响应速度:记录从测试执行到EDR告警的时间间隔
  4. 验证阻断效果:确认EDR是否成功阻止了恶意操作的完成

四、高级配置:优化测试环境与流程

4.1 使用沙箱环境

项目提供了专用沙箱配置脚本sandbox/setupsandbox.ps1,可快速搭建隔离测试环境:

.\sandbox\setupsandbox.ps1

该脚本会自动配置测试路径和日志参数:

$PSDefaultParameterValues["Invoke-AtomicTest:PathToAtomicsFolder"] = "$ARTPath/atomics" $PSDefaultParameterValues["Invoke-AtomicTest:ExecutionLogPath"]="1.csv"

4.2 自定义输入参数

通过-InputArgs参数可灵活调整测试参数,例如在Private/Replace-InputArgs.ps1中定义的参数替换逻辑:

function Merge-InputArgs($finalCommand, $test, $customInputArgs, $PathToAtomicsFolder) { $inputArgs = Get-InputArgs $test.input_arguments $customInputArgs $PathToAtomicsFolder # 替换命令中的参数占位符 $finalCommand = ($finalCommand -replace "\`$PathToAtomicsFolder", $PathToAtomicsFolder) }

4.3 集成自动化测试框架

通过Public/AtomicRunnerService.ps1可将原子测试集成到持续集成流程,实现EDR防护效果的定期验证。

五、常见问题解决与最佳实践

5.1 测试文件路径问题

若出现"ERROR: ... does not exist"错误,需检查PathToAtomicsFolder配置是否正确:

# 验证路径配置 Write-Host "PathToAtomicsFolder = $PathToAtomicsFolder"

5.2 权限与环境要求

部分测试需要管理员权限,建议在PowerShell中以管理员身份运行:

# 检查当前权限 $isElevated = ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)

5.3 测试结果准确性保障

为确保测试结果可靠:

  1. 在干净的测试环境中执行
  2. 每次测试前重置系统状态
  3. 对比多次测试结果
  4. 结合多种检测技术验证(如日志分析、进程监控)

通过本教程,你已掌握使用Invoke-AtomicRedTeam进行EDR防护验证的核心技能。定期执行原子测试不仅能验证EDR工具的有效性,还能帮助安全团队了解最新攻击技术,持续提升企业安全防护能力。记住,安全是一个持续过程,只有通过不断测试和优化,才能构建真正可靠的防御体系。

【免费下载链接】invoke-atomicredteamInvoke-AtomicRedTeam is a PowerShell module to execute tests as defined in the [atomics folder](https://github.com/redcanaryco/atomic-red-team/tree/master/atomics) of Red Canary's Atomic Red Team project.项目地址: https://gitcode.com/gh_mirrors/in/invoke-atomicredteam

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

← 返回列表