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
pyattck — Ein Python-Paket zur Interaktion mit dem Mitre ATT&CK Framework | Kitploit
Tools/GitHubGitHub/swimlane/pyattck
Penetrationstest-FrameworksInformationsbeschaffungDienstprogramme & FrameworksBedrohungsanalyseLernen & BildungKuratierte RessourcenArchived
GitHubswimlane/pyattck

pyattck

Ein Python-Paket zur Interaktion mit dem Mitre ATT&CK Framework

Repository anzeigen
48093vor 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

pyattck

Willkommen zur Dokumentation von pyattck

root@kitploit:~
    .______   ____    ____  ___   .___________.___________.  ______  __  ___
    |   _  \  \   \  /   / /   \  |           |           | /      ||  |/  /
    |  |_)  |  \   \/   / /  ^  \ `---|  |----`---|  |----`|  ,----'|  '  /
    |   ___/    \_    _/ /  /_\  \    |  |        |  |     |  |     |    <
    |  |          |  |  /  _____  \   |  |        |  |     |  `----.|  .  \
    | _|          |__| /__/     \__\  |__|        |__|      \______||__|\__\

root@kitploit:~
Ein Python-Paket zur Interaktion mit den MITRE ATT&CK Frameworks

Aktuelle Version ist 7.1.1

pyattck ist ein leichtgewichtiges Framework für die MITRE ATT&CK Frameworks. Dieses Paket extrahiert Details aus den MITRE Enterprise-, PRE-ATT&CK-, Mobile- und ICS-Frameworks.

Warum?

pyattck hilft Organisationen und Einzelpersonen, auf programmatische Weise auf die MITRE ATT&CK Framework(s) zuzugreifen. Das bedeutet, Sie können auf alle definierten Akteure, Schadprogramme, Minderungen, Taktiken, Techniken und Werkzeuge der Enterprise-, Mobile-, Pre-Attck- und ICS-Frameworks über ein Kommandozeilen-Tool oder durch Einbettung in Ihren eigenen Code zugreifen.

Es gibt viele Gründe, warum Sie auf diese Daten automatisiert (skriptbasiert/codiert) zugreifen möchten, aber einige Beispiele sind:

  • Erstellen von Berichten mit zusätzlichen Details zu einer Technik (oder einem beliebigen im Framework definierten Objekt)
  • Eine Build-Pipeline von Erkennungsregeln mit zusätzlichen MITRE ATT&CK-Details zur Kategorisierung
  • Schnelles Suchen nach spezifischen Details zu einer Technik, ohne eine Webseite zu durchsuchen

Es gibt auch andere Vorteile, die pyattck bietet, darunter die Möglichkeit, zusätzliche Kontextdaten bereitzustellen. Weitere Informationen zu diesen Daten finden Sie hier, aber im Wesentlichen nutzt pyattck mehrere Open-Source-Repositories, um zusätzliche Kontextdaten wie Befehle zur Ausführung einer Technik, Länder- und andere Details zu einem böswilligen Akteur, andere Varianten von Schadsoftware, die einem definierten Werkzeug/Schadprogramm ähneln, usw. zu sammeln.

Dieser zusätzliche Kontext macht pyattck wirklich leistungsfähig und ermöglicht es Menschen, robustere Tests und Validierungen ihrer Erkennungsregeln zu erstellen, Testannahmen zu validieren usw. Es gibt unzählige Möglichkeiten, wie pyattck genutzt werden kann, um Blue-, Red- und Purple-Teams bei der Verteidigung von Organisationen (und sich selbst) zu unterstützen.

Funktionen

Das pyattck-Paket ruft alle Taktiken, Techniken, Akteure, Schadprogramme, Werkzeuge und Minderungen aus den MITRE ATT&CK Frameworks ab, sowie alle definierten Beziehungen innerhalb des MITRE ATT&CK-Datensatzes (einschließlich Sub-Techniken).

Darüber hinaus haben Techniken, Akteure und Werkzeuge (falls zutreffend) jetzt gesammelte Daten von Drittanbietern, die über verschiedene Eigenschaften zugänglich sind. Detailliertere Informationen zu diesen Funktionen finden Sie unter Externe Datensätze.

