Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Outils/GitHubGitHub/swimlane/pyattck
Frameworks de Tests d'IntrusionCollecte d'InformationsUtilitaires et FrameworksRenseignement sur les MenacesApprentissage et ÉducationRessources OrganiséesArchived
GitHubswimlane/pyattck

pyattck

Un paquet Python pour interagir avec le framework MITRE ATT&CK

Voir le dépôt
48093il y a 2 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

pyattck

Bienvenue dans la documentation de pyattck

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

root@kitploit:~
Un paquet Python pour interagir avec les frameworks MITRE ATT&CK

La version actuelle est 7.1.1

pyattck est un framework léger pour les frameworks MITRE ATT&CK. Ce paquet extrait les détails des frameworks Enterprise, PRE-ATT&CK, Mobile et ICS de MITRE.

Pourquoi ?

pyattck aide les organisations et les individus à accéder aux frameworks MITRE ATT&CK de manière programmatique. Cela signifie que vous pouvez accéder à tous les acteurs, malwares, mitigations, tactiques, techniques et outils définis par les frameworks Enterprise, Mobile, Pre-Attck et ICS via un utilitaire en ligne de commande ou en l'intégrant dans votre propre code.

Il existe de nombreuses raisons pour lesquelles vous voudriez accéder à ces données de manière automatisée (scriptée/codée), mais quelques exemples sont :

  • Générer des rapports avec des détails supplémentaires sur une technique (ou tout objet défini dans le framework)
  • Un pipeline de construction de règles de détection avec des détails MITRE ATT&CK supplémentaires pour la catégorisation
  • Rechercher rapidement des détails spécifiques sur une technique sans naviguer sur une page web

Il existe d'autres avantages que pyattck offre également, notamment la possibilité de fournir des données contextuelles supplémentaires. Vous trouverez plus d'informations sur ces données ici mais l'essentiel est que pyattck utilise plusieurs dépôts open-source pour collecter des données contextuelles supplémentaires comme les commandes utilisées pour exécuter une technique, le pays et autres détails sur un acteur malveillant, d'autres variantes de malware similaires à un outil/malware défini, etc.

Ce contexte supplémentaire est ce qui rend pyattck vraiment puissant et permet aux gens de construire des tests et des validations plus robustes de leurs règles de détection, de valider les hypothèses de test, etc. Il existe vraiment d'innombrables façons d'utiliser pyattck pour aider les équipes bleues, rouges et violettes à défendre les organisations (et elles-mêmes).

Fonctionnalités

Le paquet pyattck récupère toutes les tactiques, techniques, acteurs, malwares, outils et mitigations des frameworks MITRE ATT&CK ainsi que toutes les relations définies dans l'ensemble de données MITRE ATT&CK (y compris les sous-techniques).

De plus, les techniques, acteurs et outils (le cas échéant) disposent désormais de données collectées à partir de ressources tierces accessibles via différentes propriétés. Pour plus d'informations détaillées sur ces fonctionnalités, voir Jeux de données externes.

Le paquet pyattck vous permet de :

  • Spécifier une URL ou un chemin de fichier local pour le json du framework MITRE ATT&CK Enterprise, le jeu de données généré et/ou un fichier config.yml.
  • Accéder aux données du framework MITRE PRE-ATT&CK
  • Accéder aux données du framework MITRE Mobile ATT&CK
  • Accéder aux données du framework MITRE ICS ATT&CK
  • Accéder aux sous-techniques en tant qu'objets imbriqués ou vous pouvez désactiver cette option et y accéder comme une technique normale
  • Accéder aux contrôles de conformité (actuellement NIST 800-53 v5) liés à une technique MITRE ATT&CK
  • pyattck utilise désormais des modèles de données structurés. Plus d'informations sont disponibles sur pyattck-data
  • Exécuter un système de menu interactif en console pour accéder aux données de pyattck

Table des matières

  1. Installation
  2. Exemple d'utilisation
  3. Configuration
  4. Notes

Installation

Vous pouvez installer pyattck sur OS X, Linux ou Windows. Vous pouvez également l'installer directement à partir des sources. Pour installer, voir les commandes sous l'en-tête du système d'exploitation correspondant ci-dessous.

macOS, Linux et Windows :

root@kitploit:~
pip install pyattck

