Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
pyattck — 一个用于与 Mitre ATT&CK 框架交互的 Python 包 | Kitploit
工具/GitHubGitHub/swimlane/pyattck
渗透测试框架信息收集实用工具与框架威胁情报学习与教育精选资源Archived
GitHubswimlane/pyattck

pyattck

一个用于与 Mitre ATT&CK 框架交互的 Python 包

查看仓库
48093212年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

pyattck

欢迎阅读 pyattck 的文档

    .______   ____    ____  ___   .___________.___________.  ______  __  ___
    |   _  \  \   \  /   / /   \  |           |           | /      ||  |/  /
    |  |_)  |  \   \/   / /  ^  \ `---|  |----`---|  |----`|  ,----'|  '  /
    |   ___/    \_    _/ /  /_\  \    |  |        |  |     |  |     |    <
    |  |          |  |  /  _____  \   |  |        |  |     |  `----.|  .  \
    | _|          |__| /__/     \__\  |__|        |__|      \______||__|\__\

一个用于与 MITRE ATT&CK 框架交互的 Python 包

当前版本为 7.1.1

pyattck 是一个轻量级的 MITRE ATT&CK 框架。该包从 MITRE 企业、PRE-ATT&CK、移动和 ICS 框架中提取详细信息。

为什么?

pyattck 帮助组织和个人以编程方式访问 MITRE ATT&CK 框架。也就是说,你可以通过命令行工具或嵌入到自己的代码库中,访问企业、移动、Pre-Attck 和 ICS 框架中定义的所有威胁行为者、恶意软件、缓解措施、战术、技术和工具。

有很多理由需要在自动化(脚本/代码)方式下访问这些数据,例如:

  • 生成包含技术(或框架中定义的任何对象)额外详细信息的报告
  • 构建带有 MITRE ATT&CK 详细信息的检测规则流水线,用于分类
  • 快速搜索特定技术的详细信息,而无需浏览网页

pyattck 还提供其他好处,包括提供额外上下文数据的能力。你可以在此处找到关于这些数据的更多信息,但基本要点是:pyattck 利用多个开源仓库来收集额外的上下文数据,例如用于执行技术的命令、威胁行为者的国家及其他详细信息、与已定义工具/恶意软件相似的恶意软件变体等。

这种额外的上下文才是 pyattck 真正强大的地方,它使人们能够构建更健壮的检测规则测试和验证、验证测试假设等。确实,有无穷无尽的方式可以利用 pyattck 帮助蓝队、红队和紫队保护组织(以及他们自身)。

特性

pyattck 包从 MITRE ATT&CK 框架中检索所有战术、技术、威胁行为者、恶意软件、工具和缓解措施,以及 MITRE ATT&CK 数据集中定义的任何关系(包括子技术)。

此外,技术、威胁行为者和工具(如适用)现在拥有从第三方资源收集的数据,这些数据可通过不同属性访问。有关这些特性的更详细信息,请参见外部数据集。

pyattck 包允许你:

  • 为 MITRE ATT&CK 企业框架 json、生成的数据集和/或 config.yml 文件指定 URL 或本地文件路径。
  • 访问 MITRE PRE-ATT&CK 框架的数据
  • 访问 MITRE 移动 ATT&CK 框架的数据
  • 访问 MITRE ICS ATT&CK 框架的数据
  • 以嵌套对象形式访问子技术,或者你可以关闭该功能,作为普通技术访问
  • 访问与 MITRE ATT&CK 技术相关的合规控制措施(目前为 NIST 800-53 v5)
  • pyattck 现在使用结构化数据模型。更多信息请参见 pyattck-data
  • 运行交互式控制台菜单系统以访问 pyattck 数据

目录

  1. 安装
  2. 使用示例
  3. 配置
  4. 备注

安装

你可以在 OS X、Linux 或 Windows 上安装 pyattck。你也可以从源代码直接安装。请根据你的操作系统查看下面的安装命令。

macOS、Linux 和 Windows:

pip install pyattck

从源代码安装

git clone https://github.com/swimlane/pyattck.git
cd pyattck
python setup.py install

使用示例

要使用 pyattck,你必须实例化一个 Attck 对象。虽然你可以直接与每个类交互,但预期的方式是通过 Attck 对象:

from pyattck import Attck

attack = Attck()

默认情况下,子技术 在每个技术对象下可访问。你可以通过在创建 Attck 对象时传递 nested_techniques=False 来关闭此行为。

例如,默认行为如下所示:

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)

你可以在 Attck 对象上访问以下 主要 属性:

  • enterprise
  • preattack
  • mobile
  • ics

一旦你指定了 MITRE ATT&CK 框架,就可以访问其他属性。

以下是 企业 属性下可访问的对象:

  • 威胁行为者
  • 控制措施
  • 恶意软件
  • 缓解措施
  • 战术
  • 技术
  • 工具

有关 enterprise 属性下对象类型的更多信息,请参见企业。

以下是 PreAttck 属性下可访问的对象:

  • 威胁行为者
  • 战术
  • 技术

有关 preattck 属性下对象类型的更多信息,请参见PreAttck。

以下是 移动 属性下可访问的对象:

  • 威胁行为者
  • 恶意软件
  • 缓解措施
  • 战术
  • 技术
  • 工具

有关 mobile 属性下对象类型的更多信息,请参见移动。

以下是 ICS 属性下可访问的对象:

  • 控制措施
  • 恶意软件
  • 缓解措施
  • 战术
  • 技术

有关 ics 属性下对象类型的更多信息,请参见ICS。

交互式菜单使用

要使用 pyattck 中的新交互式菜单系统,你必须将 interactive 设置为 True。这样做将启动交互式控制台菜单系统。

使用脚本,你可以通过运行以下命令来启动它:

from pyattck import Attck

Attck(interactive=True)

或者你也可以在命令行上运行交互模式:

pyattck --interactive

下面的 GIF 示例:

配置

pyattck 允许你配置是否存储外部数据以及存储位置。

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
)

默认情况下,pyattck(现在)会从其各自的位置通过 HTTP GET 请求拉取最新的外部数据。pyattck 当前从以下位置拉取数据:

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

实例化 Attck 对象时,你有几个选项。从 4.0.0 开始,你可以指定以下任何选项:

  • use_config - 当指定此参数为 True 时,pyattck 将尝试检索 config_file_path 位置指定的配置。如果此文件损坏或无法找到,我们将默认从指定的 *_attck_json 位置检索数据。
  • save_config - 当指定此参数为 True 时,pyattck 会将配置文件保存到 config_file_path 设置的指定位置。此外,我们会将所有下载的文件保存到指定的 data_path 位置。如果你为任何 *_attck_json 参数指定了本地路径位置而不是下载 URL,我们将把此位置保存在配置中,并在以后引用此位置。
  • config_file_path - 存储配置文件的路径。默认为 ~/pyattck/config.yml
  • data_path - 存储下载到本地系统的任何数据文件的路径。默认为 ~/pyattck/data

JSON 位置

此外,你可以通过传入 URI 或本地文件路径来指定每个单独的 *_attck_json 文件的位置。如果你传入了本地文件路径,我们将直接读取该文件。

下载工具