
Client MSSQL pour environnements SCCM, permettant la reconnaissance, l'exécution PowerShell à distance sur les clients gérés et l'extraction de secrets sensibles tels que les identifiants NAA et les configurations d'applications Azure AD.
Un client MSSQL dédié à l'exploration et à l'exploitation de bases de données SCCM.
$ pipx install git+https://github.com/synacktiv/sccmsqlclient/
Vous pouvez installer en clonant le dépôt et en installant les dépendances.
$ git clone https://github.com/synacktiv/sccmsqlclient
$ cd sccmsqlclient
$ python3 -m venv .venv && source .venv/bin/activate
$ python3 -m pip install -r requirements.txt
sccmsqlclient.py utilise le même modèle d'authentification et la même syntaxe que mssqlclient.py d'Impacket, car il est basé sur la même implémentation du protocole MSSQL TDS (Tabular Data Stream).
Si vous êtes déjà familier avec les outils Impacket, l'utilisation et le format de connexion sont identiques.
$ python3 sccmsqlclient.py -windows-auth 'DOMAIN/USER:password'@mp.local
Liste les sites et serveurs SCCM dans une hiérarchie multi-sites.
> sccm_sites
> sccm_servers
Énumère les serveurs d'infrastructure SCCM et les rôles qui leur sont attribués au sein de la hiérarchie.
> sccm_sysreslist [ROLE_NAME]
> sccm_mp
> sccm_dp
Cet ensemble de commandes interroge les données d'attribution de ressources système et de rôles SCCM afin de cartographier les composants de l'infrastructure et leurs responsabilités.
sccm_sysreslist → liste toutes les ressources système SCCM enregistrées et leurs rôlessccm_sysreslist [ROLE_NAME] → filtre les résultats par nom de rôle (par ex., Management Point, Distribution Point)sccm_mp → raccourci pour lister tous les Management Pointssccm_dp → raccourci pour lister tous les Distribution PointsListe les appareils connus, avec un filtrage partiel par nom ou adresse IP
> sccm_devices [FILTER]
Liste les clients avec leur statut de canal BGB / Notification (OnlineStatus=0|1)
> sccm_devices_bgbstatus [FILTER]
Exploiter la fonctionnalité Run Scripts pour exécuter des scripts PowerShell sur les appareils gérés.
Définissez un script PowerShell directement à partir d'une chaîne de caractères.
> set_ps1_script "<string>"
Exemple:
> set_ps1_script "Get-Process | Select-Object -First 10"
Chargez un script depuis un fichier .ps1 local.
Exemple:
> load_ps1_script ./script.ps1
Exécute un script préalablement défini sur une ressource SCCM cible.
> sccm_run_script <RESOURCE_ID>
Exemple:
> sccm_run_script 16777219
Quand elle est exécutée, cette commande génère deux GUID :
Ces identifiants sont automatiquement stockés en mémoire et réutilisés par les commandes suivantes :
last_task_outputllast_task_output_printlast_task_cleanCela vous permet d'opérer sur l'exécution la plus récente sans spécifier manuellement les GUID.
Affiche les résultats de la tâche la plus récente lancée via sccm_run_script.
> last_task_output
Cette commande récupère la sortie d'exécution brute stockée en mémoire lors de la dernière exécution de SCCM Run Script.
Affiche la sortie d'exécution de la dernière tâche dans un format lisible par un humain.
> last_task_output_print
Cette commande formate et nettoie la sortie brute de la dernière exécution de SCCM Run Script pour une lecture et une interprétation plus faciles.
Récupère le statut d'exécution d'une tâche ou d'un script.
> sccm_ScriptsExecutionStatus [TASK_GUID|SCRIPT_GUID]
Exemples:
> sccm_ScriptsExecutionStatus
> sccm_ScriptsExecutionStatus 4F3A1B2C-AAAA-BBBB-CCCC-1234567890AB
Supprime la tâche SCCM suivie la plus récente.
> last_task_clean
Supprime une tâche spécifique de groupe d'arrière-plan (BGB).
> sccm_BGB_Tasks_clean <TASK_GUID>
Exemple:
> sccm_BGB_Tasks_clean 4F3A1B2C-AAAA-BBBB-CCCC-1234567890AB
Supprime un objet Run Script de SCCM.
> sccm_script_delete <SCRIPT_GUID>
Exemple:
> sccm_script_delete 7F2C9D11-1111-2222-3333-ABCDEF987654
Ces commandes permettent d'énumérer et d'extraire des secrets sensibles liés à SCCM, tels que les comptes d'accès au réseau (Network Access Accounts), les informations d'identification Client Push et les configurations d'applications Azure AD. Le déchiffrement repose sur l'exécution d'un script distant via SCCM Run Scripts.
Récupère les comptes utilisateur SCCM configurés pour des opérations privilégiées telles que les comptes d'accès au réseau (NAA) ou les comptes d'installation Client Push.
> sccm_useraccounts
Énumère les configurations d'applications Azure AD stockées dans SCCM.
> sccm_add_apps
Exécute un script distant sur un Management Point SCCM ou un client géré afin de déchiffrer les blobs de secrets stockés.
> sccm_decrypt_blob [RESOURCE_ID] [HEXBLOB]
Cette commande :
RESOURCE_ID valide d'un serveur de site (Site Server) ou d'un client géré dont l'agent est en bonne santé (voir sccm_devices_bgbstatus)sccm_add_apps ou sccm_useraccountsL'exécution est effectuée à distance, et le résultat déchiffré est renvoyé via le canal d'exécution SCCM Run Script.