Installation à partir des sources

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

Exemple d'utilisation

Pour utiliser pyattck, vous devez instancier un objet Attck. Bien que vous puissiez interagir directement avec chaque classe, l'utilisation prévue se fait via un objet Attck :

root@kitploit:~
from pyattck import Attck

attack = Attck()

Par défaut, les sous-techniques sont accessibles sous chaque objet technique. Vous pouvez désactiver ce comportement en passant nested_techniques=False lors de la création de votre objet Attck.

Par exemple, le comportement par défaut ressemble à l'exemple suivant :

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)

Vous pouvez accéder aux propriétés principales suivantes sur votre objet Attck :

  • enterprise
  • preattack
  • mobile
  • ics

Une fois que vous spécifiez le framework MITRE ATT&CK, vous pouvez accéder à des propriétés supplémentaires.

Voici les objets accessibles sous la propriété Enterprise :

  • acteurs
  • contrôles
  • malwares
  • mitigations
  • tactiques
  • techniques
  • outils

Pour plus d'informations sur les types d'objets sous la propriété enterprise, voir Enterprise.

Voici les objets accessibles sous la propriété PreAttck :

  • acteurs
  • tactiques
  • techniques

Pour plus d'informations sur les types d'objets sous la propriété preattck, voir PreAttck.

Voici les objets accessibles sous la propriété Mobile :

  • acteurs
  • malwares
  • mitigations
  • tactiques
  • techniques
  • outils

Pour plus d'informations sur les types d'objets sous la propriété mobile, voir Mobile.

Voici les objets accessibles sous la propriété ICS :

  • contrôles
  • malwares
  • mitigations
  • tactiques
  • techniques

Pour plus d'informations sur les types d'objets sous la propriété ics, voir ICS.

Utilisation du menu interactif

Pour utiliser le nouveau système de menu interactif dans pyattck, vous devez définir interactive sur True. Ce faisant, il lancera le système de menu interactif en console.

En utilisant un script, vous pouvez le lancer en exécutant :

root@kitploit:~
from pyattck import Attck

Attck(interactive=True)

Ou vous pouvez également exécuter le mode interactif en ligne de commande :

root@kitploit:~
pyattck --interactive

Découvrez un exemple en gif ci-dessous :

Configuration

pyattck vous permet de configurer si vous stockez des données externes et où elles sont stockées.

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
)

Par défaut, pyattck va désormais récupérer les dernières données externes depuis leurs emplacements respectifs en utilisant des requêtes HTTP GET. pyattck récupère actuellement depuis les emplacements suivants :

  • 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"

Vous avez plusieurs options lors de l'instanciation de l'objet Attck. À partir de 4.0.0, vous pouvez désormais spécifier l'une des options suivantes :

  • use_config - Lorsque vous spécifiez cet argument comme True, pyattck tentera de récupérer la configuration spécifiée dans l'emplacement config_file_path. Si ce fichier est corrompu ou introuvable, nous utiliserons par défaut la récupération des données depuis les emplacements *_attck_json spécifiés.
  • save_config - Lorsque vous spécifiez cet argument comme True, pyattck enregistrera le fichier de configuration à l'emplacement spécifié par config_file_path. De plus, nous enregistrerons tous les fichiers téléchargés à l'emplacement data_path spécifié. Si vous avez spécifié un chemin local au lieu d'une URL de téléchargement pour l'un des paramètres *_attck_json, nous enregistrerons cet emplacement dans notre configuration et ferons référence à cet emplacement à l'avenir.
  • config_file_path - Le chemin pour stocker un fichier de configuration. Par défaut : ~/pyattck/config.yml
  • data_path - Le chemin pour stocker les fichiers de données téléchargés sur le système local. Par défaut : ~/pyattck/data

Emplacements JSON

De plus, vous pouvez spécifier l'emplacement pour chaque fichier *_attck_json individuel en passant soit une URI, soit un chemin de fichier local. Si vous avez passé un chemin de fichier local, nous lirons simplement à partir de ce fichier.

Si vous avez utilisé les valeurs par défaut ou spécifié un emplacement URI alternatif pour récupérer ces fichiers JSON, vous pouvez également passer **kwargs qui seront transmis au paquet Python Requests lors de l'exécution de requêtes HTTP.

Note

