Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
pyattck — Un pacchetto Python per interagire con il framework Mitre ATT&CK | Kitploit
Strumenti/GitHubGitHub/swimlane/pyattck
Frameworks per Penetration TestingRaccolta InformazioniUtilità e FrameworkThreat IntelligenceApprendimento e FormazioneRisorse CurateArchived
GitHubswimlane/pyattck

pyattck

Un pacchetto Python per interagire con il framework Mitre ATT&CK

Vedi Repository
480932 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

pyattck

Benvenuto nella documentazione di pyattck

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

root@kitploit:~
Un pacchetto Python per interagire con i framework MITRE ATT&CK

Versione attuale: 7.1.1

pyattck è un framework leggero per i framework MITRE ATT&CK. Questo pacchetto estrae dettagli dai framework Enterprise, PRE-ATT&CK, Mobile e ICS di MITRE.

Perché?

pyattck aiuta organizzazioni e individui ad accedere ai framework MITRE ATT&CK in modo programmatico. In pratica, puoi accedere a tutti gli attori, malware, mitigazioni, tattiche, tecniche e strumenti definiti dai framework Enterprise, Mobile, Pre-Attck e ICS tramite un'utility a riga di comando o integrandolo nel tuo codice.

Ci sono molte ragioni per cui vorresti accedere a questi dati in modo automatico (scriptato/codificato), ma alcuni esempi sono:

  • Generare report con dettagli aggiuntivi su una tecnica (o qualsiasi oggetto definito nel framework)
  • Una pipeline di build di regole di rilevamento con ulteriori dettagli MITRE ATT&CK per la categorizzazione
  • Cercare rapidamente dettagli specifici su una tecnica senza navigare in una pagina web

Ci sono anche altri vantaggi offerti da pyattck, come la possibilità di fornire dati contestuali aggiuntivi. Puoi trovare maggiori informazioni su questi dati qui, ma il succo è che pyattck utilizza diversi repository open-source per raccogliere dati contestuali aggiuntivi come i comandi usati per eseguire una tecnica, il paese e altri dettagli su un attore malintenzionato, altre varianti di malware simili a uno strumento/malware definito, ecc.

Questo contesto aggiuntivo è ciò che rende pyattck veramente potente e consente di costruire test e validazioni più robusti delle proprie regole di rilevamento, convalidare ipotesi di test, ecc. Ci sono innumerevoli modi in cui pyattck può essere utilizzato per aiutare i team blu, rossi e viola a difendere le organizzazioni (e sé stessi).

Funzionalità

Il pacchetto pyattck recupera tutte le tattiche, tecniche, attori, malware, strumenti e mitigazioni dai framework MITRE ATT&CK, nonché tutte le relazioni definite nel dataset MITRE ATT&CK (incluse le sotto-tecniche).

Inoltre, per le tecniche, gli attori e gli strumenti (se applicabile) sono ora disponibili dati raccolti da risorse di terze parti, accessibili tramite diverse proprietà. Per informazioni più dettagliate su queste funzionalità, consulta External Datasets.

Il pacchetto pyattck ti consente di:

  • Specificare un URL o un percorso locale per il JSON del framework MITRE ATT&CK Enterprise, il dataset generato e/o un file config.yml.
  • Accedere ai dati del framework MITRE PRE-ATT&CK
  • Accedere ai dati del framework MITRE Mobile ATT&CK
  • Accedere ai dati del framework MITRE ICS ATT&CK
  • Accedere alle sotto-tecniche come oggetti annidati o disattivarle e accedervi come tecniche normali
  • Accedere ai controlli di conformità (attualmente NIST 800-53 v5) correlati a una tecnica MITRE ATT&CK
  • pyattck ora utilizza modelli di dati strutturati. Maggiori informazioni su pyattck-data
  • Eseguire un sistema di menu interattivo a console per accedere ai dati di pyattck

Indice

  1. Installazione
  2. Esempio di utilizzo
  3. Configurazione
  4. Note

Installazione