Das pyattck-Paket ermöglicht Ihnen:

  • Angabe einer URL oder eines lokalen Dateipfads für das MITRE ATT&CK Enterprise Framework JSON, den generierten Datensatz und/oder eine config.yml-Datei.
  • Zugriff auf Daten aus dem MITRE PRE-ATT&CK Framework
  • Zugriff auf Daten aus dem MITRE Mobile ATT&CK Framework
  • Zugriff auf Daten aus dem MITRE ICS ATT&CK Framework
  • Zugriff auf Sub-Techniken als verschachtelte Objekte oder Sie können dies deaktivieren und als normale Technik darauf zugreifen
  • Zugriff auf Compliance-Kontrollen (derzeit NIST 800-53 v5), die mit einer MITRE ATT&CK-Technik verbunden sind
  • pyattck verwendet jetzt strukturierte Datenmodelle. Weitere Informationen finden Sie unter pyattck-data
  • Ausführen eines interaktiven Konsolenmenüs, um auf pyattck-Daten zuzugreifen

Inhaltsverzeichnis

  1. Installation
  2. Anwendungsbeispiel
  3. Konfiguration
  4. Hinweise

Installation

Sie können pyattck unter OS X, Linux oder Windows installieren. Sie können es auch direkt aus dem Quellcode installieren. Führen Sie zur Installation die Befehle unter dem entsprechenden Betriebssystem aus.

macOS, Linux und Windows:

root@kitploit:~
pip install pyattck

Installation aus dem Quellcode

root@kitploit:~
git clone https://github.com/swimlane/pyattck.git
cd pyattck
python setup.py install

Anwendungsbeispiel

Um pyattck zu verwenden, müssen Sie ein Attck-Objekt instanziieren. Obwohl Sie direkt mit jeder Klasse interagieren können, ist die beabsichtigte Verwendung über ein Attck-Objekt:

root@kitploit:~
from pyattck import Attck

attack = Attck()

Standardmäßig sind sub-techniques unter jedem Technikobjekt zugänglich. Sie können dieses Verhalten deaktivieren, indem Sie nested_techniques=False bei der Erstellung Ihres Attck-Objekts übergeben.

Als Beispiel sieht das Standardverhalten wie folgt aus:

root@kitploit:~
from pyattck import Attck

attack = Attck()

for technique in attack.enterprise.techniques:
    print(technique.id)
    print(technique.name)
    for subtechnique in technique.techniques:
        print(subtechnique.id)
        print(subtechnique.name)

Sie können auf die folgenden main-Eigenschaften Ihres Attck-Objekts zugreifen:

  • enterprise
  • preattack
  • mobile
  • ics

Sobald Sie das MITRE ATT&CK Framework angegeben haben, können Sie auf zusätzliche Eigenschaften zugreifen.

Hier sind die zugänglichen Objekte unter der Enterprise-Eigenschaft:

  • actors
  • controls
  • malwares
  • mitigations
  • tactics
  • techniques
  • tools

Weitere Informationen zu Objekttypen unter der enterprise-Eigenschaft finden Sie unter Enterprise.

Hier sind die zugänglichen Objekte unter der PreAttck-Eigenschaft:

  • actors
  • tactics
  • techniques

Weitere Informationen zu Objekttypen unter der preattck-Eigenschaft finden Sie unter PreAttck.

Hier sind die zugänglichen Objekte unter der Mobile-Eigenschaft:

  • actors
  • malwares
  • mitigations
  • tactics
  • techniques
  • tools

Weitere Informationen zu Objekttypen unter der mobile-Eigenschaft finden Sie unter Mobile.

Hier sind die zugänglichen Objekte unter der ICS-Eigenschaft:

  • controls
  • malwares
  • mitigations
  • tactics
  • techniques

Weitere Informationen zu Objekttypen unter der ics-Eigenschaft finden Sie unter ICS.

Verwendung des interaktiven Menüs

Um das neue interaktive Menüsystem in pyattck zu nutzen, müssen Sie interactive auf True setzen. Dadurch wird das interaktive Konsolenmenü gestartet.

Mit einem Skript können Sie dies wie folgt starten:

root@kitploit:~
from pyattck import Attck

Attck(interactive=True)

Oder Sie können den interaktiven Modus auch über die Befehlszeile ausführen:

root@kitploit:~
pyattck --interactive

Sehen Sie sich unten ein Beispiel als GIF an:

Konfiguration

pyattck ermöglicht es Ihnen zu konfigurieren, ob Sie externe Daten speichern und wo diese gespeichert werden.

root@kitploit:~
from pyattck import Attck