Nous comprenons qu'il existe de nombreux projets open-source différents publiés, même quotidiennement, mais nous voulions fournir un paquet Python simple qui permette à l'utilisateur d'identifier les relations connues entre tous les volets du framework MITRE ATT&CK.

Si vous n'êtes pas familier avec le framework MITRE ATT&CK, il y a quelques composants clés à bien comprendre. Le premier est les Tactiques et Techniques. En regardant le framework MITRE ATT&CK, les Tactiques sont les colonnes et représentent les différentes phases d'une attaque.

Le framework MITRE ATT&CK n'est PAS une carte de couverture de sécurité exhaustive/de facto - c'est plutôt un CADRE et d'autres voies doivent également être considérées lors de l'évaluation de votre posture de sécurité.

Les Techniques sont les lignes du framework et sont catégorisées sous des Tactiques spécifiques (colonnes). Ce sont des points de données dans le framework qui fournissent des conseils lors de l'évaluation de vos lacunes de sécurité. De plus, la plupart des Techniques contiennent des conseils d'atténuation ainsi que des informations sur leur relation avec des outils, des malwares et même des acteurs/groupes qui ont utilisé cette technique lors d'attaques enregistrées.

Cela signifie que si votre organisation se concentre sur les TTP (Tactiques, Techniques et Procédures) utilisées par certains acteurs/groupes, alors le framework MITRE ATT&CK est parfait pour vous. Si vous n'en êtes pas à ce niveau de maturité en sécurité dans votre organisation, pas de souci ! Le framework ATT&CK fournit toujours de très bons conseils dans une mise en page simple et directe, mais programmatiquement, ce n'est pas simple - surtout si vous voulez mesurer (ou cartographier) vos contrôles de sécurité à l'aide du framework.

Développement et tests

Vous pouvez ajouter des fonctionnalités ou des bogues, ou exécuter le code dans un environnement de développement.

  1. Pour mettre en place un environnement de développement et de test, utilisez ce Dockerfile.

  2. Pour utiliser le Dockerfile, placez-vous dans le répertoire de ce dépôt et exécutez :

root@kitploit:~
docker build --force-rm -t pyattck .
  1. Ensuite, exécutez le conteneur docker :
root@kitploit:~
docker run pyattck

L'exécution de cette commande appelle le fichier python de test dans bin/test.py.

  1. Modifiez le fichier python de test pour des tests et développements supplémentaires.

Exécution des tests

Les tests de ce projet devraient couvrir toutes les propriétés et méthodes disponibles. À mesure que ce projet grandira, les tests deviendront plus robustes, mais pour l'instant, nous testons qu'ils existent et qu'ils renvoient des sorties.

Contribuer

Veuillez lire CONTRIBUTING.md pour plus de détails sur notre code de conduite et le processus de soumission de pull requests.

Gestion des versions

Nous utilisons SemVer pour la gestion des versions.

Journal des modifications

Pour les détails sur les fonctionnalités d'une version spécifique de pyattck, voir le CHANGELOG.md.

Auteurs

  • Josh Rickard - Travail initial - MSAdministrator

Voir aussi la liste des contributeurs.

Licence

Ce projet est sous licence MIT License.

Remerciements

Tout d'abord, je tiens à remercier tous ceux qui contribuent aux projets open-source, en particulier les mainteneurs et créateurs de ces projets. Sans eux, cette capacité ne serait pas possible.

Cet ensemble de données est généré à partir de nombreuses sources différentes. Alors que nous continuons à ajouter plus de sources, nous continuerons à les ajouter ici. Encore une fois, merci à tous ces projets. Dans aucun ordre particulier, pyattck utilise les données des projets suivants :

  • Mitre ATT&CK APT3 Adversary Emulation Field Manual
  • Atomic Red Team (by Red Canary)
  • Atomic Threat Coverage
  • attck_empire (by dstepanic)
  • sentinel-attack (by BlueTeamLabs)
  • Litmus_test (by Kirtar22)
  • nsm-attack (by oxtf)
  • osquery-attck (by teoseller)
  • Mitre Stockpile
  • SysmonHunter (by baronpan)
  • ThreatHunting-Book (by 12306Bro)
  • threat_hunting_tables (by dwestgard)
  • APT Groups & Operations
  • C2Matrix (by @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
Télécharger l’outil