Puoi installare pyattck su OS X, Linux o Windows. Puoi anche installarlo direttamente dal sorgente. Per installare, vedi i comandi sotto il sistema operativo rilevante.

macOS, Linux e Windows:

root@kitploit:~
pip install pyattck

Installazione dal sorgente

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

Esempio di utilizzo

Per usare pyattck devi istanziare un oggetto Attck. Sebbene tu possa interagire direttamente con ogni classe, l'uso previsto è tramite un oggetto Attck:

root@kitploit:~
from pyattck import Attck

attack = Attck()

Per impostazione predefinita, le sotto-tecniche sono accessibili sotto ogni oggetto tecnica. Puoi disattivare questo comportamento passando nested_techniques=False quando crei il tuo oggetto Attck.

Ad esempio, il comportamento predefinito assomiglia a questo:

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)

Puoi accedere alle seguenti proprietà principali sul tuo oggetto Attck:

  • enterprise
  • preattack
  • mobile
  • ics

Una volta specificato il framework MITRE ATT&CK, puoi accedere a proprietà aggiuntive.

Ecco gli oggetti accessibili sotto la proprietà Enterprise:

  • attori
  • controlli
  • malware
  • mitigazioni
  • tattiche
  • tecniche
  • strumenti

Per maggiori informazioni sui tipi di oggetti sotto la proprietà enterprise, vedi Enterprise.

Ecco gli oggetti accessibili sotto la proprietà PreAttck:

  • attori
  • tattiche
  • tecniche

Per maggiori informazioni sui tipi di oggetti sotto la proprietà preattck, vedi PreAttck.

Ecco gli oggetti accessibili sotto la proprietà Mobile:

  • attori
  • malware
  • mitigazioni
  • tattiche
  • tecniche
  • strumenti

Per maggiori informazioni sui tipi di oggetti sotto la proprietà mobile, vedi Mobile.

Ecco gli oggetti accessibili sotto la proprietà ICS:

  • controlli
  • malware
  • mitigazioni
  • tattiche
  • tecniche

Per maggiori informazioni sui tipi di oggetti sotto la proprietà ics, vedi ICS.

Utilizzo del menu interattivo

Per utilizzare il nuovo sistema di menu interattivo all'interno di pyattck, devi impostare interactive su True. In questo modo si avvierà il sistema di menu interattivo a console.

Usando uno script puoi avviarlo eseguendo:

root@kitploit:~
from pyattck import Attck

Attck(interactive=True)

Oppure puoi anche eseguire la modalità interattiva da riga di comando:

root@kitploit:~
pyattck --interactive

Guarda un esempio in gif qui sotto:

Configurazione

pyattck ti permette di configurare se memorizzare dati esterni e dove salvarli.

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
)

Per impostazione predefinita, pyattck ora recupera gli ultimi dati esterni dalle rispettive posizioni utilizzando richieste HTTP GET. pyattck attualmente recupera da:

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

Hai diverse opzioni quando istanzi l'oggetto Attck. A partire dalla versione 4.0.0 puoi specificare una delle seguenti opzioni:

  • use_config - Quando specifichi questo argomento come True, pyattck tenterà di recuperare la configurazione specificata nella posizione config_file_path. Se questo file è danneggiato o non può essere trovato, verranno recuperati i dati dalle posizioni *_attck_json specificate.
  • save_config - Quando specifichi questo argomento come True, pyattck salverà il file di configurazione nella posizione specificata da config_file_path. Inoltre, salverà tutti i file scaricati nella posizione data_path specificata. Se hai specificato un percorso locale anziché un URL di download per uno qualsiasi dei parametri *_attck_json, questa posizione verrà salvata nella configurazione e verrà utilizzata in futuro.
  • config_file_path - Il percorso per salvare un file di configurazione. Il valore predefinito è ~/pyattck/config.yml
  • data_path - Il percorso per salvare eventuali file di dati scaricati sul sistema locale. Il valore predefinito è ~/pyattck/data

Posizioni dei JSON

