Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
pyattck — Python-пакет для взаимодействия с фреймворком Mitre ATT&CK | Kitploit
Инструменты/GitHubGitHub/swimlane/pyattck
Фреймворки для пентестаСбор информацииУтилиты и фреймворкиРазведка угрозОбучение и ОбразованиеПодобранные РесурсыArchived
GitHubswimlane/pyattck

pyattck

Python-пакет для взаимодействия с фреймворком Mitre ATT&CK

Репозиторий
4809372 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

pyattck

Добро пожаловать в документацию pyattck

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

root@kitploit:~
Пакет Python для взаимодействия с фреймворками MITRE ATT&CK

Текущая версия: 7.1.1

pyattck — это легковесный фреймворк для работы с фреймворками MITRE ATT&CK. Этот пакет извлекает детали из корпоративного фреймворка MITRE, PRE-ATT&CK, Mobile и ICS.

Зачем?

pyattck помогает организациям и специалистам программно обращаться к фреймворкам MITRE ATT&CK. То есть вы можете получить доступ ко всем определённым злоумышленникам, вредоносным программам, средствам смягчения, тактикам, техникам и инструментам, определённым в корпоративных, мобильных, Pre-Attck и ICS фреймворках, с помощью утилиты командной строки или встроив их в свою базу кода.

Есть много причин, по которым вам может понадобиться получать эти данные автоматизированно (с помощью скриптов/кода), вот несколько примеров:

  • Генерация отчётов с дополнительными деталями о технике (или любом объекте, определённом в фреймворке)
  • Конвейер сборки правил обнаружения с дополнительными деталями MITRE ATT&CK для категоризации
  • Быстрый поиск конкретных деталей о технике без перехода по веб-страницам

pyattck также предоставляет другие преимущества, включая возможность добавлять дополнительную контекстную информацию. Подробнее об этих данных можно узнать здесь, но в основе лежит то, что pyattck использует несколько репозиториев с открытым исходным кодом для сбора дополнительного контекста, такого как команды, используемые для выполнения техники, страна и другие сведения о злоумышленнике, другие варианты вредоносного ПО, похожие на определённый инструмент/вредоносное ПО, и т.д.

Этот дополнительный контекст делает pyattck по-настоящему мощным и позволяет людям создавать более надёжные тесты и проверки своих правил обнаружения, подтверждать предположения о тестировании и т.д. На самом деле существует бесчисленное множество способов использования pyattck для помощи синим, красным и фиолетовым командам в защите организаций (и самих себя).

Возможности

Пакет pyattck извлекает все тактики, техники, злоумышленников, вредоносные программы, инструменты и средства смягчения из фреймворков MITRE ATT&CK, а также любые определённые взаимосвязи внутри набора данных MITRE ATT&CK (включая суб-техники).

Кроме того, для техник, злоумышленников и инструментов (если применимо) теперь доступны данные, собранные из сторонних ресурсов, через различные свойства. Более подробную информацию об этих функциях см. в Внешние наборы данных.

Пакет pyattck позволяет:

  • Указать URL или локальный путь к файлу JSON корпоративного фреймворка MITRE ATT&CK, сгенерированному набору данных и/или файлу config.yml.
  • Получать данные из фреймворка MITRE PRE-ATT&CK
  • Получать данные из мобильного фреймворка MITRE ATT&CK
  • Получать данные из фреймворка MITRE ICS ATT&CK
  • Получать доступ к суб-техникам как вложенным объектам или отключить это поведение и обращаться к ним как к обычным техникам
  • Получать доступ к элементам соответствия контролей (в настоящее время NIST 800-53 v5), связанным с техникой MITRE ATT&CK
  • pyattck теперь использует структурированные модели данных. Дополнительную информацию можно найти в pyattck-data
  • Запускать интерактивную консольную систему меню для доступа к данным pyattck

Содержание

  1. Установка
  2. Пример использования
  3. Конфигурация
  4. Примечание