attck = Attck(
    nested_techniques=True,
    use_config=False,
    save_config=False,
    config_file_path='~/pyattck/config.yml',
    data_path='~/pyattck/data',
    enterprise_attck_json="https://swimlane-pyattck.s3.us-west-2.amazonaws.com/merged_enterprise_attck_v1.json",
    pre_attck_json="https://swimlane-pyattck.s3.us-west-2.amazonaws.com/merged_pre_attck_v1.json",
    mobile_attck_json="https://swimlane-pyattck.s3.us-west-2.amazonaws.com/merged_mobile_attck_v1.json,
    ics_attck_json="https://swimlane-pyattck.s3.us-west-2.amazonaws.com/merged_ics_attck_v1.json",
    nist_controls_json="https://swimlane-pyattck.s3.us-west-2.amazonaws.com/merged_nist_controls_v1.json",
    generated_nist_json="https://swimlane-pyattck.s3.us-west-2.amazonaws.com/attck_to_nist_controls.json",
    **kwargs
)

Standardmäßig ruft pyattck (jetzt) die neuesten externen Daten von ihren jeweiligen Quellen mittels HTTP-GET-Anfragen ab. pyattck bezieht derzeit Daten von den folgenden Quellen:

  • enterprise_attck_json="https://swimlane-pyattck.s3.us-west-2.amazonaws.com/merged_enterprise_attck_v1.json"
  • pre_attck_json="https://swimlane-pyattck.s3.us-west-2.amazonaws.com/merged_pre_attck_v1.json"
  • mobile_attck_json="https://swimlane-pyattck.s3.us-west-2.amazonaws.com/merged_mobile_attck_v1.json"
  • ics_attck_json="https://swimlane-pyattck.s3.us-west-2.amazonaws.com/merged_ics_attck_v1.json"
  • nist_controls_json="https://swimlane-pyattck.s3.us-west-2.amazonaws.com/merged_nist_controls_v1.json"
  • generated_nist_json="https://swimlane-pyattck.s3.us-west-2.amazonaws.com/attck_to_nist_controls.json"

Sie haben mehrere Optionen bei der Instanziierung des Attck-Objekts. Ab Version 4.0.0 können Sie jetzt eine der folgenden Optionen angeben:

  • use_config - Wenn Sie dieses Argument als True angeben, versucht pyattck, die in der config_file_path-Position angegebene Konfiguration abzurufen. Wenn diese Datei beschädigt ist oder nicht gefunden werden kann, werden standardmäßig die Daten von den angegebenen *_attck_json-Speicherorten abgerufen.
  • save_config - Wenn Sie dieses Argument als True angeben, speichert pyattck die Konfigurationsdatei an dem durch config_file_path angegebenen Speicherort. Zusätzlich werden alle heruntergeladenen Dateien im angegebenen data_path-Speicherort gespeichert. Wenn Sie anstelle einer Download-URL für einen der *_attck_json-Parameter einen lokalen Pfad angegeben haben, wird dieser Speicherort in der Konfiguration gespeichert und zukünftig referenziert.
  • config_file_path - Der Pfad zum Speichern einer Konfigurationsdatei. Standard ist ~/pyattck/config.yml
  • data_path - Der Pfad zum Speichern aller auf das lokale System heruntergeladenen Datendateien. Standard ist ~/pyattck/data

JSON-Speicherorte

Zusätzlich können Sie den Speicherort für jede einzelne *_attck_json-Datei angeben, indem Sie entweder eine URI oder einen lokalen Dateipfad übergeben. Wenn Sie einen lokalen Dateipfad übergeben haben, wird diese Datei einfach gelesen.

Wenn Sie die Standardwerte verwendet oder einen alternativen URI-Speicherort zum Abrufen dieser JSON-Dateien angegeben haben, können Sie zusätzlich **kwargs übergeben, die an das Python-Paket Requests weitergeleitet werden, wenn HTTP-Anfragen durchgeführt werden.

Hinweise

Wir sind uns bewusst, dass viele verschiedene Open-Source-Projekte veröffentlicht werden, sogar täglich, aber wir wollten ein unkompliziertes Python-Paket bereitstellen, das es dem Benutzer ermöglicht, bekannte Beziehungen zwischen allen Vertikalen des MITRE ATT&CK Frameworks zu identifizieren.

Wenn Sie mit dem MITRE ATT&CK Framework nicht vertraut sind, gibt es einige Schlüsselkomponenten, die Sie unbedingt verstehen sollten. Die erste sind Taktiken und Techniken. Wenn Sie sich das MITRE ATT&CK Framework ansehen, sind die Taktiken die Spalten und repräsentieren die verschiedenen Phasen eines Angriffs.

