Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
atomic-operator — Ein Python-Paket wird verwendet, um Atomic Red Team Tests (Atomics) über mehrere Betriebssystemumgebungen hinweg auszuführen. | Kitploit
Tools/GitHubGitHub/swimlane/atomic-operator
DefensivwerkzeugeScripting & AutomatisierungPenetrationstestsCloud-SicherheitLernen & BildungRed TeamingArchived
GitHubswimlane/atomic-operator

atomic-operator

Ein Python-Paket wird verwendet, um Atomic Red Team Tests (Atomics) über mehrere Betriebssystemumgebungen hinweg auszuführen.

Repository anzeigen
156317vor 2 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

PyPI Status Python Version [License][license]

Read the documentation at https://atomic-operator.com/ Code Quality & Tests

Black

atomic-operator

Dieses Python-Paket wird verwendet, um Atomic Red Team-Tests (Atomics) auf mehreren Betriebssystemumgebungen auszuführen.

(Was gibt es Neues?)

Warum?

atomic-operator ermöglicht es Sicherheitsexperten, ihre Erkennungs- und Abwehrfähigkeiten gegen die in atomic-red-team definierten Techniken zu testen. Durch die Verwendung eines Testframeworks wie atomic-operator können Sie sowohl Ihre Abwehrfähigkeiten als auch Lücken in der Abdeckung identifizieren.

Darüber hinaus kann atomic-operator in vielen anderen Situationen eingesetzt werden, wie zum Beispiel:

  • Erzeugen von Alarmen zum Testen von Produkten
  • Testen von EDR und anderen Sicherheitstools
  • Identifizieren von Möglichkeiten zur defensiven Umgehung aus der Perspektive eines Angreifers
  • Und mehr.

Funktionen

  • Unterstützt lokale und entfernte Ausführung von Atomic Red Team-Tests auf Windows-, macOS- und Linux-Systemen
  • Unterstützt die Ausführung von Atomic-Tests gegen iaas:aws
  • Kann nach Eingabeargumenten fragen, ist aber nicht erforderlich
  • Hilft beim Herunterladen des atomic-red-team-Repositorys
  • Kann auf Basis einer Konfigurationsdatei weiter automatisiert werden
  • Ein Kommandozeilen- und importierbares Python-Paket
  • Auswahl bestimmter Tests, wenn eine oder mehrere Techniken angegeben werden
  • Durchsuchen aller Atomics nach dem perfekten Test
  • Übergabe von input_arguments als Eingabe für Tests über die Kommandozeile
  • Und mehr

Erste Schritte

atomic-operator ist ein reines Python-Paket, das auf PyPi gehostet wird und mit Python 3.6 und höher funktioniert.

Wenn Sie eine PowerShell-Version wünschen, schauen Sie bei Invoke-AtomicRedTeam vorbei.

root@kitploit:~
pip install atomic-operator

Die nächsten Schritte führen Sie durch die Einrichtung und Ausführung von atomic-operator.

  • Atomics abrufen – Installieren / Klonen des Atomic Red Team-Repositorys
  • atomic-operator – Die verfügbaren Optionen in atomic-operator verstehen
  • Tests auf der Kommandozeile ausführen oder Tests in einem Skript ausführen
  • Tests über eine Konfigurationsdatei ausführen

Installation

Sie können atomic-operator unter OS X, Linux oder Windows installieren. Sie können es auch direkt aus dem Quellcode installieren. Die Installationsbefehle finden Sie nachfolgend unter dem entsprechenden Betriebssystem.

Voraussetzungen

Die folgenden Bibliotheken werden benötigt und von atomic-operator installiert:

root@kitploit:~
pyyaml==5.4.1
fire==0.4.0
requests==2.26.0
attrs==21.2.0
pick==1.2.0

macOS, Linux und Windows:

root@kitploit:~
pip install atomic-operator

macOS mit M1-Prozessor

root@kitploit:~
git clone https://github.com/swimlane/atomic-operator.git
cd atomic-operator

# Behebt ModuleNotFoundError: No module named 'setuptools_rust'
brew install rust
pip3 install --upgrade pip
pip3 install setuptools_rust

# Zurück zum regulären Programm ...
pip install -r requirements.txt
python setup.py install

Installation aus dem Quellcode

root@kitploit:~
git clone https://github.com/swimlane/atomic-operator.git
cd atomic-operator
pip install -r requirements.txt
python setup.py install

