Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
pyattck — Um pacote Python para interagir com o Mitre ATT&CK Framework | Kitploit
Ferramentas/GitHubGitHub/swimlane/pyattck
Frameworks de Testes de PenetraçãoColeta de InformaçõesUtilitários e FrameworksInteligência de AmeaçasAprendizado e EducaçãoRecursos CuradosArchived
GitHubswimlane/pyattck

pyattck

Um pacote Python para interagir com o Mitre ATT&CK Framework

Ver Repositório
48093há 2 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

pyattck

Bem-vindo à documentação do pyattck

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

root@kitploit:~
Um pacote Python para interagir com os Frameworks MITRE ATT&CK

Versão atual é 7.1.1

pyattck é um framework leve para os Frameworks MITRE ATT&CK. Este pacote extrai detalhes dos Frameworks Enterprise, PRE-ATT&CK, Mobile e ICS da MITRE.

Por quê?

pyattck ajuda organizações e indivíduos a acessar os Frameworks MITRE ATT&CK de forma programática. Ou seja, você pode acessar todos os atores, malwares, mitigações, táticas, técnicas e ferramentas definidos nos frameworks Enterprise, Mobile, Pre-Attck e ICS por meio de um utilitário de linha de comando ou incorporando em sua própria base de código.

Existem muitas razões para querer acessar esses dados de forma automatizada (script/código), mas alguns exemplos são:

  • Gerar relatórios com detalhes adicionais sobre uma técnica (ou qualquer objeto definido no framework)
  • Um pipeline de construção de regras de detecção com detalhes adicionais do MITRE ATT&CK para categorização
  • Pesquisar rapidamente por detalhes específicos sobre uma técnica sem navegar em uma página web

Existem outros benefícios que o pyattck oferece, incluindo a capacidade de fornecer dados contextuais adicionais. Você pode encontrar mais informações sobre esses dados aqui, mas o básico é que o pyattck utiliza múltiplos repositórios de código aberto para coletar dados contextuais adicionais, como comandos usados para executar uma técnica, país e outros detalhes sobre um ator malicioso, outras variantes de malware semelhantes a uma ferramenta/malware definido, etc.

Esse contexto adicional é o que torna o pyattck verdadeiramente poderoso e permite que as pessoas construam testes e validações mais robustos de suas regras de detecção, validem suposições de teste, etc. Existem inúmeras maneiras pelas quais o pyattck pode ser utilizado para ajudar equipes azuis, vermelhas e roxas a defender organizações (e a si mesmas).

Funcionalidades

O pacote pyattck recupera todas as Táticas, Técnicas, Atores, Malwares, Ferramentas e Mitigações dos Frameworks MITRE ATT&CK, bem como qualquer relacionamento definido dentro do conjunto de dados MITRE ATT&CK (incluindo sub-técnicas).

Além disso, as Técnicas, Atores e Ferramentas (quando aplicável) agora possuem dados coletados de fontes terceiras que são acessíveis por meio de diferentes propriedades. Para informações mais detalhadas sobre essas funcionalidades, veja Conjuntos de Dados Externos.

O pacote pyattck permite que você:

  • Especifique uma URL ou caminho de arquivo local para o JSON do Framework MITRE ATT&CK Enterprise, conjunto de dados gerado e/ou um arquivo config.yml.
  • Acesse dados do Framework MITRE PRE-ATT&CK
  • Acesse dados do Framework MITRE Mobile ATT&CK
  • Acesse dados do Framework MITRE ICS ATT&CK
  • Acesse sub-técnicas como objetos aninhados ou desative esse comportamento e acesse como técnica normal
  • Acesse controles de conformidade (atualmente NIST 800-53 v5) relacionados a uma técnica MITRE ATT&CK
  • pyattck agora utiliza modelos de dados estruturados. Mais informações podem ser encontradas em pyattck-data
  • Execute um sistema de menu interativo no console para acessar dados do pyattck

