用AtomicRedTeam进行主机防护能力覆盖自检(linux篇)

2021年4月27日10:20:06 1 2,779

在日常的安全防护运营工作中,蓝队的同学们会有对自己的主机防护能力的检测的需求。从理论上,我们有Mitre's ATT&CK 这个理论,但是落地要怎么做呢,这时候我想推荐一下最近学习到了Atomic Red Team 这个组件了

Atomic Red Team (简称ART) 是一个依据Mitre's ATT&CK整理的一个测试库。他依据了ATT&CK的每一个techniques,整理了相应的“原子测试”脚本。通过ART我们能够对于主机防护面有很好的认知。并且依据他们提供的原子测试对自身的安全防护能力做一个自测。

1 准备阶段 - 基础环境

需要准备的材料有:

  • 虚拟机并安装 (centos7)
  • 通过yum安装需要的实验环境,安装你需要测试的agent ()
  • 确定你需要测试的内容并且制定相关的测试计划
    第一,是虚拟机的安装。 虚拟机的安装需要注意的是linux的内核版本,一定要和自己的agent支持版本匹配。在测试初期我就遇到过这个问题。通过以下命令在安装后确认内核版本。
uname -r 

第二,语言环境的安装

# centos 环境 if [ -f /etc/redhat-release ]; then   # yum 安装php   yum install -y epel-release   yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm   yum-config-manager --enable remi-php72   yum install -y php72    # yum 安装perl   yum install -y perl    # yum 安装lua   yum install -y lua    # yum 安装Golang   yum install -y golang    # yum 安装java   yum install -y java-1.8.0-openjdk-devel  fi 

通过简单粗暴的几条yum,准备好服务器的环境.

2 Atomic Red Team 测试自动化

为了方便测试,社区准备了一套非常方便的执行框架。但是框架仅限于PowerShell的环境下进行使用。对于无法使用PowerShell 的情况,社区也准备了python与golang的自动化执行框架,都是非常便捷的工具。我在使用的过程中主要挑选了官方本身的框架以及golang的框架进行了自动化的测试。

2.1 通过PowerShell invoke-atomicredtem 进行自动化测试

2.1.1 准备 powerShell

第一步,为linux准备powershell

Microsoft官方为linux以及macOS都准备了相关的安装方法,能够让linux以及macOS都能够使用powerShell

# 注册微软repo curl https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repo  # 安装 sudo yum install -y powershell  # 启动 pwsh 

到此,第一步powershell安装完毕。

2.1.2 准备 invoke-atomicredteam

第二步,安装invoke-atomicredteam

首先通过pwsh进入powershell操作页面

IEX (IWR 'https://raw.githubusercontent.com/redcanaryco/invoke-atomicredteam/master/install-atomicredteam.ps1' -UseBasicParsing); Install-AtomicRedTeam -getAtomics 

image
在安装完毕之后,可以通过

invoke-atomictest All -ShowDetailsBrief 

来确定是否安装成功。命令输入后回出现反馈
image
记得日后要在在powershell导入模块才能用哦

Import-Module "/root/AtomicRedTeam/invoke-atomicredteam/Invoke-AtomicRedTeam.psd1" -Force 

在没有调整过的情况下,centos7 的该文件位置如命令,如果在之前安装时候有自定义位置,需要按照位置导入。

最后,需要我们明确需要测试的测试项。可以通过依靠官方给出的mitre ATT&CK 并依据环境进行选择,确定下最后的测试项。
image

2.1.3 开始测试吧!

可以按照表格准备的Technique一个个测试

Invoke-AtomicTest T1053.003 -TestNumbers 1 

也可以简单粗暴的 (非虚拟机的话,建议别这么搞)

Invoke-AtomicTest All 

2.2 使用go-art 吧!

go-atomicredteam是一个Golang应用程序,用于执行ART的Atomics文件夹中定义的测试。

2.2.1 安装

在安装好了 git 与 golang环境下

git clone https://github.com/activeshadow/go-atomicredteam.git cd go-atomicredteam make release 

2.2.2 使用

如果需要观察信息的话

/root/go-atomicredteam/bin/goart-linux -t T1053.003#{Technique ID} 

image
对每个测试项有很好的描述

在测试的时候需要指定测试单元

/root/go-atomicredteam/bin/goart-linux -t T1053.003 -i 0 #{Test ID} 

image
要强调的是,与invoke-art不同,这里的testNumer是从零开始的。

接下来的步骤与之前相同,略。

3 尾声

在使用中,我更觉得ART相较于一个自动化工具,更像一个知识库。他能帮助我们更好的去理解ATTCK,更好的去理解防御以及常用的探测命令,是一个很值得学习的repo。

参考文档:

https://github.com/redcanaryco/atomic-red-team

https://github.com/activeshadow/go-atomicredteam

本文作者:, 转载请注明来自FreeBuf.COM

https://www.freebuf.com/sectool/269697.html

高性能云服务器2折起

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:1   其中:访客  0   博主  0

    • avatar 111111 0

      1啦