Inoltre, puoi specificare la posizione per ogni singolo file *_attck_json passando un URI o un percorso locale. Se hai passato un percorso locale, il file verrà semplicemente letto.

Se hai utilizzato i valori predefiniti o specificato una posizione URI alternativa per recuperare questi file JSON, puoi inoltre passare **kwargs che verranno inoltrati al pacchetto Python Requests durante l'esecuzione delle richieste HTTP.

Note

Sappiamo che vengono rilasciati molti progetti open-source diversi, anche quotidianamente, ma volevamo fornire un pacchetto Python semplice che permettesse all'utente di identificare le relazioni note tra tutte le verticali del framework MITRE ATT&CK.

Se non hai familiarità con il framework MITRE ATT&CK, ci sono alcuni componenti chiave da comprendere bene. Il primo sono le Tattiche e le Tecniche. Quando guardi il MITRE ATT&CK Framework, le Tattiche sono le colonne e rappresentano le diverse fasi di un attacco.

Il MITRE ATT&CK Framework NON è una mappa di copertura di sicurezza onnicomprensiva/di fatto - è piuttosto un FRAMEWORK e ulteriori percorsi dovrebbero essere considerati quando si valuta la propria postura di sicurezza.

Le Tecniche sono le righe del framework e sono categorizzate sotto specifiche Tattiche (colonne). Sono punti dati all'interno del framework che forniscono indicazioni per valutare le proprie lacune di sicurezza. Inoltre, (la maggior parte) delle Tecniche contengono indicazioni di mitigazione oltre a informazioni sulla loro relazione con strumenti, malware e persino attori/gruppi che hanno utilizzato questa tecnica durante attacchi registrati.

Ciò significa che se la tua organizzazione si concentra su TTP (Tattiche, Tecniche e Procedure) utilizzate da determinati attori/gruppi, allora il MITRE ATT&CK Framework è perfetto per te. Se la tua organizzazione non ha ancora raggiunto questa maturità di sicurezza, nessun problema! Il framework ATT&CK fornisce comunque ottime indicazioni in un layout semplice e diretto, ma dal punto di vista programmatico non è semplice, specialmente se si desidera misurare (o mappare) i propri controlli di sicurezza utilizzando il framework.

Sviluppo e test

Puoi aggiungere funzionalità o correggere bug, oppure eseguire il codice in un ambiente di sviluppo.

  1. Per configurare un ambiente di sviluppo e test, utilizza questo Dockerfile.

  2. Per usare il Dockerfile, spostati nella directory del repository ed esegui:

root@kitploit:~
docker build --force-rm -t pyattck .
  1. Quindi, esegui il container Docker:
root@kitploit:~
docker run pyattck

L'esecuzione richiama il file Python di test in bin/test.py.

  1. Modifica il file Python di test per ulteriori test e sviluppi.

Esecuzione dei test

I test all'interno di questo progetto dovrebbero coprire tutte le proprietà e i metodi disponibili. Man mano che il progetto cresce, i test diventeranno più robusti, ma per ora verifichiamo che esistano e restituiscano output.

Contribuire

Leggi CONTRIBUTING.md per i dettagli sul nostro codice di condotta e il processo per inviare richieste pull.

Versioni

Utilizziamo SemVer per il versionamento.

Changelog

Per i dettagli sulle funzionalità di una versione specifica di pyattck, vedi il CHANGELOG.md.

Autori

  • Josh Rickard - Lavoro iniziale - MSAdministrator

Vedi anche l'elenco dei contributori.

Licenza

Questo progetto è concesso in licenza con la Licenza MIT.

Ringraziamenti

Prima di tutto, vorrei ringraziare tutti coloro che contribuiscono ai progetti open-source, specialmente i manutentori e i creatori di questi progetti. Senza di loro, questa funzionalità non sarebbe possibile.

Questo set di dati è generato da molte fonti diverse. Man mano che continuiamo ad aggiungere altre fonti, le aggiungeremo qui. Ancora grazie a tutti questi progetti. In nessun ordine particolare, pyattck utilizza dati dai seguenti progetti:

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