Установка

Вы можете установить pyattck на OS X, Linux или Windows. Также возможна установка напрямую из исходного кода. Для установки используйте команды под соответствующей операционной системой ниже.

macOS, Linux и Windows:

root@kitploit:~
pip install pyattck

Установка из исходного кода

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

Пример использования

Чтобы использовать pyattck, вы должны создать экземпляр объекта Attck. Хотя вы можете напрямую взаимодействовать с каждым классом, предполагаемый способ использования — через объект Attck:

root@kitploit:~
from pyattck import Attck

attack = Attck()

По умолчанию sub-techniques доступны как часть каждого объекта техники. Вы можете отключить это поведение, передав nested_techniques=False при создании объекта Attck.

В качестве примера, поведение по умолчанию выглядит следующим образом:

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)

Вы можете получить доступ к следующим основным свойствам вашего объекта Attck:

  • enterprise
  • preattack
  • mobile
  • ics

После указания фреймворка MITRE ATT&CK вы можете получить доступ к дополнительным свойствам.

Вот доступные объекты в свойстве Enterprise:

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

Для получения дополнительной информации о типах объектов в свойстве enterprise см. Enterprise.

Вот доступные объекты в свойстве PreAttck:

  • actors
  • tactics
  • techniques

Для получения дополнительной информации о типах объектов в свойстве preattck см. PreAttck.

Вот доступные объекты в свойстве Mobile:

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

Для получения дополнительной информации о типах объектов в свойстве mobile см. Mobile.

Вот доступные объекты в свойстве ICS:

  • controls
  • malwares
  • mitigations
  • tactics
  • techniques

Для получения дополнительной информации о типах объектов в свойстве ics см. ICS.

Использование интерактивного меню

Чтобы использовать новую интерактивную систему меню в pyattck, необходимо установить interactive в True. Это запустит интерактивную консольную систему меню.

С помощью скрипта вы можете запустить его, выполнив:

root@kitploit:~
from pyattck import Attck

Attck(interactive=True)

Или вы также можете запустить интерактивный режим из командной строки:

root@kitploit:~
pyattck --interactive

Посмотрите пример гифки ниже:

Конфигурация

pyattck позволяет настроить, сохранять ли внешние данные и где они будут храниться.

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
)

По умолчанию 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. Если вы указали локальный путь вместо URL загрузки для любого из параметров *_attck_json, мы сохраним это место в нашей конфигурации и будем ссылаться на него в будущем.
  • config_file_path — Путь для хранения файла конфигурации. По умолчанию ~/pyattck/config.yml
  • data_path — Путь для хранения любых файлов данных, загруженных в локальную систему. По умолчанию ~/pyattck/data

Расположение JSON-файлов

Кроме того, вы можете указать местоположение для каждого отдельного файла *_attck_json, передав URI или локальный путь к файлу. Если вы передали локальный путь, мы просто прочитаем этот файл.

Если вы использовали значения по умолчанию или указали альтернативное URI-место для получения этих JSON-файлов, вы можете дополнительно передать **kwargs, которые будут переданы пакету Requests Python при выполнении любых HTTP-запросов.

Примечание

Мы понимаем, что существует множество различных проектов с открытым исходным кодом, выпускаемых чуть ли не ежедневно, но мы хотели предоставить простой пакет Python, который позволит пользователю определять известные взаимосвязи между всеми вертикалями фреймворка MITRE ATT&CK.

Если вы не знакомы с фреймворком MITRE ATT&CK, есть несколько ключевых компонентов, которые необходимо твёрдо усвоить. Первый — это тактики и техники. Если посмотреть на фреймворк MITRE ATT&CK, тактики — это столбцы, представляющие различные фазы атаки.

Фреймворк MITRE ATT&CK НЕ является всеобъемлющей/де-факто картой покрытия безопасности — это скорее ФРЕЙМВОРК, и при оценке вашего уровня безопасности следует учитывать и другие подходы.