Verwendungsbeispiel (Kommandozeile)

Sie können atomic-operator über die Kommandozeile oder in Ihren eigenen Python-Skripten ausführen. Um atomic-operator in der Kommandozeile zu verwenden, geben Sie einfach Folgendes in Ihrem Terminal ein:

root@kitploit:~
atomic-operator --help
atomic-operator run -- --help

Bitte beachten Sie, dass Sie atomic-operator run -- --help und NICHT atomic-operator run --help eingeben müssen, um Details zum run-Befehl zu sehen.

Abrufen von Atomic-Tests

Um atomic-operator verwenden zu können, müssen Sie einen oder mehrere atomic-red-team-Tests (Atomics) auf Ihrem lokalen System haben. atomic-operator bietet Ihnen die Möglichkeit, das Atomic Red Team-Repository herunterzuladen. Sie können dies tun, indem Sie Folgendes in der Kommandozeile ausführen:

root@kitploit:~
atomic-operator get_atomics 
# Sie können das Zielverzeichnis mit der --destination-Option angeben
atomic-operator get_atomics --destination "/tmp/some_directory"

Lokales Ausführen von Tests

Um einen Test auszuführen, müssen Sie einige zusätzliche Eigenschaften (und bei Bedarf Optionen) angeben. Die Hauptmethode zum Ausführen von Tests heißt run.

root@kitploit:~
# Dies führt ALLE Tests aus, die mit Ihrem lokalen Betriebssystem kompatibel sind
atomic-operator run --atomics-path "/tmp/some_directory/redcanaryco-atomic-red-team-3700624"

Sie können einzelne Tests auswählen, wenn Sie eine oder mehrere bestimmte Techniken angeben. Zum Beispiel, wenn Sie Folgendes in der Kommandozeile ausführen:

root@kitploit:~
atomic-operator run --techniques T1564.001 --select_tests

Wird der Benutzer mit einer Auswahlliste der zu dieser Technik gehörenden Tests aufgefordert. Ein Benutzer kann einen oder mehrere Tests auswählen, indem er die Leertaste verwendet, um den gewünschten Test zu markieren:

root@kitploit:~
 Select Test(s) for Technique T1564.001 (Hide Artifacts: Hidden Files and Directories)

 * Create a hidden file in a hidden directory (61a782e5-9a19-40b5-8ba4-69a4b9f3d7be)
   Mac Hidden file (cddb9098-3b47-4e01-9d3b-6f5f323288a9)
   Create Windows System File with Attrib (f70974c8-c094-4574-b542-2c545af95a32)
   Create Windows Hidden File with Attrib (dadb792e-4358-4d8d-9207-b771faa0daa5)
   Hidden files (3b7015f2-3144-4205-b799-b05580621379)
   Hide a Directory (b115ecaf-3b24-4ed2-aefe-2fcb9db913d3)
   Show all hidden files (9a1ec7da-b892-449f-ad68-67066d04380c)

Das Folgende ermöglicht es Ihnen, benutzerdefinierte Eingabeargumente für Tests bereitzustellen. Sie tun dies, indem Sie ein Wörterbuch von Schlüsseln und Werten als Wörterbuch an den Parameter input_arguments der run-Methode übergeben.

root@kitploit:~
atomic-operator run --techniques T1564.001 --input_arguments '{"project-id": "some_value", "another_key": "another value"}'
# Bitte setzen Sie den Wert von input_arguments in einfache Anführungszeichen.

Fernausführung von Tests

Um einen Test auf einem entfernten System auszuführen, müssen Sie einige zusätzliche Eigenschaften (und bei Bedarf Optionen) angeben. Die Hauptmethode zum Ausführen von Tests heißt run.

root@kitploit:~
# Dies führt ALLE Tests aus, die mit Ihrem lokalen Betriebssystem kompatibel sind
atomic-operator run --atomics-path "/tmp/some_directory/redcanaryco-atomic-red-team-3700624" --hosts "10.32.1.0" --username "my_username" --password "my_password"

Wenn Sie Befehle auf entfernten Windows-Hosts ausführen, müssen Sie möglicherweise PSRemoting konfigurieren. Details finden Sie hier: Windows-Remoting

Zusätzliche Parameter

Sie können zusätzliche Parameter sehen, indem Sie den folgenden Befehl ausführen:

root@kitploit:~
atomic-operator run -- --help