Índice

  1. Instalação
  2. Exemplo de uso
  3. Configuração
  4. Nota

Instalação

Você pode instalar o pyattck no OS X, Linux ou Windows. Também pode instalá-lo diretamente do código fonte. Para instalar, veja os comandos abaixo de acordo com o sistema operacional.

macOS, Linux e Windows:

root@kitploit:~
pip install pyattck

Instalando a partir do código fonte

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

Exemplo de uso

Para usar o pyattck você deve instanciar um objeto Attck. Embora você possa interagir diretamente com cada classe, o uso previsto é através de um objeto Attck:

root@kitploit:~
from pyattck import Attck

attack = Attck()

Por padrão, as sub-técnicas são acessíveis dentro de cada objeto de técnica. Você pode desativar esse comportamento passando nested_techniques=False ao criar seu objeto Attck.

Como exemplo, o comportamento padrão é o seguinte:

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)

Você pode acessar as seguintes propriedades principais no seu objeto Attck:

  • enterprise
  • preattack
  • mobile
  • ics

Assim que você especificar o Framework MITRE ATT&CK, poderá acessar propriedades adicionais.

Aqui estão os objetos acessíveis sob a propriedade Enterprise:

  • atores
  • controles
  • malwares
  • mitigações
  • táticas
  • técnicas
  • ferramentas

Para mais informações sobre os tipos de objetos sob a propriedade enterprise, veja Enterprise.

Aqui estão os objetos acessíveis sob a propriedade PreAttck:

  • atores
  • táticas
  • técnicas

Para mais informações sobre os tipos de objetos sob a propriedade preattck, veja PreAttck.

Aqui estão os objetos acessíveis sob a propriedade Mobile:

  • atores
  • malwares
  • mitigações
  • táticas
  • técnicas
  • ferramentas

Para mais informações sobre os tipos de objetos sob a propriedade mobile, veja Mobile.

Aqui estão os objetos acessíveis sob a propriedade ICS:

  • controles
  • malwares
  • mitigações
  • táticas
  • técnicas

Para mais informações sobre os tipos de objetos sob a propriedade ics, veja ICS.

Uso do menu interativo

Para utilizar o novo sistema de menu interativo dentro do pyattck, você deve definir interactive como True. Ao fazer isso, ele iniciará o sistema de menu interativo no console.

Usando um script, você pode iniciá-lo executando:

root@kitploit:~
from pyattck import Attck

Attck(interactive=True)

Ou você também pode executar o modo interativo na linha de comando:

root@kitploit:~
pyattck --interactive

Veja um exemplo em gif abaixo:

Configuração

pyattck permite que você configure se armazena dados externos e onde eles são armazenados.

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
)

Por padrão, o pyattck agora obtém os dados externos mais recentes de seus respectivos locais usando requisições HTTP GET. Atualmente, o pyattck obtém dados dos seguintes locais:

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

Você tem várias opções ao instanciar o objeto Attck. A partir da versão 4.0.0, você pode especificar qualquer uma das seguintes opções:

  • use_config - Quando você especifica este argumento como True, pyattck tentará recuperar a configuração especificada no local config_file_path. Se este arquivo estiver corrompido ou não for encontrado, usaremos o padrão de obter dados dos locais *_attck_json especificados.
  • save_config - Quando você especifica este argumento como True, pyattck salvará o arquivo de configuração no local especificado por config_file_path. Além disso, salvaremos todos os arquivos baixados no local data_path especificado. Se você especificou um caminho local em vez de uma URL de download para qualquer um dos parâmetros *_attck_json, salvaremos esse local na configuração e faremos referência a ele daqui em diante.
  • config_file_path - O caminho para armazenar um arquivo de configuração. O padrão é ~/pyattck/config.yml
  • data_path - O caminho para armazenar quaisquer arquivos de dados baixados para o sistema local. O padrão é ~/pyattck/data

Locais dos JSONs

