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

枫少@KillBoy
枫少@KillBoy
管理员
219
文章
0
粉丝
资源分享3515,9121字数 1096阅读3分39秒阅读模式
AI智能摘要
你的linux主机防护真的无懈可击吗?Atomic Red Team(ART)作为MITRE ATT&CK的实战利器,专为蓝队打造精准自检方案!本文手把手教你三步搞定linux防护覆盖验证:从虚拟机环境搭建、语言组件配置,到通过PowerShell或Go框架一键执行原子测试,直击防护盲区。无需复杂理论,聚焦真实攻击模拟,快速暴露安全漏洞。读完即掌握实战技巧,让主机防护能力看得见、测得准、防得住,告别无效防御焦虑!
— AI 生成的文章内容摘要

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

用AtomicRedTeam进行主机防护能力覆盖自检(linux篇)-图片1
在安装完毕之后,可以通过

invoke-atomictest All -ShowDetailsBrief 

来确定是否安装成功。命令输入后回出现反馈
用AtomicRedTeam进行主机防护能力覆盖自检(linux篇)-图片2
记得日后要在在powershell导入模块才能用哦

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

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

最后,需要我们明确需要测试的测试项。可以通过依靠官方给出的mitre ATT&CK 并依据环境进行选择,确定下最后的测试项。
用AtomicRedTeam进行主机防护能力覆盖自检(linux篇)-图片3

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} 

用AtomicRedTeam进行主机防护能力覆盖自检(linux篇)-图片4
对每个测试项有很好的描述

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

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

用AtomicRedTeam进行主机防护能力覆盖自检(linux篇)-图片5
要强调的是,与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

 
枫少@KillBoy
评论  35  访客  33  作者  2
    • 友情链接
      友情链接 0

      看到你的文章,感觉很不错,想与你友情链接
      网站名:电脑教程网
      网站:https://dnjcw.com.cn/
      同意的话给我发邮件Internetyewu@163.com

      • 奶昔小乖
        奶昔小乖 0

        这工具之前试过,内核版本不匹配真坑爹

        • 小豹子
          小豹子 0

          求问go-art在CentOS8上跑得动不?

            • 糖果星星
              糖果星星 0

              @ 小豹子 CentOS8上跑go-art没问题,只要先把glibc更新到7.3以上,编译的二进制就能直接执行。

            • 布娃娃
              布娃娃 1

              感觉用All一次性跑太危险了,搞崩过一次…

              • 悠悠白云
                悠悠白云 0

                老哥稳,这流程整得挺细,收藏了慢慢试

                  • 红尘游侠
                    红尘游侠 1

                    @ 悠悠白云 流程确实细致,慢慢实验能更好掌握每一步。

                  • 光电脉冲
                    光电脉冲 0

                    The command completed successfully 看到这句真安心 👍

                    • 社恐果冻
                      社恐果冻 1

                      不是说好不用PowerShell吗,咋还得装pwsh…

                      • 暗界囚徒
                        暗界囚徒 0

                        之前自建检测体系踩了不少坑,这套倒是省事多了

                        • 幻羽轻尘
                          幻羽轻尘 0

                          T1053.003那个定时任务测试,有遇到权限报错的吗?

                          • 墨影侠
                            墨影侠 0

                            说实话,当知识库用比当测试工具用价值还大

                            • 深海幽蓝
                              深海幽蓝 0

                              听说有人拿这玩意误触EDR直接被封了,属实吓人

                              • 咿呀
                                咿呀 1

                                这套流程确实省事。

                                • 小兔捣
                                  小兔捣 0

                                  CentOS7的内核要怎么确认版本?

                                  • 银匠袁廿九
                                    银匠袁廿九 0

                                    golang版的go-art也可以直接二进制运行。

                                    • 灵雾行
                                      灵雾行 1

                                      我之前也踩过内核不匹配的坑。

                                      • 荒漠猎手
                                        荒漠猎手 1

                                        有人说装pwsh会被EDR抓到,真是笑死。

                                        • 音乐旅程
                                          音乐旅程 0

                                          挺实用的。

                                          • 星空指南针
                                            星空指南针 1

                                            这玩意儿文档有点少。

                                            • 爱打嗝的柠檬
                                              爱打嗝的柠檬 0

                                              看完后才发现,Atomic Red Team真的像个知识库,防御思路都清晰了。

                                              • 暗寂
                                                暗寂 0

                                                go-art在CentOS8上会不会因为glibc版本不兼容?

                                                • 甜甜圈喵
                                                  甜甜圈喵 1

                                                  如果不想装PowerShell,直接用invoke-atomicredteam的Python版也行,省事。

                                                  • 终端猎手
                                                    终端猎手 1

                                                    我之前在虚拟机里跑All一次,系统卡死,建议分批执行。

                                                    • 狂奔的仙人掌
                                                      狂奔的仙人掌 1

                                                      内核版本这块确实坑过不少人。

                                                        • 枫少@KillBoy
                                                          枫少@KillBoy

                                                          @ 狂奔的仙人掌 装agent前最好先查下兼容列表,能省不少事

                                                        • 混沌引擎
                                                          混沌引擎 1

                                                          那如果测试时想只看日志输出,不要实际执行,有没有dry-run模式?

                                                          • 云深归处
                                                            云深归处 0

                                                            听说有公司用了这套脚本,结果EDR误报封了账号,真是要小心。

                                                            • 草莓小精灵
                                                              草莓小精灵 0

                                                              文章里把PowerShell在linux上的安装步骤写得很清楚,我按照步骤装好后,直接用invoke-atomicredteam跑T1053.003,结果成功验证了定时任务检测,感觉防护覆盖面大大提升,强烈推荐给同事们。

                                                              • 青丝绾
                                                                青丝绾 1

                                                                Golang框架看起来比PowerShell轻量一点?

                                                                  • 星空拾光者
                                                                    星空拾光者 1

                                                                    @ 青丝绾 是的,省去了装PowerShell的麻烦

                                                                  • 朱砂点韵
                                                                    朱砂点韵 1

                                                                    之前也卡在goart的test id从0开始这了。

                                                                  匿名

                                                                  发表评论

                                                                  匿名网友

                                                                  拖动滑块以完成验证