Sie sollten eine ähnliche Ausgabe wie die folgende sehen:

root@kitploit:~
NAME
    atomic-operator run - The main method in which we run Atomic Red Team tests.

SYNOPSIS
    atomic-operator run <flags>

DESCRIPTION
    The main method in which we run Atomic Red Team tests.

FLAGS
    --techniques=TECHNIQUES
        Type: list
        Default: ['all']
        One or more defined techniques by attack_technique ID. Defaults to 'all'.
    --test_guids=TEST_GUIDS
        Type: list
        Default: []
        One or more Atomic test GUIDs. Defaults to None.
    --select_tests=SELECT_TESTS
        Type: bool
        Default: False
        Select one or more tests from provided techniques. Defaults to False.
    --atomics_path=ATOMICS_PATH
        Default: '/U...
        The path of Atomic tests. Defaults to os.getcwd().
    --input_arguments={}
        Default: {}
        A dictionary of input arguments to pass to the test.
    --check_prereqs=CHECK_PREREQS
        Default: False
        Whether or not to check for prereq dependencies (prereq_comand). Defaults to False.
    --get_prereqs=GET_PREREQS
        Default: False
        Whether or not you want to retrieve prerequisites. Defaults to False.
    --cleanup=CLEANUP
        Default: False
        Whether or not you want to run cleanup command(s). Defaults to False.
    --copy_source_files=COPY_SOURCE_FILES
        Default: True
        Whether or not you want to copy any related source (src, bin, etc.) files to a remote host. Defaults to True.
    --command_timeout=COMMAND_TIMEOUT
        Default: 20
        Timeout duration for each command. Defaults to 20.
    --debug=DEBUG
        Default: False
        Whether or not you want to output details about tests being ran. Defaults to False.
    --prompt_for_input_args=PROMPT_FOR_INPUT_ARGS
        Default: False
        Whether you want to prompt for input arguments for each test. Defaults to False.
    --return_atomics=RETURN_ATOMICS
        Default: False
        Whether or not you want to return atomics instead of running them. Defaults to False.
    --config_file=CONFIG_FILE
        Type: Optional[]
        Default: None
        A path to a conifg_file which is used to automate atomic-operator in environments. Default to None.
    --config_file_only=CONFIG_FILE_ONLY
        Default: False
        Whether or not you want to run tests based on the provided config_file only. Defaults to False.
    --hosts=HOSTS
        Default: []
        A list of one or more remote hosts to run a test on. Defaults to [].
    --username=USERNAME
        Type: Optional[]
        Default: None
        Username for authentication of remote connections. Defaults to None.
    --password=PASSWORD
        Type: Optional[]
        Default: None
        Password for authentication of remote connections. Defaults to None.
    --ssh_key_path=SSH_KEY_PATH
        Type: Optional[]
        Default: None
        Path to a SSH Key for authentication of remote connections. Defaults to None.
    --private_key_string=PRIVATE_KEY_STRING
        Type: Optional[]
        Default: None
        A private SSH Key string used for authentication of remote connections. Defaults to None.
    --verify_ssl=VERIFY_SSL
        Default: False
        Whether or not to verify ssl when connecting over RDP (windows). Defaults to False.
    --ssh_port=SSH_PORT
        Default: 22
        SSH port for authentication of remote connections. Defaults to 22.
    --ssh_timeout=SSH_TIMEOUT
        Default: 5
        SSH timeout for authentication of remote connections. Defaults to 5.
    Additional flags are accepted.
        If provided, keys matching inputs for a test will be replaced. Default is None.

Ausführen von atomic-operator mit einer config_file

Zusätzlich zur Möglichkeit, Parameter mit atomic-operator zu übergeben, können Sie auch einen Pfad zu einer config_file übergeben, die alle Atomic-Tests und deren potenzielle Eingaben enthält. Ein Beispiel für eine solche config_file finden Sie hier:

root@kitploit:~
atomic_tests:
  - guid: f7e6ec05-c19e-4a80-a7e7-241027992fdb
    input_arguments:
      output_file:
        value: custom_output.txt
      input_file:
        value: custom_input.txt
  - guid: 3ff64f0b-3af2-3866-339d-38d9791407c3
    input_arguments:
        second_arg:
          value: SWAPPPED argument
  - guid: 32f90516-4bc9-43bd-b18d-2cbe0b7ca9b2

