Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
pyattck — Un paquete de Python para interactuar con el marco Mitre ATT&CK | Kitploit
Herramientas/GitHubGitHub/swimlane/pyattck
Frameworks de Pruebas de PenetraciónRecopilación de InformaciónUtilidades y FrameworksInteligencia de AmenazasAprendizaje y EducaciónRecursos CuradosArchived
GitHubswimlane/pyattck

pyattck

Un paquete de Python para interactuar con el marco Mitre ATT&CK

Ver Repositorio
48093hace 2 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

pyattck

Bienvenido a la documentación de pyattck

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

root@kitploit:~
Un paquete de Python para interactuar con los marcos MITRE ATT&CK

La versión actual es 7.1.1

pyattck es un framework ligero para los marcos MITRE ATT&CK. Este paquete extrae detalles de los marcos Enterprise, PRE-ATT&CK, Mobile e ICS de MITRE.

¿Por qué?

pyattck ayuda a organizaciones e individuos a acceder a los marcos MITRE ATT&CK de forma programática. Es decir, puedes acceder a todos los actores, malware, mitigaciones, tácticas, técnicas y herramientas definidos por los marcos Enterprise, Mobile, Pre-Attck e ICS mediante una utilidad de línea de comandos o integrándolo en tu propio código.

Hay muchas razones por las que querrías acceder a estos datos de forma automatizada (scripteada/codificada), pero algunos ejemplos son:

  • Generar informes con detalles adicionales sobre una técnica (o cualquier objeto definido en el marco)
  • Una canalización de construcción de reglas de detección con detalles adicionales de MITRE ATT&CK para categorización
  • Buscar rápidamente detalles específicos sobre una técnica sin navegar por una página web

pyattck también ofrece otros beneficios, como la capacidad de proporcionar datos contextuales adicionales. Puedes encontrar más información sobre estos datos aquí, pero lo básico es que pyattck utiliza múltiples repositorios de código abierto para recopilar datos contextuales adicionales, como comandos utilizados para ejecutar una técnica, país y otros detalles sobre un actor malicioso, otras variantes de malware similares a una herramienta/malware definido, etc.

Este contexto adicional es lo que hace que pyattck sea realmente potente y permite a las personas construir pruebas y validaciones más robustas de sus reglas de detección, validar suposiciones de prueba, etc. Realmente hay innumerables formas en que pyattck podría ser utilizado para ayudar a los equipos azul, rojo y púrpura a defender organizaciones (y a sí mismos).

Características

El paquete pyattck recupera todas las Tácticas, Técnicas, Actores, Malware, Herramientas y Mitigaciones de los marcos MITRE ATT&CK, así como cualquier relación definida dentro del conjunto de datos de MITRE ATT&CK (incluyendo sub-técnicas).

Además, las Técnicas, Actores y Herramientas (si corresponde) ahora tienen datos recopilados de recursos de terceros que son accesibles a través de diferentes propiedades. Para obtener información más detallada sobre estas características, consulta External Datasets.

El paquete pyattck te permite:

  • Especificar una URL o ruta de archivo local para el JSON del marco Enterprise MITRE ATT&CK, el conjunto de datos generado y/o un archivo config.yml.
  • Acceder a datos del marco MITRE PRE-ATT&CK
  • Acceder a datos del marco MITRE Mobile ATT&CK
  • Acceder a datos del marco MITRE ICS ATT&CK
  • Acceder a sub-técnicas como objetos anidados o desactivar esta opción y accederlas como técnicas normales
  • Acceder a controles de cumplimiento (actualmente NIST 800-53 v5) relacionados con una técnica MITRE ATT&CK
  • pyattck ahora utiliza modelos de datos estructurados. Más información en pyattck-data
  • Ejecutar un sistema de menú interactivo en consola para acceder a los datos de pyattck

Tabla de contenidos

  1. Instalación
  2. Ejemplo de uso
  3. Configuración
  4. Nota

