红蓝攻防
点击放大

![PyPI][pypi status]
![Status][pypi status]
![Python ][pypi status]
![License][license]
![Read the documentation at ][read the docs]
![Code Quality & Tests]()
![Black][black]
[pypi status]:
[read the docs]:
[tests]:
[codeco://app.codecov.io/gh/Swimlane/atomic-operator
[pre-commit]:
[black]:

This python package is used to execute Atomic Red Team tests (Atomics) across multiple operating system en.
> (What's new?)
atomic-operator enables security professionals to test their detection and defensi against prescribed techniques defined within atomic-red-team. By utilizing a testing framework such as atomic-operator, you can identify both your defensi as well as gaps in defensi.
Additionally, atomic-operator can be used in many other situations like:
* Support local and remote execution of Atomic Red Teams tests on Windows, macOS, and Linux systems
* Supports running atomic-tests against iaas:aws
* Can prompt for input arguments but not required
* Assist with downloading the atomic-red-team repository
* Can be automated further based on a configuration file
* A command-line and importable Python package
* Select specific tests when one or more techniques are specified
* Search across all atomics for that perfect test
* Pass input_arguments as input for tests line
* Plus more
atomic-operator is a Python-only package hosted on PyPi and works with Python 3.6 and greater.
If you are wanting a PowerShell , please checkout In.
The next steps will guide you through setting up and running atomic-operator.
* Get Atomics Install / clone Atomic Red Team repository
* atomic-operator Understand the options a in atomic-operator
* Running Test on Command Line or Running Tests within a Script
* Running Tests File
You can install atomic-operator on OS X, Linux, or Windows. You can also install it directly from the source. To install, see the commands under the relevant operating system heading, below.
The following libraries are required and installed by atomic-operator:
You can run atomic-operator from the command line or within your own Python scripts. To use atomic-operator at the command line simply enter the following in your terminal:
> Please note that to see details about the run command run atomic-operator run -- --help and NOT atomic-operator run --help
In order to use atomic-operator you must have one or more atomic-red-team tests (Atomics) on your local system. atomic-operator provides you with the ability to download the Atomic Red Team repository. You can do so by running the following at the command line:
In order to run a test you must provide some additional properties (and options if desired). The main method to run tests is named run.
You can select indi tests when you provide one or more specific techniques. For example running the following on the command line:
Will prompt the user with a selection list of tests associated with that technique. A user can select one or more tests by using the space bar to highlight the desired test:
The following will allow you to provide custom input arguments for tests. You do this pro a dictionary of keys and as a dictionary to the input_arguments parameter on the run method.
In order to run a test remotely you must provide some additional properties (and options if desired). The main method to run tests is named run.
> When running commands remotely against Windows hosts you may need to configure PSRemoting. See details here: Windows Remoting
You can see additional parameters by running the following command:
|Parameter Name|Type|Default|Description|
|--------------|----|-------|-----------|
|techniques|list|all|One or more defined techniques by attack_technique ID.|
|test_guids|list|None|One or more Atomic test GUIDs.|
|select_tests|bool|False|Select one or more atomic tests to run when a techniques are specified.|
|atomics_path|str|os.getcwd()|The path of Atomic tests.|
|input_arguments|dict|{}|A dictionary of input arguments to pass to the test.|
|check_prereqs|bool|False|Whether or not to check for prereq dependencies (prereq_comand).|
|get_prereqs|bool|False|Whether or not you want to retrie.|
|cleanup|bool|False|Whether or not you want to run cleanup command(s).|
|copy_source_files|bool|True|Whether or not you want to copy any related source (src, bin, etc.) files to a remote host.|
|command_timeout|int|20|Time duration for each command before timeout.|
|debug|bool|False|Whether or not you want to output details about tests being ran.|
|prompt_for_input_args|bool|False|Whether you want to prompt for input arguments for each test.|
|return_atomics|bool|False|Whether or not you want to return atomics instead of running them.|
|config_file|str|None|A path to a conifg_file which is used to automate atomic-operator in en.|
|config_file_only|bool|False|Whether or not you want to run tests based on the provided config_file only.|
|hosts|list|None|A list of one or more remote hosts to run a test on.|
|username|str|None|Username for authentication of remote connections.|
|password|str|None|Password for authentication of remote connections.|
|ssh_key_path|str|None|Path to a SSH Key for authentication of remote connections.|
|pri|str|None|A private SSH Key string used for authentication of remote connections.|
||bool|False|Whether or not to ssl when connecting over RDP (windows).|
|ssh_port|int|22|SSH port for authentication of remote connections.|
|ssh_timeout|int|5|SSH timeout for authentication of remote connections.|
|**kwargs|dict|None|If additional flags are passed into the run command then we will attempt to match them with defined inputs within Atomic tests and replace their value with the provided value.|
You should see a similar output to the following:
In addition to the ability to pass in parameters with atomic-operator you can also pass in a path to a config_file that contains all the atomic tests and their potential inputs. You can see an example of this config_file here:
To use atomic-operator you must instantiate an AtomicOperator object.
Please create an issue if you ha or run into any issues.
* carcass - Python packaging template
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
We use SemVer for .
* Josh Rickard - *Initial work* - MSAdministrator
See also the list of contributors who participated in this project.
This project is licensed under the MIT License - see the LICENSE file for details
开发语言:Python
Star 数:156
该项目属于红蓝攻防方向的开源资源,代码结构清晰,适合安全研究人员学习参考。项目围绕A Python package is used to execute Atomic Red Team tests (Atomics) across multiple operating system environments.展开,提供了可运行的实现,对理解相关安全机制、工具原理与攻防技术具有较高的研究价值。
从技术实现角度看,此类项目的核心在于对底层原理的深入理解与工程化落地。开发者在研究过程中可以结合官方文档与社区讨论,梳理项目的初始化流程、核心模块职责与数据流转,逐步掌握其中的技术细节与设计思路。
1. 下载源码压缩包,解压到本地环境。
2. 根据项目类型准备对应的运行环境与依赖。
3. 按照 README 中的步骤完成配置与部署。
4. 在隔离的测试环境中运行验证,避免影响生产系统。
本资源来源于开源社区,仅供安全研究、技术学习与合法授权范围内的攻防演练使用,请勿用于任何非法或侵害他人权益的用途。使用本项目产生的一切后果由使用者自行承担。
| 资源标题 | atomic-operator - A Python package is used to execute Atomic Red Tea |
| 所属分类 | 红蓝攻防 |
| 发布作者 | admin |
| 发布时间 | 2026-10-06 00:48:57 |
| 下载权限 | 免费下载 |
| 附件数量 | 2 个下载链接 |
| 浏览次数 | 119 |
| 讨论数量 | 0 |
| 主题状态 | 正常讨论中 |