freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

用AtomicRedTeam进行主机防护能力覆盖自检(linux篇)
2021-04-15 11:32:36

在日常的安全防护运营工作中,蓝队的同学们会有对自己的主机防护能力的检测的需求。从理论上,我们有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

# 攻防演练 # 系统安全 # ATT&CK
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录