DecoyMini 技术交流社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7590|回复: 1

[工具] Atomic Red Team

[复制链接]

172

主题

34

回帖

30

荣誉

Rank: 9Rank: 9Rank: 9

UID
2
积分
339
精华
1
沃币
2 枚
注册时间
2021-6-24

论坛管理

发表于 2022-1-18 17:23:38 | 显示全部楼层 |阅读模式

Atomic Red Team™ 是一个简单的测试库,每个安全团队都可以执行这些测试来测试他们的控制。测试是集中的,几乎没有依赖关系,以结构化的格式定义,最直接的应用场景是 红队使用,红队可以根据框架中的技术通过脚本进行自动化攻击

Red Canary 公司以红队为名的 Atomic Red Team 项目,是目前 Github 上关注人数最多的 ATT&CK 项目。其使用简单、上手快,首先需要搭建好相关环境,选择相关的测试用例,包括 Windows、Linux 及 MacOS 用例。然后可以根据每个用例的描述及提供的脚本进行测试,可能有些用例需要替换某些变量。

接下来,可以根据部署的产品进行检测,查看是否发现相关入侵技术,如果没有检测到入侵,需要对检测技术进行改进。最后,不断重复这个过程,以不断提高入侵检测能力,从而更好地覆盖 ATT&CK 的整个攻击技术矩阵

一、准备开始


在执行第一个 atomic 测试前所需要做的一切。

1.1 准备环境


在开始测试前,需要准备下列东西:

  • 测试许可:在执行 atomic 测试之前,请务必征得环境所有者的许可;
  • 一台测试机:设置一台模仿环境构建的机器,确保安全解决方案处于活动状态;

1.2 选择一项测试用例


我们将所有 atomic 测试文件存储在 Atomic Red Team™ 存储库的 atomics 目录中,为了使事情井井有条,我们将测试划分到以它们所代表的 MITRE ATT&CK® 技术命名的目录中,例如,进程注入测试保存在 atomic-red-team/atomics/T1055/ 中。

每个技术目录包含以下内容:

  • YAML 测试文件;
  • Markdown 测试文件;
  • 源文件依赖项的可选 src 目录;
  • 二进制依赖项的可选 bin 目录;

浏览 atomics 目录以进行适当的测试,还可以从以下列表之一中选择一个测试:


1.3 运行测试用例


打开 Markdown 测试定义文件并导航到您选择的测试。

1.3.1 安装依赖


一些测试有一个 "依赖项" 子标题,这些测试需要额外的文件才能运行。要安装依赖项,请执行 "获取 Prereq 命令" 子标题中的命令。

1.3.2 运行测试用例


要运行测试,请执行 "攻击命令" 子标题中的命令,请注意您的安全解决方案收集了哪些信息 (如果有)。

1.3.3 清理环境


一些测试会改变环境,要恢复这些更改,请运行 "清理命令" 子标题中的命令。

提示请务必将任何 #{<input>} 参数替换为 Markdown 测试文件的 "输入" 标题指定的输入

1.4 下一步操作


  • 使用安全解决方案收集的数据来评估和提高检测覆盖率。
  • 使用 Invoke-Atomic 等执行框架自动运行 atomic 测试。

二、APIs


有关 Atomic Red Team Ruby API 的信息

2.1 安装 Atomic Red Team Ruby API


Atomic Red Team 包含一个 Ruby API,使用它来验证测试和生成文档,要安装 Atomic Red Team API,请将以下内容添加到您的 Gemfile:
  1. gem 'atomic-red-team', git: 'git@github.com:redcanaryco/atomic-red-team.git', branch: :master
复制代码

2.2 导入 ATT&CK API


Atomic Red Team 使用 ATT&CK 的 STIX™ 表示提取有关 MITRE ATT&CK® 数据集的信息。我们围绕该数据结构创建了一个轻量级包装器,以使其易于使用。

要使用 ATT&CK API,请在命令行中运行以下命令:
  1. $ bundle exec irb
  2. 2.2.0 :001 > require 'attack_api'
复制代码

2.3 查看 APIs


可以通过访问 Atomic Red Team 存储库中的 atomic_red_team 目录来查看 API 代码和文档,例如使用 Atomic Red Team API 的实用程序,请参见 bin 目录。

2.4 例子


以下演示了 Atomic Red Team API 的一些实用程序

