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

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

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

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

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

Категории

Все категории
Loading categories
PXEThief — PXEThief — это набор инструментов, который может извлекать пароли из функциональности развертывания операционной системы в Microsoft Endpoint Configuration Manager | Kitploit
Инструменты/GitHubGitHub/mwr-cybersec/pxethief
Повышение привилегийРазведкаАтаки на ПаролиЭксплуатацияСбор информацииПост-эксплуатацияТестирование на ПроникновениеRed Teaming
GitHubmwr-cybersec/pxethief

PXEThief

PXEThief — это набор инструментов, который может извлекать пароли из функциональности развертывания операционной системы в Microsoft Endpoint Configuration Manager

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

Популярное

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

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

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

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

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

PXEThief

PXEThief — это набор инструментов, реализующий атаки, обсуждавшиеся на выступлении DEF CON 30 Извлечение паролей из Configuration Manager (https://forum.defcon.org/node/241925) на функциональность развёртывания операционных систем в Microsoft Endpoint Configuration Manager (или ConfigMgr, по‑прежнему часто называемом SCCM). Он позволяет собирать учётные данные настроенных учётных записей сетевого доступа (https://docs.microsoft.com/en-us/mem/configmgr/core/plan-design/hierarchy/accounts#network-access-account) и любые учётные записи последовательностей задач или учётные данные, хранящиеся в переменных коллекций ConfigMgr, настроенных для коллекции «Все неизвестные компьютеры». Эти учётные записи Active Directory, как правило, имеют избыточные права и позволяют повысить привилегии до административного доступа где‑то в домене, по крайней мере, по моему личному опыту.

Вероятно, самой серьёзной атакой, которую можно выполнить с помощью этого инструмента, является атака, когда развёртывание через PXE поддерживается для «Всех неизвестных компьютеров» на точке распространения без пароля или со слабым паролем. Избыточное выделение прав учётным записям ConfigMgr, доступным через OSD, о котором упоминалось выше, может затем позволить выполнить полную цепочку атак на Active Directory, имея лишь сетевой доступ к целевой среде.

Инструкции по использованию

root@kitploit:~
python pxethief.py -h 
pxethief.py 1 - Automatically identify and download encrypted media file using DHCP PXE boot request. Additionally, attempt exploitation of blank media password when auto_exploit_blank_password is set to 1 in 'settings.ini'
pxethief.py 2 <IP Address of DP Server> - Coerce PXE Boot against a specific MECM Distribution Point server designated by IP address
pxethief.py 3 <variables-file-name> <Password-guess> - Attempt to decrypt a saved media variables file (obtained from PXE, bootable or prestaged media) and retrieve sensitive data from MECM DP
pxethief.py 4 <variables-file-name> <policy-file-path> <password> - Attempt to decrypt a saved media variables file and Policy XML file retrieved from a stand-alone TS media
pxethief.py 5 <variables-file-name> - Print the hash corresponding to a specified media variables file for cracking in Hashcat
pxethief.py 6 <identityguid> <identitycert-file-name> - Retrieve task sequences using the values obtained from registry keys on a DP
pxethief.py 7 <Reserved1-value> - Decrypt stored PXE password from SCCM DP registry key (reg query HKLM\software\microsoft\sms\dp /v Reserved1)
pxethief.py 8 - Write new default 'settings.ini' file in PXEThief directory
pxethief.py 10 - Print Scapy interface table to identify interface indexes for use in 'settings.ini'
pxethief.py -h - Print PXEThief help text

pxethief.py 5 <variables-file-name> следует использовать для генерации «хеша» файла переменных носителя, который можно применять для атак по подбору пароля с помощью модуля Hashcat, опубликованного по адресу https://github.com/MWR-CyberSec/configmgr-cryptderivekey-hashcat-module.

Параметры конфигурации

Файл, находящийся в основной папке PXEThief, используется для задания более статических параметров конфигурации. Они перечислены ниже:

root@kitploit:~
[SCAPY SETTINGS]
automatic_interface_selection_mode = 1
manual_interface_selection_by_id = 

[HTTP CONNECTION SETTINGS]
use_proxy = 0
use_tls = 0

[GENERAL SETTINGS]
sccm_base_url = 
auto_exploit_blank_password = 1

Настройки Scapy

  • automatic_interface_selection_mode пытается автоматически определить наилучший интерфейс для Scapy для удобства. Для этого используются два основных метода. Если установлено значение 1, он будет пытаться использовать интерфейс, способный достичь шлюза по умолчанию машины, в качестве выходного интерфейса. Если значение равно 2, он будет искать первый интерфейс, у которого есть IP-адрес, не являющийся адресом автоматической настройки или localhost. В некоторых сценариях это не сможет выбрать подходящий интерфейс, поэтому вы можете принудительно задать конкретный интерфейс с помощью manual_interface_selection_by_id.
  • manual_interface_selection_by_id позволяет указать целочисленный индекс интерфейса, который Scapy должен использовать. Идентификатор для использования в этом файле следует получить, запустив pxethief.py 10.

Общие настройки

  • sccm_base_url полезен для переопределения точки управления, с которой будет взаимодействовать инструмент. Это пригодится, если DNS не разрешается (поэтому значение, прочитанное из файла переменных носителя, не может быть использовано) или если вы обнаружили несколько точек управления и хотите направлять трафик на конкретную. Это значение следует указывать в виде базового URL, например http://mp.configmgr.com, а не mp.configmgr.com или http://mp.configmgr.com/stuff.
  • auto_exploit_blank_password изменяет поведение pxethief 1, чтобы автоматически пытаться эксплуатировать точку распространения PXE без пароля. Установка значения 1 включает автоматическую эксплуатацию, а 0 выводит строку tftp-клиента, которую следует использовать для загрузки файла переменных носителя. Обратите внимание, что почти всегда вам нужно установить это значение в 1, поскольку PXE без пароля использует двоичный ключ, отправляемый в ответе DHCP, который вы получаете при запросе PXE-загрузки у точки распространения.

Настройки HTTP-соединений

Не реализовано в этом выпуске

Инструкции по настройке

  1. Создайте новую виртуальную машину Windows
  2. Установите Python (с https://www.python.org/ или из магазина — оба варианта должны работать)
  3. Установите все зависимости через pip (pip install -r requirements.txt)
  4. Установите Npcap (https://npcap.com/#download) (или Wireshark, который поставляется с ним) для Scapy
  5. Подключите виртуальную машину к сети, где работает точка распространения ConfigMgr, настроенная для PXE/OSD
  6. Если вы используете pxethief.py 1 или pxethief.py 2 для обнаружения и создания файла переменных носителя, убедитесь, что используемый инструментом интерфейс установлен правильно; если это не так, задайте его вручную в 'settings.ini', определив правильный идентификатор индекса с помощью pxethief.py 10

Ограничения

  • Поддержка прокси для HTTP-запросов — сейчас настраивается только в коде. Поддержку прокси можно включить в строке 35 файла pxethief.py, а адрес прокси задать в строке 693. Я планирую перенести эту функцию в настройки файла 'settings.ini' в следующем обновлении кода.
  • Поддержка HTTPS и взаимного TLS — пока не реализована. Однако можно использовать перехватывающий прокси для этой цели, что, по моему опыту, работает хорошо; для этого необходимо настроить прокси, как указано выше.
  • Поддержка Linux — PXEThief в настоящее время использует pywin32 для использования некоторых встроенных криптографических функций Windows. Это недоступно в Linux, поскольку криптографические API Windows недоступны в Linux :P Однако код Scapy в pxethief.py полностью работает в Linux, но вам потребуется удалить (как минимум) включение win32crypt, чтобы он работал под Linux.

Примечание о Proof of Concept

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

Связанные работы

Выявление и извлечение учётных данных из последовательностей задач SCCM/MECM — в этой статье я объясняю весь процесс того, как политики ConfigMgr находятся, загружаются и расшифровываются после получения действительного сертификата OSD. Также хочу выделить первые две ссылки в этой статье, поскольку они демонстрируют очень интересные текущие исследования SCCM в области безопасности.

Слайды DEF CON 30 — ссылка на слайды выступления

Авторство

Copyright (C) 2022 Christopher Panayi, MWR CyberSec

Скачать инструмент