Instalación

Puedes instalar pyattck en OS X, Linux o Windows. También puedes instalarlo directamente desde el código fuente. Para instalarlo, consulta los comandos bajo el sistema operativo correspondiente a continuación.

macOS, Linux y Windows:

root@kitploit:~
pip install pyattck

Instalación desde el código fuente

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

Ejemplo de uso

Para usar pyattck debes crear una instancia de un objeto Attck. Aunque puedes interactuar directamente con cada clase, el uso previsto es a través de un objeto Attck:

root@kitploit:~
from pyattck import Attck

attack = Attck()

Por defecto, las sub-técnicas son accesibles a través de cada objeto de técnica. Puedes desactivar este comportamiento pasando nested_techniques=False al crear tu objeto Attck.

Por ejemplo, el comportamiento predeterminado es el siguiente:

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)

Puedes acceder a las siguientes propiedades principales en tu objeto Attck:

  • enterprise
  • preattack
  • mobile
  • ics

Una vez que especifiques el marco MITRE ATT&CK, puedes acceder a propiedades adicionales.

Estos son los objetos accesibles bajo la propiedad Enterprise:

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

Para más información sobre los tipos de objetos bajo la propiedad enterprise, consulta Enterprise.

Estos son los objetos accesibles bajo la propiedad PreAttck:

  • actors
  • tactics
  • techniques

Para más información sobre los tipos de objetos bajo la propiedad preattck, consulta PreAttck.

Estos son los objetos accesibles bajo la propiedad Mobile:

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

Para más información sobre los tipos de objetos bajo la propiedad mobile, consulta Mobile.

Estos son los objetos accesibles bajo la propiedad ICS:

  • controls
  • malwares
  • mitigations
  • tactics
  • techniques

Para más información sobre los tipos de objetos bajo la propiedad ics, consulta ICS.

Uso del menú interactivo

Para utilizar el nuevo sistema de menú interactivo dentro de pyattck, debes establecer interactive en True. Al hacerlo, se iniciará el sistema de menú interactivo en consola.

Mediante un script puedes iniciarlo ejecutando:

root@kitploit:~
from pyattck import Attck

Attck(interactive=True)

O también puedes ejecutar el modo interactivo en la línea de comandos:

root@kitploit:~
pyattck --interactive

Mira un ejemplo en GIF a continuación:

Configuración

pyattck te permite configurar si almacenas datos externos y dónde se almacenan.

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 defecto, pyattck (ahora) obtiene los últimos datos externos de sus respectivas ubicaciones mediante solicitudes HTTP GET. pyattck actualmente obtiene datos de las siguientes ubicaciones:

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

Tienes varias opciones al crear una instancia del objeto Attck. A partir de 4.0.0 puedes especificar cualquiera de las siguientes opciones:

  • use_config - Cuando especificas este argumento como True, pyattck intentará recuperar la configuración especificada en la ubicación config_file_path. Si este archivo está corrupto o no se encuentra, se usará la configuración predeterminada para recuperar datos de las ubicaciones especificadas en *_attck_json.
  • save_config - Cuando especificas este argumento como True, pyattck guardará el archivo de configuración en la ubicación especificada por config_file_path. Además, guardará todos los archivos descargados en la ubicación data_path especificada. Si has especificado una ruta de archivo local en lugar de una URL de descarga para alguno de los parámetros *_attck_json, guardaremos esta ubicación en nuestra configuración y la referenciaremos en adelante.
  • config_file_path - La ruta para almacenar el archivo de configuración. El valor predeterminado es ~/pyattck/config.yml
  • data_path - La ruta para almacenar cualquier archivo de datos descargado al sistema local. El valor predeterminado es ~/pyattck/data

Ubicaciones de los JSON

