Les points de distribution (DP) SCCM sont les serveurs utilisés par Microsoft SCCM pour héberger tous les fichiers utilisés dans les installations de logiciels, les correctifs, les déploiements de scripts, etc. Par défaut, ces serveurs autorisent l'accès via SMB (TCP/445) et HTTP/S (TCP /80 et/ou TCP/443) et nécessitent un certain type d'authentification Windows (c'est-à-dire NTLM).
Les outils de pillage SCCM DP actuels reposent sur la possibilité de parcourir les partages SMB pour collecter des fichiers.
Cependant, il n'est pas rare qu'une organisation limite l'accès SMB entrant aux serveurs des réseaux internes, et il est courant d'empêcher l'accès SMB entrant depuis Internet. En revanche, l'accès HTTP/S n'est généralement pas restreint sur les réseaux internes et est souvent autorisé depuis Internet. Cela présente une opportunité pour un attaquant s'il existe un moyen d'obtenir des fichiers du SCCM DP via HTTP/S.
Les outils SMB fonctionnent en énumérant le dossier DataLib
du partage SCCMContentLib$
pour rechercher les fichiers <filename.ext>.INI
qui contiennent le hachage du fichier. Ils peuvent ensuite localiser le fichier réel dans FileLib/<hash[0:4]>/<hash>
. Cela fonctionne car avec l'accès au partage, vous pouvez énumérer tous les fichiers du dossier DataLib
.
Avec HTTP/S, les choses sont différentes. La navigation vers http://<SCCM DP>/SMS_DP_SMSPKG$/Datalib
affiche une liste de répertoires de fichiers numérotés et d'INI.
Pour diverses raisons (comme la vitesse), ces points de distribution peuvent être configurés pour permettre un accès anonyme.
Cependant, la navigation vers les liens non-INI affiche simplement la même page, ce qui limite le nombre de fichiers directement accessibles à ceux du répertoire « racine » de Datalib car les hachages extraits des fichiers INI des répertoires ne peuvent pas être utilisés pour trouver le répertoires dans FileLib car il ne stocke que les fichiers réels.
Cependant, accéder au nom du répertoire directement à partir de la http://<SCCM DP>/SMS_DP_SMSPKG$/
affichera les fichiers de ce répertoire, qui peuvent être directement téléchargés.
C'est ainsi que fonctionne normalement le sccm-http-looter
. Il analyse la liste des répertoires Datalib pour les répertoires, puis les demande et analyse chacun pour tous les fichiers, avant de télécharger tous les fichiers avec des extensions qui figurent dans la liste autorisée spécifiée par l'utilisateur.
Dans le cas où l'accès anonyme est activé mais que la liste des répertoires hors de la racine http://<SCCM DP>/SMS_DP_SMSPKG$/
est désactivée, il existe une deuxième technique pour récupérer les fichiers qui peut être utilisée en exécutant l'outil avec -use-signature-method
. Dans ce mode, l'outil effectue les opérations suivantes :
http://<SCCM DP>/SMS_DP_SMSPKG$/Datalib
http://<SCCM DP>/SMS_DP_SMSSIG$/<filename>.tar
, où <filename>
est le dernier élément de n'importe quel href de la page Datalib (c'est-à-dire 12300005.1
)http://<SCCM DP>/SMS_DP_SMSPKG$/Datalib/<filename>/<extracted filename>.INI
http://<SCCM DP>/SMS_DP_SMSPKG$/Filelib/<hash[0:4]>/<hash>
en le renommant avec le nom de fichier correct tel que spécifié dans le fichier de signature. Les fichiers de signature sont des fichiers .tar
mais ne sont pas de véritables fichiers tar. Ils contiennent des noms de fichiers 512 octets avant la chaîne d'octets 0x18, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01
, comme indiqué ci-dessous.
L'outil recherche cette chaîne d'octets et extrait tous les noms de fichiers des fichiers de signature.