Техники — это строки фреймворка, сгруппированные под определёнными тактиками (столбцами). Это точки данных внутри фреймворка, которые предоставляют рекомендации при оценке пробелов в безопасности. Кроме того, (большинство) техник содержат рекомендации по смягчению, а также информацию об их связи с инструментами, вредоносным ПО и даже злоумышленниками/группами, которые использовали эту технику во время зарегистрированных атак.

Это означает, что если ваша организация сосредоточена на TTP (Тактиках, Техниках и Процедурах), используемых определёнными злоумышленниками/группами, то фреймворк MITRE ATT&CK идеально вам подходит. Если ваша организация ещё не достигла такого уровня зрелости безопасности, не беспокойтесь! Фреймворк ATT&CK по-прежнему даёт очень хорошие рекомендации в простом и понятном виде, но программно это не так просто — особенно если вы хотите измерить (или сопоставить) свои средства контроля безопасности с помощью фреймворка.

Разработка и тестирование

Вы можете добавлять функции или исправлять ошибки, а также запускать код в среде разработки.

  1. Чтобы настроить среду разработки и тестирования, используйте этот Dockerfile.

  2. Чтобы использовать Dockerfile, перейдите в каталог этого репозитория и выполните:

root@kitploit:~
docker build --force-rm -t pyattck .
  1. Затем запустите Docker-контейнер:
root@kitploit:~
docker run pyattck

При запуске вызывается тестовый Python-файл в bin/test.py.

  1. Измените тестовый Python-файл для дополнительного тестирования и разработки.

Запуск тестов

Тесты в рамках этого проекта должны охватывать все доступные свойства и методы. По мере роста проекта тесты будут становиться более надёжными, но пока мы проверяем, что они существуют и возвращают результаты.

Участие в разработке

Пожалуйста, прочитайте CONTRIBUTING.md для получения информации о нашем кодексе поведения и процессе отправки запросов на включение изменений.

Версионирование

Мы используем SemVer для версионирования.

Журнал изменений

Для получения информации о функциях в конкретной версии pyattck см. CHANGELOG.md.

Авторы

  • Josh Rickard - Первоначальная работа - MSAdministrator

См. также список участников.

Лицензия

Этот проект лицензирован по лицензии MIT.

Благодарности

Прежде всего, я хотел бы поблагодарить всех, кто вносит вклад в проекты с открытым исходным кодом, особенно мейнтейнеров и создателей этих проектов. Без них эта возможность была бы невозможна.

Этот набор данных генерируется из множества различных источников. По мере того как мы продолжаем добавлять новые источники, мы будем добавлять их сюда. Ещё раз спасибо всем этим проектам. В произвольном порядке pyattck использует данные из следующих проектов:

  • Mitre ATT&CK APT3 Adversary Emulation Field Manual
  • Atomic Red Team (от Red Canary)
  • Atomic Threat Coverage
  • attck_empire (от dstepanic)
  • sentinel-attack (от BlueTeamLabs)
  • Litmus_test (от Kirtar22)
  • nsm-attack (от oxtf)
  • osquery-attck (от teoseller)
  • Mitre Stockpile
  • SysmonHunter (от baronpan)
  • ThreatHunting-Book (от 12306Bro)
  • threat_hunting_tables (от dwestgard)
  • APT Groups & Operations
  • C2Matrix (от @jorgeorchilles, @brysonbort, @adam_mashinchi)
  • Elemental
  • MalwareArchaeology - ATTACK
  • Attack-Technique-Dataset
root@kitploit:~
.. toctree::
   :titlesonly:

   configuration
   pyattck/attck
   Набор данных <https://github.com/swimlane/pyattck-data>
   Модели данных <https://github.com/swimlane/pyattck-data>
   enterprise/enterprise
   preattck/preattck
   mobile/mobileattck
   ics/icsattck
Скачать инструмент