Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
PXEThief — PXEThief est un ensemble d'outils permettant d'extraire des mots de passe de la fonctionnalité de déploiement de système d'exploitation dans Microsoft Endpoint Configuration Manager. | Kitploit
Outils/GitHubGitHub/mwr-cybersec/pxethief
Escalade de PrivilègesReconnaissanceAttaques de Mots de PasseExploitationCollecte d'InformationsPost-ExploitationTests d'IntrusionRed Teaming
GitHubmwr-cybersec/pxethief

PXEThief

PXEThief est un ensemble d'outils permettant d'extraire des mots de passe de la fonctionnalité de déploiement de système d'exploitation dans Microsoft Endpoint Configuration Manager.

Voir le dépôt
43471il y a 2 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

PXEThief

PXEThief est un ensemble d'outils qui implémente les axes d'attaque présentés lors du talk DEF CON 30 Pulling Passwords out of Configuration Manager (https://forum.defcon.org/node/241925) contre la fonctionnalité de déploiement du système d'exploitation (OSD) dans Microsoft Endpoint Configuration Manager (ou ConfigMgr, encore couramment appelé SCCM). Il permet la collecte d'identifiants depuis les comptes d'accès réseau configurés (https://docs.microsoft.com/fr-fr/mem/configmgr/core/plan-design/hierarchy/accounts#network-access-account) et depuis tout compte de séquence de tâches ou identifiants stockés dans les variables de collection ConfigMgr qui ont été configurées pour la collection « Tous les ordinateurs inconnus ». Ces comptes Active Directory sont souvent sur-privilégiés et permettent une élévation de privilèges menant à un accès administratif quelque part dans le domaine, du moins d'après mon expérience personnelle.

Probablement, l'attaque la plus sérieuse pouvant être exécutée avec ces outils implique le déploiement initié par PXE activé pour « Tous les ordinateurs inconnus » sur un point de distribution sans mot de passe, ou avec un mot de passe faible. La sur-privilégiation des comptes ConfigMgr exposés à l'OSD mentionnée plus haut permet ensuite d'exécuter une chaîne d'attaque complète Active Directory avec seulement un accès réseau à l'environnement cible.

Instructions d'utilisation

root@kitploit:~
python pxethief.py -h 
pxethief.py 1 - Identifier et télécharger automatiquement le fichier média chiffré en utilisant une requête de démarrage PXE DHCP. Tente également d'exploiter un mot de passe média vide lorsque auto_exploit_blank_password est défini à 1 dans 'settings.ini'
pxethief.py 2 <Adresse IP du serveur DP> - Forcer un démarrage PXE contre un point de distribution MECM spécifique désigné par son adresse IP
pxethief.py 3 <nom-du-fichier-variables> <mot-de-passe-supposé> - Tenter de déchiffrer un fichier de variables média sauvegardé (obtenu depuis un média PXE, bootable ou préinstallé) et récupérer les données sensibles du DP MECM
pxethief.py 4 <nom-du-fichier-variables> <chemin-du-fichier-policy> <mot-de-passe> - Tenter de déchiffrer un fichier de variables média sauvegardé et un fichier XML de politique récupérés depuis un support de séquence de tâches autonome
pxethief.py 5 <nom-du-fichier-variables> - Afficher le hash correspondant à un fichier de variables média spécifié pour craquage avec Hashcat
pxethief.py 6 <identityguid> <identitycert-nom-du-fichier> - Récupérer les séquences de tâches en utilisant les valeurs obtenues à partir des clés de registre sur un DP
pxethief.py 7 <Valeur-Reserved1> - Déchiffrer le mot de passe PXE stocké dans la clé de registre du DP SCCM (reg query HKLM\software\microsoft\sms\dp /v Reserved1)
pxethief.py 8 - Écrire un nouveau fichier 'settings.ini' par défaut dans le répertoire PXEThief
pxethief.py 10 - Afficher la table des interfaces Scapy pour identifier les indices d'interface à utiliser dans 'settings.ini'
pxethief.py -h - Afficher le texte d'aide de PXEThief

pxethief.py 5 <nom-du-fichier-variables> doit être utilisé pour générer un « hash » d'un fichier de variables média qui pourra être utilisé pour des attaques de devinement de mot de passe avec le module Hashcat publié sur https://github.com/MWR-CyberSec/configmgr-cryptderivekey-hashcat-module.

Options de configuration

Un fichier contenu dans le dossier principal de PXEThief est utilisé pour définir des options de configuration plus statiques. Les voici :

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

Paramètres Scapy

  • automatic_interface_selection_mode tentera de déterminer automatiquement la meilleure interface pour Scapy, par commodité. Il le fait en utilisant deux techniques principales. Si défini sur 1, il tentera d'utiliser l'interface qui peut atteindre la passerelle par défaut de la machine comme interface de sortie. Si défini sur 2, il cherchera la première interface qui possède une adresse IP qui n'est pas une adresse IP d'autoconfiguration ou localhost. Cela échouera à sélectionner l'interface appropriée dans certains scénarios, c'est pourquoi vous pouvez forcer l'utilisation d'une interface spécifique avec 'manual_interface_selection_by_id'.
  • manual_interface_selection_by_id vous permet de spécifier l'index entier de l'interface que vous voulez que Scapy utilise. L'ID à utiliser dans ce fichier doit être obtenu en exécutant pxethief.py 10.

Paramètres généraux

  • sccm_base_url est utile pour remplacer le point de gestion (Management Point) avec lequel l'outil communiquera. Cela est utile si le DNS ne résout pas (donc la valeur lue depuis le fichier de variables média ne peut pas être utilisée) ou si vous avez identifié plusieurs points de gestion et souhaitez envoyer votre trafic vers un point spécifique. Il doit être fourni sous la forme d'une URL de base, par exemple http://mp.configmgr.com au lieu de mp.configmgr.com ou http://mp.configmgr.com/stuff.
  • auto_exploit_blank_password modifie le comportement de pxethief 1 pour tenter automatiquement d'exploiter un point de distribution PXE non protégé par mot de passe. Définir ce paramètre sur 1 activera l'exploitation automatique, tandis que le définir sur 0 affichera la chaîne client tftp que vous devez utiliser pour télécharger le fichier de variables média. Notez que presque tout le temps vous voudrez que ce paramètre soit défini sur 1, car le PXE non protégé par mot de passe utilise une clé binaire envoyée dans la réponse DHCP que vous recevez lorsque vous demandez au point de distribution d'effectuer un démarrage PXE.

Paramètres de connexion HTTP

Non implémentés dans cette version

Instructions d'installation

  1. Créez une nouvelle VM Windows
  2. Installez Python (Depuis https://www.python.org/ ou via le Store, les deux devraient fonctionner)
  3. Installez toutes les dépendances via pip (pip install -r requirements.txt)
  4. Installez Npcap (https://npcap.com/#download) (ou Wireshark, qui vient avec) pour Scapy
  5. Connectez la VM au réseau contenant un point de distribution ConfigMgr configuré pour le PXE/OSD
  6. Si vous utilisez pxethief.py 1 ou pxethief.py 2 pour identifier et générer un fichier de variables média, assurez-vous que l'interface utilisée par l'outil est la bonne. Si ce n'est pas le cas, définissez-la manuellement dans 'settings.ini' en identifiant le bon index ID à utiliser avec pxethief.py 10

Limitations

  • Support proxy pour les requêtes HTTP - Actuellement configurable uniquement dans le code. Le support proxy peut être activé à la ligne 35 de pxethief.py et l'adresse du proxy peut être définie à la ligne 693. Je prévois de déplacer cette fonctionnalité pour qu'elle soit configurable dans 'settings.ini' lors de la prochaine mise à jour du code.
  • Support HTTPS et TLS mutuel - Pas implémenté pour le moment. Vous pouvez cependant utiliser un proxy intercepteur pour gérer cela, ce qui fonctionne bien d'après mon expérience ; pour ce faire, vous devrez configurer un proxy comme mentionné ci-dessus.
  • Support Linux - PXEThief utilise actuellement pywin32 pour utiliser certaines fonctions de cryptographie Windows intégrées. Cela n'est pas disponible sous Linux, car les API de cryptographie Windows ne le sont pas non plus :P Le code Scapy dans pxethief.py, cependant, est pleinement fonctionnel sous Linux, mais vous devrez supprimer (au moins) l'inclusion de win32crypt pour le faire fonctionner sous Linux.

Note sur la preuve de concept

Attendez-vous à rencontrer des problèmes de gestion des erreurs avec cet outil ; il existe des nuances subtiles avec tout ce qui concerne ConfigMgr et bien que j'aie considérablement amélioré la gestion des erreurs en préparation de la sortie de l'outil, cela n'est en aucun cas complet. Si des cas limites échouent, créez un rapport détaillé ou corrigez-les et soumettez une pull request :) Je les examinerai pour voir où des améliorations raisonnables peuvent être apportées. Lisez le code / regardez le talk et comprenez ce qui se passe si vous l'utilisez dans un environnement de production. Gardez à l'esprit les termes de la licence – l'utilisation de l'outil est à vos propres risques.

Travaux connexes

Identifier et récupérer les identifiants des séquences de tâches SCCM/MECM – Dans cet article, j'explique tout le flux de découverte, téléchargement et déchiffrement des politiques ConfigMgr après l'obtention d'un certificat OSD valide. Je souhaite également souligner les deux premières références de cet article car elles montrent des recherches offensives très intéressantes sur SCCM qui sont en cours actuellement.

Slides DEF CON 30 – Lien vers les slides du talk

Crédit auteur

Copyright (C) 2022 Christopher Panayi, MWR CyberSec

Télécharger l’outil