2.4.1 通过技术编号输出与之有关的所有 atomic 测试


  1. require 'atomic_red_team'

  2. AtomicRedTeam.new.atomic_tests.each do |atomic_yaml|
  3.   puts "#{atomic_yaml['attack_technique']}"
  4.   atomic_yaml['atomic_tests'].each do |atomic_test_yaml|
  5.     puts "  #{atomic_test_yaml['name']}"
  6.   end
  7. end
复制代码

2.4.2 输出与某一项技术相关的所有 atomic 测试


  1. require 'atomic_red_team'

  2. AtomicRedTeam.new.atomic_tests_for_technique('T1117').each do |atomic_test_yaml|
  3.   puts "#{atomic_test_yaml['name']}"
  4. end
复制代码

2.4.3 输出 ATT&CK 技术数量


导入 ATT&CK API,然后:
  1. 2.2.0 :020 > Attack.new.techniques.count
  2. => 219
复制代码

2.4.4 获取关于某一项技术的信息


导入 ATT&CK API,然后:
  1. 2.2.0 :006 >   Attack.new.technique_info('T1117')
  2. => {"name"=>"Regsvr32", "description"=>"Regsvr32.exe is a command-line program used to register and unregister
  3. object linking and embedding controls, including dynamic link libraries (DLLs), on Windows systems. Regsvr32.exe can
  4. be used to execute arbitrary binaries. (Citation: Microsoft Regsvr32)\n\nAdversaries may take advantage of this
  5. functionality to proxy" <SNIP> }

  6. 2.2.0 :007 > Attack.new.technique_info('T1117').keys
  7. => ["name", "description", "kill_chain_phases", "external_references", "object_marking_refs", "created",
  8. "created_by_ref", "x_mitre_platforms", "x_mitre_data_sources", "x_mitre_defense_bypassed",
  9. "x_mitre_permissions_required", "x_mitre_remote_support", "x_mitre_contributors", "id", "modified", "type"]
复制代码

2.4.5 获取 ATT&CK 战术及其相关技术的地图


导入 ATT&CK API,然后:
  1. 2.2.0 :019 > Attack.new.techniques_by_tactic.each {|tactic, techniques| puts "#{tactic} has #{techniques.count} techniques"}
  2. persistence has 56 techniques
  3. defense-evasion has 59 techniques
  4. privilege-escalation has 28 techniques
  5. discovery has 19 techniques
  6. credential-access has 20 techniques
  7. execution has 31 techniques
  8. lateral-movement has 17 techniques
  9. collection has 13 techniques
  10. exfiltration has 9 techniques
  11. command-and-control has 21 techniques
  12. initial-access has 10 techniques
复制代码

2.4.6 获取 ATT&CK 矩阵 2D 数组


导入 ATT&CK API,然后:
  1. 2.2.0 :062 > Attack.new.ordered_tactics
  2. => ["initial-access", "execution", "persistence", "privilege-escalation", "defense-evasion", "credential-access",
  3. "discovery", "lateral-movement", "collection", "exfiltration", "command-and-control"]

  4. 2.2.0 :071 > Attack.new.ordered_tactic_to_technique_matrix.each {|row| puts row.collect {|technique| technique['name'] if technique}.join(', ')};
  5. Drive-by Compromise, AppleScript, .bash_profile and .bashrc, Access Token Manipulation, Access Token Manipulation, Account Manipulation, Account Discovery, AppleScript, Audio Capture, Automated Exfiltration, Commonly Used Port
  6. Exploit Public-Facing Application, CMSTP, Accessibility Features, Accessibility Features, BITS Jobs, Bash History, Application Window Discovery, Application Deployment Software, Automated Collection, Data Compressed, Communication Through Removable Media
  7. Hardware Additions, Command-Line Interface, AppCert DLLs, AppCert DLLs, Binary Padding, Brute Force, Browser Bookmark Discovery, Distributed Component Object Model, Clipboard Data, Data Encrypted, Connection Proxy
  8. <SNIP>
  9. , , Winlogon Helper DLL, , Timestomp, , , , , ,
  10. , , , , Trusted Developer Utilities, , , , , ,
  11. , , , , Valid Accounts, , , , , ,
  12. , , , , Web Service, , , , , ,
复制代码

0

主题

16

回帖

0

荣誉

Rank: 1

UID
4
积分
25
精华
0
沃币
4 枚
注册时间
2021-6-25
发表于 2022-1-19 18:29:00 | 显示全部楼层
好内容值得分享!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1楼
2楼

Archiver|小黑屋|DecoyMini 技术交流社区 ( 京ICP备2021005070号 )

GMT+8, 2024-5-5 10:41 , Processed in 0.062883 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表