Además, puedes especificar la ubicación de cada archivo *_attck_json individual pasando una URI o una ruta de archivo local. Si has pasado una ruta de archivo local, simplemente leeremos de ese archivo.

Si has utilizado los valores predeterminados o has especificado una ubicación URI alternativa para recuperar estos archivos JSON, puedes además pasar **kwargs que se transmitirán al paquete Requests de Python al realizar cualquier solicitud HTTP.

Nota

Entendemos que se publican muchos proyectos de código abierto diferentes, incluso a diario, pero queríamos proporcionar un paquete de Python directo que permita al usuario identificar relaciones conocidas entre todos los verticales del marco MITRE ATT&CK.

Si no estás familiarizado con el marco MITRE ATT&CK, hay algunos componentes clave que debes comprender bien. El primero son las Tácticas y Técnicas. Al observar el marco MITRE ATT&CK, las Tácticas son las columnas y representan las diferentes fases de un ataque.

El marco MITRE ATT&CK NO es un mapa de cobertura de seguridad integral/de facto; es más bien un MARCO y también se deben considerar vías adicionales al evaluar tu postura de seguridad.

Las Técnicas son las filas del marco y se categorizan bajo Tácticas específicas (columnas). Son puntos de datos dentro del marco que proporcionan orientación al evaluar tus brechas de seguridad. Además, (la mayoría de) las Técnicas contienen orientación de mitigación, además de información sobre su relación con herramientas, malware e incluso actores/grupos que han utilizado esta técnica durante ataques registrados.

Esto significa que si tu organización se centra en TTP (Tácticas, Técnicas y Procedimientos) utilizados por ciertos actores/grupos, entonces el marco MITRE ATT&CK es perfecto para ti. Si no has alcanzado este nivel de madurez de seguridad en tu organización, ¡no te preocupes! El marco ATT&CK aún proporciona una orientación realmente buena en un diseño simple y directo, pero programáticamente no es directo, especialmente si deseas medir (o mapear) tus controles de seguridad usando el marco.

Desarrollo y pruebas

Puedes añadir funciones o errores, o ejecutar el código en un entorno de desarrollo.

  1. Para configurar un entorno de desarrollo y pruebas, utiliza este Dockerfile.

  2. Para usar el Dockerfile, ejecuta cd a este directorio del repositorio y ejecuta:

root@kitploit:~
docker build --force-rm -t pyattck .
  1. A continuación, ejecuta el contenedor Docker:
root@kitploit:~
docker run pyattck

Ejecutar esto llama al archivo de prueba de Python en bin/test.py.

  1. Modifica el archivo de prueba de Python para realizar pruebas y desarrollo adicionales.

Ejecutando las pruebas

Las pruebas dentro de este proyecto deben cubrir todas las propiedades y métodos disponibles. A medida que este proyecto crezca, las pruebas se volverán más robustas, pero por ahora estamos probando que existan y devuelvan resultados.

Contribuir

Por favor, lee CONTRIBUTING.md para obtener detalles sobre nuestro código de conducta y el proceso para enviar solicitudes de extracción (pull requests).

Versionado

Usamos SemVer para el versionado.

Registro de cambios

Para obtener detalles sobre las características de una versión específica de pyattck, consulta CHANGELOG.md.

Autores

  • Josh Rickard - Trabajo inicial - MSAdministrator

Consulta también la lista de contribuidores.

Licencia

Este proyecto está licenciado bajo la Licencia MIT.

Agradecimientos

En primer lugar, me gustaría agradecer a todos los que contribuyen a proyectos de código abierto, especialmente a los mantenedores y creadores de estos proyectos. Sin ellos, esta capacidad no sería posible.

Este conjunto de datos se genera a partir de muchas fuentes diferentes. A medida que continuemos agregando más fuentes, las agregaremos aquí. Nuevamente, gracias a todos estos proyectos. Sin un orden particular, pyattck utiliza datos de los siguientes proyectos:

  • 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
Descargar herramienta