Verwendungsbeispiel (Skripte)

Um atomic-operator zu verwenden, müssen Sie ein AtomicOperator-Objekt instanziieren.

root@kitploit:~
from atomic_operator import AtomicOperator

operator = AtomicOperator()

# Dies lädt eine lokale Kopie des atomic-red-team-Repositorys herunter

print(operator.get_atomics('/tmp/some_directory'))

# Dies führt Tests auf Ihrem lokalen System aus
operator.run(
    technique: str='All', 
    atomics_path=os.getcwd(), 
    check_dependencies=False, 
    get_prereqs=False, 
    cleanup=False, 
    command_timeout=20, 
    debug=False,
    prompt_for_input_args=False,
    **kwargs
)

Hilfe erhalten

Bitte erstellen Sie ein Issue, wenn Sie Fragen haben oder auf Probleme stoßen.

Erstellt mit

  • carcass - Python packaging template

Mitwirken

Bitte lesen Sie CONTRIBUTING.md für Details zu unserem Verhaltenskodex und den Prozess für das Einreichen von Pull Requests.

Versionierung

Wir verwenden SemVer für die Versionierung.

Autoren

  • Josh Rickard - Ursprüngliche Arbeit - MSAdministrator

Siehe auch die Liste der Mitwirkenden, die an diesem Projekt teilgenommen haben.

Lizenz

Dieses Projekt ist unter der MIT-Lizenz lizenziert - siehe die Datei LICENSE für Details.

Danksagung

  • Danke an keithmccammon für die Hilfe bei der Identifizierung von Problemen mit dem macOS M1-Prozessor und die Bereitstellung einer Lösung.
Tool herunterladen
ParameternameTypStandardBeschreibung
techniqueslistallEin oder mehrere definierte Techniken nach attack_technique-ID.
test_guidslistNoneEine oder mehrere Atomic-Test-GUIDs.
select_testsboolFalseWählen Sie einen oder mehrere Atomic-Tests aus, wenn Techniken angegeben sind.
atomics_pathstros.getcwd()Der Pfad zu den Atomic-Tests.
input_argumentsdict{}Ein Wörterbuch von Eingabeargumenten, die an den Test übergeben werden.
check_prereqsboolFalseOb Voraussetzungsabhängigkeiten überprüft werden sollen (prereq_comand).
get_prereqsboolFalseOb Sie Voraussetzungen abrufen möchten.
cleanupboolFalseOb Sie Bereinigungsbefehle ausführen möchten.
copy_source_filesboolTrueOb Sie zugehörige Quelldateien (src, bin, etc.) auf einen entfernten Host kopieren möchten.
command_timeoutint20Zeitdauer für jeden Befehl vor dem Timeout.
debugboolFalseOb Sie Details zu den ausgeführten Tests ausgeben möchten.
prompt_for_input_argsboolFalseOb Sie für jeden Test nach Eingabeargumenten gefragt werden möchten.
return_atomicsboolFalseOb Sie Atomics zurückgeben möchten, anstatt sie auszuführen.
config_filestrNoneEin Pfad zu einer config_file, die zur Automatisierung von atomic-operator in Umgebungen verwendet wird.
config_file_onlyboolFalseOb Sie Tests nur auf Basis der bereitgestellten config_file ausführen möchten.
hostslistNoneEine Liste von einem oder mehreren entfernten Hosts, auf denen ein Test ausgeführt werden soll.
usernamestrNoneBenutzername für die Authentifizierung bei entfernten Verbindungen.
passwordstrNonePasswort für die Authentifizierung bei entfernten Verbindungen.
ssh_key_pathstrNonePfad zu einem SSH-Schlüssel für die Authentifizierung bei entfernten Verbindungen.
private_key_stringstrNoneEin privater SSH-Schlüssel-String, der zur Authentifizierung bei entfernten Verbindungen verwendet wird.
verify_sslboolFalseOb SSL beim Verbinden über RDP (Windows) überprüft werden soll.
ssh_portint22SSH-Port für die Authentifizierung bei entfernten Verbindungen.
ssh_timeoutint5SSH-Timeout für die Authentifizierung bei entfernten Verbindungen.
**kwargsdictNoneWenn zusätzliche Flags an den run-Befehl übergeben werden, versuchen wir, sie mit definierten Eingaben in Atomic-Tests abzugleichen und ihren Wert durch den bereitgestellten Wert zu ersetzen.