Além disso, você pode especificar o local para cada arquivo *_attck_json individual passando uma URI ou um caminho de arquivo local. Se você passou um caminho de arquivo local, simplesmente leremos desse arquivo.

Se você usou os valores padrão ou especificou um local de URI alternativo para recuperar esses arquivos JSON, pode adicionalmente passar **kwargs que serão repassados ao pacote Requests do Python ao realizar requisições HTTP.

Nota

Entendemos que muitos projetos de código aberto estão sendo lançados, até mesmo diariamente, mas queríamos fornecer um pacote Python direto que permitisse ao usuário identificar relacionamentos conhecidos entre todas as verticais do Framework MITRE ATT&CK.

Se você não está familiarizado com o Framework MITRE ATT&CK, existem alguns componentes-chave para garantir que você tenha uma compreensão sólida. O primeiro são Táticas e Técnicas. Ao olhar para o Framework MITRE ATT&CK, as Táticas são as colunas e representam as diferentes fases de um ataque.

O Framework MITRE ATT&CK NÃO é um mapa de cobertura de segurança abrangente/de facto - é antes um FRAMEWORK e caminhos adicionais também devem ser considerados ao avaliar sua postura de segurança.

As Técnicas são as linhas do framework e são categorizadas sob Táticas (colunas) específicas. São pontos de dados dentro do framework que fornecem orientação ao avaliar suas lacunas de segurança. Além disso, a maioria das Técnicas contém orientações de mitigação, além de informações sobre sua relação com ferramentas, malwares e até atores/grupos que usaram essa técnica durante ataques registrados.

Isso significa que, se sua organização está focada em TTPs (Táticas, Técnicas e Procedimentos) usados por certos atores/grupos, então o Framework MITRE ATT&CK é perfeito para você. Se você não está nesse nível de maturidade de segurança dentro de sua organização, sem problemas! O Framework ATT&CK ainda oferece uma orientação muito boa em um layout simples e direto, mas programaticamente não é tão simples—especialmente se você deseja medir (ou mapear) seus controles de segurança usando o framework.

Desenvolvimento e testes

Você pode adicionar funcionalidades ou corrigir bugs, ou executar o código em um ambiente de desenvolvimento.

  1. Para configurar um ambiente de desenvolvimento e teste, use este Dockerfile.

  2. Para usar o Dockerfile, execute, cd para o diretório deste repositório e execute:

root@kitploit:~
docker build --force-rm -t pyattck .
  1. Em seguida, execute o container docker:
root@kitploit:~
docker run pyattck

Executar isso chama o arquivo python de teste em bin/test.py.

  1. Modifique o arquivo python de teste para testes e desenvolvimento adicionais.

Executando os testes

Os testes dentro deste projeto devem cobrir todas as propriedades e métodos disponíveis. Conforme este projeto cresce, os testes se tornarão mais robustos, mas por enquanto estamos testando se eles existem e retornam saídas.

Contribuindo

Por favor, leia CONTRIBUTING.md para detalhes sobre nosso código de conduta e o processo para enviar pull requests para nós.

Versionamento

Usamos SemVer para versionamento.

Log de alterações

Para detalhes sobre funcionalidades de uma versão específica do pyattck, veja o CHANGELOG.md.

Autores

  • Josh Rickard - Trabalho inicial - MSAdministrator

Veja também a lista de contribuidores.

Licença

Este projeto está licenciado sob a Licença MIT.

Agradecimentos

Primeiramente, gostaria de agradecer a todos que contribuem para projetos de código aberto, especialmente os mantenedores e criadores desses projetos. Sem eles, essa capacidade não seria possível.

Este conjunto de dados é gerado a partir de muitas fontes diferentes. À medida que continuamos a adicionar mais fontes, continuaremos a adicioná-las aqui. Novamente, obrigado a todos esses projetos. Em nenhuma ordem particular, pyattck utiliza dados dos seguintes projetos:

  • 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 (por @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
Baixar ferramenta