Das MITRE ATT&CK Framework ist KEINE allumfassende/definitive Sicherheitsabdeckungskarte – es ist vielmehr ein RAHMENWERK und es sollten auch zusätzliche Wege berücksichtigt werden, wenn Sie Ihre Sicherheitslage bewerten.

Techniken sind die Zeilen des Frameworks und sind unter bestimmten Taktiken (Spalten) kategorisiert. Sie sind Datenpunkte innerhalb des Frameworks, die Orientierung bei der Bewertung Ihrer Sicherheitslücken bieten. Zusätzlich enthalten die meisten Techniken Minderungsanleitungen sowie Informationen über ihre Beziehung zu Werkzeugen, Schadsoftware und sogar Akteuren/Gruppen, die diese Technik bei aufgezeichneten Angriffen verwendet haben.

Das bedeutet, wenn Ihre Organisation sich auf TTPs (Taktiken, Techniken und Verfahren) konzentriert, die von bestimmten Akteuren/Gruppen verwendet werden, dann ist das MITRE ATT&CK Framework perfekt für Sie. Wenn Ihre Organisation noch nicht diesen Sicherheitsreifegrad erreicht hat, kein Problem! Das ATT&CK Framework bietet dennoch sehr gute Orientierung in einem einfachen und übersichtlichen Layout, aber programmatisch ist es nicht einfach – besonders wenn Sie Ihre Sicherheitskontrollen mit dem Framework messen (oder abbilden) möchten.

Entwicklung und Test

Sie können Funktionen oder Fehler hinzufügen oder den Code in einer Entwicklungsumgebung ausführen.

  1. Um eine Entwicklungs- und Testumgebung einzurichten, verwenden Sie dieses Dockerfile.

  2. Um das Dockerfile zu verwenden, wechseln Sie in das Repository-Verzeichnis und führen Sie aus:

root@kitploit:~
docker build --force-rm -t pyattck .
  1. Führen Sie als nächstes den Docker-Container aus:
root@kitploit:~
docker run pyattck

Dieser Aufruf führt die Test-Python-Datei in bin/test.py aus.

  1. Ändern Sie die Test-Python-Datei für zusätzliche Tests und Entwicklung.

Ausführen der Tests

Tests in diesem Projekt sollten alle verfügbaren Eigenschaften und Methoden abdecken. Mit dem Wachstum dieses Projekts werden die Tests robuster, aber vorerst testen wir, dass sie existieren und Ausgaben zurückgeben.

Mitwirken

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

Versionierung

Wir verwenden SemVer für die Versionierung.

Änderungsprotokoll

Details zu Funktionen einer bestimmten Version von pyattck finden Sie im CHANGELOG.md.

Autoren

  • Josh Rickard - Erstfassung - MSAdministrator

Siehe auch die Liste der Mitwirkenden.

Lizenz

Dieses Projekt ist unter der MIT-Lizenz lizenziert.

Danksagungen

Zuallererst möchte ich mich bei allen bedanken, die zu Open-Source-Projekten beitragen, insbesondere bei den Maintainern und Erstellern dieser Projekte. Ohne sie wäre diese Fähigkeit nicht möglich.

Dieser Datensatz wird aus vielen verschiedenen Quellen generiert. Während wir weiterhin weitere Quellen hinzufügen, werden wir sie hier ergänzen. Nochmals vielen Dank an all diese Projekte. In keiner bestimmten Reihenfolge nutzt pyattck Daten aus den folgenden Projekten:

  • Mitre ATT&CK APT3 Adversary Emulation Field Manual
  • Atomic Red Team (von Red Canary)
  • Atomic Threat Coverage
  • attck_empire (von dstepanic)
  • sentinel-attack (von BlueTeamLabs)
  • Litmus_test (von Kirtar22)
  • nsm-attack (von oxtf)
  • osquery-attck (von teoseller)
  • Mitre Stockpile
  • SysmonHunter (von baronpan)
  • ThreatHunting-Book (von 12306Bro)
  • threat_hunting_tables (von dwestgard)
  • APT Groups & Operations
  • C2Matrix (von @jorgeorchilles, @brysonbort, @adam_mashinchi)
  • Elemental
  • MalwareArchaeology - ATTACK
  • Attack-Technique-Dataset
root@kitploit:~
.. toctree::
   :titlesonly:

   configuration
   pyattck/attck
   Dataset <https://github.com/swimlane/pyattck-data>
   Data Models <https://github.com/swimlane/pyattck-data>
   enterprise/enterprise
   preattck/preattck
   mobile/mobileattck
   ics/icsattck
Tool herunterladen